From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mukesh Rathor Subject: [RFC PATCH 2/2]: hypervisor debugger Date: Thu, 30 Aug 2012 11:25:11 -0700 Message-ID: <20120830112511.19fb0a49@mantra.us.oracle.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/hjZb_3K/+AywVJErRJV.V7." Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org --MP_/hjZb_3K/+AywVJErRJV.V7. Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Tar file of kdb subdirectory attached. --MP_/hjZb_3K/+AywVJErRJV.V7. Content-Type: application/x-tar Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=kdb.tar a2RiLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NzUAMDAwMjc1 NgAwMDAyNzU2ADAwMDAwMDAwMDAwADEyMDE3NzI0NjI0ADAxMTU1NQAgNQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABr ZGIva2RiX2lvLmMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY2NAAwMDAyNzU2 ADAwMDI3NTYAMDAwMDAwMTEzMjUAMTE3NjU0NjU1NTYAMDEzMTcxACAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8q CiAqIENvcHlyaWdodCAoQykgMjAwOSwgTXVrZXNoIFJhdGhvciwgT3JhY2xlIENvcnAuICBBbGwg cmlnaHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIHYyIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMK ICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUK ICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0 ZSAzMzAsCiAqIEJvc3RvbiwgTUEgMDIxMTEwLTEzMDcsIFVTQS4KICovCiNpbmNsdWRlICJpbmNs dWRlL2tkYmluYy5oIgoKI2RlZmluZSBLX0JBQ0tTUEFDRSAgMHg4ICAgICAgICAgICAgICAgICAg IC8qIGN0cmwtSCAqLwojZGVmaW5lIEtfQkFDS1NQQUNFMSAweDdmICAgICAgICAgICAgICAgICAg LyogY3RybC0/ICovCiNkZWZpbmUgS19VTkRFUlNDT1JFIDB4NWYKI2RlZmluZSBLX0NNRF9CVUZT WiAgMTYwCiNkZWZpbmUgS19DTURfTUFYSSAgIChLX0NNRF9CVUZTWiAtIDEpICAgICAvKiBtYXgg aW5kZXggaW4gYnVmZmVyICovCgojaWYgMCAgICAgICAgLyogbWFrZSBhIGhpc3RvcnkgYXJyYXkg c29tZSBkYXkgKi8KI2RlZmluZSBLX1VQX0FSUk9XICAgICAgICAgICAgICAgICAgICAgICAgIC8q IHNlcXVlbmNlIDogMWIgNWIgNDEgaWUsICdcZVtBJyAqLwojZGVmaW5lIEtfRE5fQVJST1cgICAg ICAgICAgICAgICAgICAgICAgICAgLyogc2VxdWVuY2UgOiAxYiA1YiA0MiBpZSwgJ1xlW0InICov CiNkZWZpbmUgS19OVU1fSElTVCAgIDMyCnN0YXRpYyBpbnQgY3Vyc29yOwpzdGF0aWMgY2hhciBj bWRzX2FbTlVNX0hJU1RdW0tfQ01EX0JVRlNaXTsKI2VuZGlmCgpzdGF0aWMgY2hhciBjbWRzX2Fb S19DTURfQlVGU1pdOwoKCnN0YXRpYyBpbnQKa2RiX2tleV92YWxpZChpbnQga2V5KQp7CiAgICAv KiBub3RlOiBpc3NwYWNlKCkgaXMgbW9yZSB0aGFuICcgJywgaGVuY2Ugd2UgZG9uJ3QgdXNlIGl0 IGhlcmUgKi8KICAgIGlmIChpc2FsbnVtKGtleSkgfHwga2V5ID09ICcgJyB8fCBrZXkgPT0gS19C QUNLU1BBQ0UgfHwga2V5ID09ICdcbicgfHwKICAgICAgICBrZXkgPT0gJz8nIHx8IGtleSA9PSBL X1VOREVSU0NPUkUgfHwga2V5ID09ICc9JyB8fCBrZXkgPT0gJyEnKQogICAgICAgICAgICByZXR1 cm4gMTsKICAgIHJldHVybiAwOwp9CgovKiBkaXNwbGF5IGtkYiBwcm9tcHQgYW5kIHJlYWQgY29t bWFuZCBmcm9tIHRoZSBjb25zb2xlIAogKiBSRVRVUk5TOiBhICdcbicgdGVybWluYXRlZCBjb21t YW5kIGJ1ZmZlciAqLwpjaGFyICoKa2RiX2dldF9jbWRsaW5lKGNoYXIgKnByb21wdCkKewogICAg I2RlZmluZSBLX0JFTEwgICAgIDB4NwogICAgI2RlZmluZSBLX0NUUkxfQyAgIDB4MwoKICAgIGlu dCBrZXksIGk9MDsKCiAgICBrZGJwKHByb21wdCk7CiAgICBtZW1zZXQoY21kc19hLCAwLCBLX0NN RF9CVUZTWik7CiAgICBjbWRzX2FbS19DTURfQlVGU1otMV0gPSAnXG4nOwoKICAgIGRvIHsKICAg ICAgICBrZXkgPSBjb25zb2xlX2dldGMoKTsKICAgICAgICBpZiAoa2V5ID09ICdccicpIAogICAg ICAgICAgICBrZXkgPSAnXG4nOwogICAgICAgIGlmIChrZXkgPT0gS19CQUNLU1BBQ0UxKSAKICAg ICAgICAgICAga2V5ID0gS19CQUNLU1BBQ0U7CgogICAgICAgIGlmIChrZXkgPT0gS19DVFJMX0Mg fHwgKGk9PUtfQ01EX01BWEkgJiYga2V5ICE9ICdcbicpKSB7CiAgICAgICAgICAgIGNvbnNvbGVf cHV0YygnXG4nKTsKICAgICAgICAgICAgaWYgKGkgPj0gS19DTURfTUFYSSkgewogICAgICAgICAg ICAgICAga2RicCgiS0RCOiBjbWQgYnVmZmVyIG92ZXJmbG93XG4iKTsKICAgICAgICAgICAgICAg IGNvbnNvbGVfcHV0YyhLX0JFTEwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG1lbXNldChj bWRzX2EsIDAsIEtfQ01EX0JVRlNaKTsKICAgICAgICAgICAgaSA9IDA7CiAgICAgICAgICAgIGtk YnAocHJvbXB0KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICgh a2RiX2tleV92YWxpZChrZXkpKSB7CiAgICAgICAgICAgIGNvbnNvbGVfcHV0YyhLX0JFTEwpOwog ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGtleSA9PSBLX0JBQ0tT UEFDRSkgewogICAgICAgICAgICBpZiAoaT09MCkgewogICAgICAgICAgICAgICAgY29uc29sZV9w dXRjKEtfQkVMTCk7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfSBlbHNl IAogICAgICAgICAgICAgICAgY21kc19hWy0taV0gPSAnXDAnOwogICAgICAgICAgICAgICAgY29u c29sZV9wdXRjKEtfQkFDS1NQQUNFKTsKICAgICAgICAgICAgICAgIGNvbnNvbGVfcHV0YygnICcp OyAgICAgICAgLyogZXJhc2UgY2hhcmFjdGVyICovCiAgICAgICAgfSBlbHNlCiAgICAgICAgICAg IGNtZHNfYVtpKytdID0ga2V5OwoKICAgICAgICBjb25zb2xlX3B1dGMoa2V5KTsKCiAgICB9IHdo aWxlIChrZXkgIT0gJ1xuJyk7CgogICAgcmV0dXJuIGNtZHNfYTsKfQoKLyoKICogcHJpbnRrIHRh a2VzIGEgbG9jaywgYW4gTk1JIGNvdWxkIGNvbWUgaW4gYWZ0ZXIgdGhhdCwgYW5kIGFub3RoZXIg Y3B1IG1heSAKICogc3Bpbi4gYWxzbywgdGhlIGNvbnNvbGUgbG9jayBpcyBmb3JjZWQgdW5sb2Nr LCBzbyBwYW5pYyBpcyBiZWVuIHNlZW4gb24gCiAqIDggd2F5LiBoZW5jZSwgbm8gcHJpbnRrKCkg Y2FsbHMuCiAqLwpzdGF0aWMgdm9sYXRpbGUgaW50IGtkYnBfZ2F0ZSA9IDA7CnZvaWQKa2RicChj b25zdCBjaGFyICpmbXQsIC4uLikKewogICAgc3RhdGljIGNoYXIgYnVmWzEwMjRdOwogICAgdmFf bGlzdCBhcmdzOwogICAgY2hhciAqcDsKICAgIGludCBpPTA7CgogICAgd2hpbGUgKChfX2NtcHhj aGcoJmtkYnBfZ2F0ZSwgMCwxLCBzaXplb2Yoa2RicF9nYXRlKSkgIT0gMCkgJiYgaSsrPDEwMDAp CiAgICAgICAgbWRlbGF5KDEwKTsKCiAgICB2YV9zdGFydChhcmdzLCBmbXQpOwogICAgKHZvaWQp dnNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZtdCwgYXJncyk7CiAgICB2YV9lbmQoYXJncyk7 CgogICAgZm9yIChwPWJ1ZjsgKnAgIT0gJ1wwJzsgcCsrKQogICAgICAgIGNvbnNvbGVfcHV0Yygq cCk7CiAgICBrZGJwX2dhdGUgPSAwOwp9CgoKLyoKICogY29weS9yZWFkIG1hY2hpbmUgbWVtb3J5 LiAKICogUkVUVVJOUzogbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCAKICovCmludAprZGJfcmVhZF9t bWVtKGtkYm1hX3QgbWFkZHIsIGtkYmJ5dF90ICpkYnVmLCBpbnQgbGVuKQp7CiAgICB1bG9uZyBy ZW1haW4sIG9yaWc9bGVuOwoKICAgIHdoaWxlIChsZW4gPiAwKSB7CiAgICAgICAgdWxvbmcgcGFn ZWNudCA9IG1pbl90KGxvbmcsIFBBR0VfU0laRS0obWFkZHImflBBR0VfTUFTSyksIGxlbik7CiAg ICAgICAgY2hhciAqdmEgPSBtYXBfZG9tYWluX3BhZ2UobWFkZHIgPj4gUEFHRV9TSElGVCk7Cgog ICAgICAgIHZhID0gdmEgKyAobWFkZHIgJiAoUEFHRV9TSVpFLTEpKTsgICAgICAgIC8qIGFkZCBw YWdlIG9mZnNldCAqLwogICAgICAgIHJlbWFpbiA9IF9fY29weV9mcm9tX3VzZXIoZGJ1ZiwgKHZv aWQgKil2YSwgcGFnZWNudCk7CiAgICAgICAgS0RCR1AxKCJtYWRkcjoleCB2YTolcCBsZW46JXgg cGFnZWNudDoleCByZW06JXhcbiIsIAogICAgICAgICAgICAgICBtYWRkciwgdmEsIGxlbiwgcGFn ZWNudCwgcmVtYWluKTsKICAgICAgICB1bm1hcF9kb21haW5fcGFnZSh2YSk7CiAgICAgICAgbGVu ID0gbGVuICAtIChwYWdlY250IC0gcmVtYWluKTsKICAgICAgICBpZiAocmVtYWluICE9IDApCiAg ICAgICAgICAgIGJyZWFrOwogICAgICAgIG1hZGRyICs9IHBhZ2VjbnQ7CiAgICAgICAgZGJ1ZiAr PSBwYWdlY250OwogICAgfQogICAgcmV0dXJuIG9yaWcgLSBsZW47Cn0KCgovKgogKiBjb3B5L3Jl YWQgZ3Vlc3Qgb3IgaHlwZXJ2aXNvciBtZW1vcnkuIChkb21pZCA9PSBET01JRF9JRExFKSA9PiBo eXAKICogUkVUVVJOUzogbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCAKICovCmludAprZGJfcmVhZF9t ZW0oa2RidmFfdCBzYWRkciwga2RiYnl0X3QgKmRidWYsIGludCBsZW4sIGRvbWlkX3QgZG9taWQp CnsKICAgIHJldHVybiAobGVuIC0gZGJnX3J3X21lbShzYWRkciwgZGJ1ZiwgbGVuLCBkb21pZCwg MCwgMCkpOwp9CgovKgogKiB3cml0ZSBndWVzdCBvciBoeXBlcnZpc29yIG1lbW9yeS4gKGRvbWlk ID09IERPTUlEX0lETEUpID0+IGh5cAogKiBSRVRVUk5TOiBudW1iZXIgb2YgYnl0ZXMgd3JpdHRl bgogKi8KaW50CmtkYl93cml0ZV9tZW0oa2RidmFfdCBkYWRkciwga2RiYnl0X3QgKnNidWYsIGlu dCBsZW4sIGRvbWlkX3QgZG9taWQpCnsKICAgIHJldHVybiAobGVuIC0gZGJnX3J3X21lbShkYWRk ciwgc2J1ZiwgbGVuLCBkb21pZCwgMSwgMCkpOwp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2RiL2luY2x1ZGUv AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NzUAMDAwMjc1NgAwMDAyNzU2ADAw MDAwMDAwMDAwADEyMDE3NTA0MDIxADAxMzE2MwAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA bXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrZGIvaW5jbHVkZS9r ZGJkZWZzLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY2NAAwMDAyNzU2ADAwMDI3NTYAMDAw MDAwMDYzNzUAMTE3NjU0NjU1NTYAMDE1MDA1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt cmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qCiAqIENvcHlyaWdo dCAoQykgMjAwOSwgTXVrZXNoIFJhdGhvciwgT3JhY2xlIENvcnAuICBBbGwgcmlnaHRzIHJlc2Vy dmVkLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIHYyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUKICogRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCiAqIEJv c3RvbiwgTUEgMDIxMTEwLTEzMDcsIFVTQS4KICovCgojaWZuZGVmIF9LREJERUZTX0gKI2RlZmlu ZSBfS0RCREVGU19ICgovKiByZWFzb24gd2UgYXJlIGVudGVyaW5nIGtkYm1haW4gKGJwID09IGJy ZWFrcG9pbnQpICovCnR5cGVkZWYgZW51bSB7CiAgICBLREJfUkVBU09OX0tFWUJPQVJEPTEsICAv KiBLZXlib2FyZCBlbnRyeSAtIGFsd2F5cyAxICovCiAgICBLREJfUkVBU09OX0JQRVhDUCwgICAg ICAvKiAjQlAgZXhjcDogc3cgYnAgKElOVDMpICovCiAgICBLREJfUkVBU09OX0RCRVhDUCwgICAg ICAvKiAjREIgZXhjcDogVEYgZmxhZyBvciBIVyBicCAqLwogICAgS0RCX1JFQVNPTl9QQVVTRV9J UEksICAgLyogcmVjZWl2ZWQgcGF1c2UgSVBJIGZyb20gYW5vdGhlciBDUFUgKi8KfSBrZGJfcmVh c29uX3Q7CgoKLyogY3B1IHN0YXRlOiBwYXN0LCBwcmVzZW50LCBhbmQgZnV0dXJlICovCnR5cGVk ZWYgZW51bSB7CiAgICBLREJfQ1BVX0lOVkFMPTAsICAgICAvKiBpbnZhbGlkIHZhbHVlLiBub3Qg aW4gb3IgbGVhdmluZyBrZGIgKi8KICAgIEtEQl9DUFVfUVVJVCwgICAgICAgIC8qIG1haW4gY3B1 IGRvZXMgR08uIGFsbCBvdGhlcnMgZG8gUVVJVCAqLwogICAgS0RCX0NQVV9QQVVTRSwgICAgICAg LyogY3B1IGlzIHBhdXNlZCAqLwogICAgS0RCX0NQVV9ESVNBQkxFLCAgICAgLyogZGlzYWJsZSBp bnRlcnJ1cHRzICovCiAgICBLREJfQ1BVX1NIT1dQQywgICAgICAvKiBhbGwgY3B1cyBtdXN0IGRp c3BsYXkgdGhlaXIgcGMgKi8KICAgIEtEQl9DUFVfRE9fVk1FWElULCAgIC8qIGFsbCBjcHVzIG11 c3QgZG8gdm1jcyB2bWV4aXQuIGludGVsIG9ubHkgKi8KICAgIEtEQl9DUFVfTUFJTl9LREIsICAg IC8qIGNwdSBpbiBrZGIgbWFpbiBjb21tYW5kIGxvb3AgKi8KICAgIEtEQl9DUFVfR08sICAgICAg ICAgIC8qIHVzZXIgZW50ZXJlZCBnbyBmb3IgdGhpcyBjcHUgKi8KICAgIEtEQl9DUFVfU1MsICAg ICAgICAgIC8qIHNpbmdsZSBzdGVwIGZvciB0aGlzIGNwdSAqLwogICAgS0RCX0NQVV9OSSwgICAg ICAgICAgLyogZ28gdG8gbmV4dCBpbnN0ciBhZnRlciB0aGUgY2FsbCBpbnN0ciAqLwogICAgS0RC X0NQVV9JTlNUQUxMX0JQLCAgLyogZGVsYXllZCBpbnN0YWxsIG9mIHN3IGJwKHMpIGJ5IHRoaXMg Y3B1ICovCn0ga2RiX2NwdV9jbWRfdDsKCi8qID09PT09PT09PT09PT0ga2RiIGNvbW1hbmRzID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKdHlwZWRlZiBr ZGJfY3B1X2NtZF90ICgqa2RiX2Z1bmNfdCkoaW50LCBjb25zdCBjaGFyICoqLCBzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqKTsKdHlwZWRlZiBrZGJfY3B1X2NtZF90ICgqa2RiX3VzZ2ZfdCkodm9pZCk7 Cgp0eXBlZGVmIGVudW0gewogICAgS0RCX1JFUEVBVF9OT05FID0gMCwgICAgLyogRG8gbm90IHJl cGVhdCB0aGlzIGNvbW1hbmQgKi8KICAgIEtEQl9SRVBFQVRfTk9fQVJHUywgICAgIC8qIFJlcGVh dCB0aGUgY29tbWFuZCB3aXRob3V0IGFyZ3VtZW50cyAqLwogICAgS0RCX1JFUEVBVF9XSVRIX0FS R1MsICAgLyogUmVwZWF0IHRoZSBjb21tYW5kIGluY2x1ZGluZyBpdHMgYXJndW1lbnRzICovCn0g a2RiX3JlcGVhdF90OwoKdHlwZWRlZiBzdHJ1Y3QgX2tkYnRhYiB7CiAgICBjaGFyICAgICAgICAq a2RiX2NtZF9uYW1lOyAgICAgICAgLyogQ29tbWFuZCBuYW1lICovCiAgICBrZGJfZnVuY190ICAg a2RiX2NtZF9mdW5jOyAgICAgICAgLyogcHRyIHRvIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgY29tbWFu ZCAqLwogICAga2RiX3VzZ2ZfdCAgIGtkYl9jbWRfdXNnZjsgICAgICAgIC8qIHVzYWdlIGZ1bmN0 aW9uIHB0ciAqLwogICAgaW50ICAgICAgICAgIGtkYl9jbWRfY3Jhc2hfYXZhaWw7IC8qIGF2YWls YWJsZSBpbiBzeXMgZmF0YWwvY3Jhc2ggc3RhdGUgKi8KICAgIGtkYl9yZXBlYXRfdCBrZGJfY21k X3JlcGVhdDsgICAgICAvKiBEb2VzIGNvbW1hbmQgYXV0byByZXBlYXQgb24gZW50ZXI/ICovCn0g a2RidGFiX3Q7CgoKLyogPT09PT09PT09PT09PSB0eXBlcyBhbmQgc3R1ZmYgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBCRkRfSU5WQUwgKH4wVUwp ICAgICAgICAgICAgLyogaW52YWxpZCBiZmRfdm1hICovCgojaWYgZGVmaW5lZChfX3g4Nl82NF9f KQogICNkZWZpbmUgS0RCSVAgcmlwCiAgI2RlZmluZSBLREJTUCByc3AKI2Vsc2UKICAjZGVmaW5l IEtEQklQIGVpcAogICNkZWZpbmUgS0RCU1AgZXNwCiNlbmRpZgoKLyogPT09PT09PT09PT09PSBt YWNyb3MgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g Ki8KZXh0ZXJuIHZvbGF0aWxlIGludCBrZGJkYmc7CiNkZWZpbmUgS0RCR1AoLi4uKSB7KGtkYmRi ZykgPyBrZGJwKF9fVkFfQVJHU19fKTowO30KI2RlZmluZSBLREJHUDEoLi4uKSB7KGtkYmRiZz4x KSA/IGtkYnAoX19WQV9BUkdTX18pOjA7fQojZGVmaW5lIEtEQkdQMiguLi4pIHsoa2RiZGJnPjIp ID8ga2RicChfX1ZBX0FSR1NfXyk6MDt9CiNkZWZpbmUgS0RCR1AzKC4uLikgezA7fTsKCiNkZWZp bmUgS0RCTUlOKHgseSkgKCgoeCk8KHkpKT8oeCk6KHkpKQoKI2VuZGlmICAvKiAhX0tEQkRFRlNf SCAqLwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2RiL2luY2x1ZGUva2RiaW5jLmgA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjQAMDAwMjc1NgAwMDAyNzU2ADAwMDAwMDAzNDM3 ADExNzY1NDY1NTU2ADAxNDYzMQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbXJhdGhvcgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKgogKiBDb3B5cmlnaHQgKEMpIDIw MDksIE11a2VzaCBSYXRob3IsIE9yYWNsZSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoK ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMKICogTGljZW5zZSB2MiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlCiAqIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAogKiBCb3N0b24sIE1B IDAyMTExMC0xMzA3LCBVU0EuCiAqLwoKI2lmbmRlZiBfS0RCSU5DX0gKI2RlZmluZSBfS0RCSU5D X0gKCiNpbmNsdWRlIDx4ZW4vY29tcGlsZS5oPgojaW5jbHVkZSA8eGVuL2NvbmZpZy5oPgojaW5j bHVkZSA8eGVuL3ZlcnNpb24uaD4KI2luY2x1ZGUgPHhlbi9jb21wYXQuaD4KI2luY2x1ZGUgPHhl bi9pbml0Lmg+CiNpbmNsdWRlIDx4ZW4vbGliLmg+CiNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KI2lu Y2x1ZGUgPHhlbi9zY2hlZC5oPgojaW5jbHVkZSA8eGVuL2RvbWFpbi5oPgojaW5jbHVkZSA8eGVu L21tLmg+CiNpbmNsdWRlIDx4ZW4vZXZlbnQuaD4KI2luY2x1ZGUgPHhlbi90aW1lLmg+CiNpbmNs dWRlIDx4ZW4vY29uc29sZS5oPgojaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4KI2luY2x1ZGUgPHhl bi9kb21haW5fcGFnZS5oPgojaW5jbHVkZSA8eGVuL3Jhbmdlc2V0Lmg+CiNpbmNsdWRlIDx4ZW4v Z3Vlc3RfYWNjZXNzLmg+CiNpbmNsdWRlIDx4ZW4vaHlwZXJjYWxsLmg+CiNpbmNsdWRlIDx4ZW4v ZGVsYXkuaD4KI2luY2x1ZGUgPHhlbi9zaHV0ZG93bi5oPgojaW5jbHVkZSA8eGVuL3BlcmNwdS5o PgojaW5jbHVkZSA8eGVuL211bHRpY2FsbC5oPgojaW5jbHVkZSA8eGVuL3JjdXBkYXRlLmg+CiNp bmNsdWRlIDx4ZW4vY3R5cGUuaD4KI2luY2x1ZGUgPHhlbi9zeW1ib2xzLmg+CiNpbmNsdWRlIDx4 ZW4vc2h1dGRvd24uaD4KI2luY2x1ZGUgPHhlbi9zZXJpYWwuaD4KI2luY2x1ZGUgPHhlbi9ncmFu dF90YWJsZS5oPgojaW5jbHVkZSA8YXNtL2RlYnVnZ2VyLmg+CiNpbmNsdWRlIDxhc20vc2hhcmVk Lmg+CiNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgoKI2luY2x1ZGUgPGFzbS9ubWkuaD4KI2luY2x1 ZGUgPGFzbS9wMm0uaD4KI2luY2x1ZGUgPGFzbS9kZWJ1Z3JlZy5oPgojaW5jbHVkZSA8cHVibGlj L3NjaGVkLmg+CiNpbmNsdWRlIDxwdWJsaWMvdmNwdS5oPgojaWZkZWYgX1hFTl9MQVRFU1QKI2lu Y2x1ZGUgPHhzbS94c20uaD4KI2VuZGlmCgojaW5jbHVkZSA8YXNtL2h2bS92bXgvdm14Lmg+Cgoj aW5jbHVkZSAia2RiX2V4dGVybi5oIgojaW5jbHVkZSAia2RiZGVmcy5oIgojaW5jbHVkZSAia2Ri cHJvdG8uaCIKCiNlbmRpZiAvKiAhX0tEQklOQ19IICovCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtkYi9pbmNsdWRlL2tkYl9leHRlcm4uaAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1NgAwMDAwMDAwNDM2MAAxMjAx NzUwNDAyMQAwMTU0NjQAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXN0YXIgIABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyoKICogQ29weXJpZ2h0IChDKSAyMDA5LCBN dWtlc2ggUmF0aG9yLCBPcmFjbGUgQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj CiAqIExpY2Vuc2UgdjIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICogQm9zdG9uLCBNQSAwMjEx MTAtMTMwNywgVVNBLgogKi8KCiNpZm5kZWYgX0tEQl9FWFRFUk5fSAojZGVmaW5lIF9LREJfRVhU RVJOX0gKCiNkZWZpbmUgS0RCX1RSQVBfRkFUQUwgICAgIDEgICAgLyogdHJhcCBpcyBmYXRhbC4g Y2FuJ3QgcmVzdW1lIGZyb20ga2RiICovCiNkZWZpbmUgS0RCX1RSQVBfTk9ORkFUQUwgIDIgICAg LyogY2FuIHJlc3VtZSBmcm9tIGtkYiAqLwojZGVmaW5lIEtEQl9UUkFQX0tEQlNUQUNLICAzICAg IC8qIHRvIGRlYnVnIGtkYiBpdHNlbGYuIGR1bXAga2RiIHN0YWNrICovCgovKiBmb2xsb3dpbmcg Y2FuIGJlIGNhbGxlZCBmcm9tIGFueXdoZXJlIGluIHhlbiB0byBkZWJ1ZyAqLwpleHRlcm4gdm9p ZCBrZGJfdHJhcF9pbW1lZChpbnQpOwpleHRlcm4gdm9pZCBrZGJ0cmModW5zaWduZWQgaW50LCB1 bnNpZ25lZCBpbnQsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0X3QpOwpleHRlcm4gdm9pZCBr ZGJwKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBrZGJ2YV90 Owp0eXBlZGVmIHVuc2lnbmVkIGNoYXIga2RiYnl0X3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBr ZGJtYV90OwoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcga2RiX2RyNzsKCgpleHRlcm4gdm9sYXRpbGUg aW50IGtkYl9zZXNzaW9uX2JlZ3VuOwpleHRlcm4gdm9sYXRpbGUgaW50IGtkYl9lbmFibGVkOwpl eHRlcm4gdm9pZCBrZGJfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBrZGJfa2V5Ym9hcmQoc3RydWN0 IGNwdV91c2VyX3JlZ3MgKik7CmV4dGVybiB2b2lkIGtkYl9zc25pX3JlZW50ZXIoc3RydWN0IGNw dV91c2VyX3JlZ3MgKik7CmV4dGVybiBpbnQga2RiX2hhbmRsZV90cmFwX2VudHJ5KGludCwgc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKik7CmV4dGVybiBpbnQga2RiX3RyYXBfZmF0YWwoaW50LCBzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqKTsgIC8qIGZhdGFsIHdpdGggcmVncyAqLwpleHRlcm4gdm9pZCBr ZGJfZHVtcF92bWNzKHVpbnQxNl90IGRpZCwgaW50IHZpZCk7CnZvaWQga2RiX2R1bXBfdm1jYih1 aW50MTZfdCBkaWQsIGludCB2aWQpOwpleHRlcm4gdm9pZCBrZGJfZHVtcF90aW1lX3BjcHUodm9p ZCk7CgoKI2RlZmluZSBWTVBUUlNUX09QQ09ERSAgIi5ieXRlIDB4MGYsMHhjN1xuIiAgICAgLyog cmVnL29wY29kZTogLzcgKi8KI2RlZmluZSBNT0RSTV9FQVhfMDcgICAgIi5ieXRlIDB4MzhcbiIg ICAgICAgICAgLyogW0VBWF0sIHdpdGggcmVnL29wY29kZTogLzcgKi8Kc3RhdGljIGlubGluZSB2 b2lkIF9fdm1wdHJzdCh1NjQgKmFkZHIpCnsKICAgIGFzbSB2b2xhdGlsZSAoIFZNUFRSU1RfT1BD T0RFCiAgICAgICAgICAgICAgICAgICBNT0RSTV9FQVhfMDcKICAgICAgICAgICAgICAgICAgIDoK ICAgICAgICAgICAgICAgICAgIDogImEiIChhZGRyKQogICAgICAgICAgICAgICAgICAgOiAibWVt b3J5Iik7Cn0KCiNkZWZpbmUgaXNfaHZtX29yX2h5Yl9kb21haW4gaXNfaHZtX2RvbWFpbgojZGVm aW5lIGlzX2h2bV9vcl9oeWJfdmNwdSBpc19odm1fdmNwdQojZGVmaW5lIGlzX2h5YnJpZF92Y3B1 KHgpICgwKQoKCiNlbmRpZiAgLyogX0tEQl9FWFRFUk5fSCAqLwoAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtkYi9pbmNsdWRlL2tkYnByb3RvLmgAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1NgAwMDAwMDAwNTUwMwAxMTc2NTQ2NTU1 NgAwMTUyMTcAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 YXIgIABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyoKICogQ29weXJpZ2h0IChDKSAyMDA5LCBNdWtlc2gg UmF0aG9yLCBPcmFjbGUgQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICog bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCiAqIExp Y2Vuc2UgdjIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAq CiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICogQm9zdG9uLCBNQSAwMjExMTAtMTMw NywgVVNBLgogKi8KCiNpZm5kZWYgX0tEQlBST1RPX0gKI2RlZmluZSBfS0RCUFJPVE9fSAoKLyog aHlwZXJ2aXNvciBpbnRlcmZhY2VzIHVzZSBieSBrZGIgb3Iga2RiIGludGVyZmFjZXMgaW4geGVu IGZpbGVzICovCmV4dGVybiB2b2lkIGNvbnNvbGVfcHV0YyhjaGFyKTsKZXh0ZXJuIGludCBjb25z b2xlX2dldGModm9pZCk7CmV4dGVybiB2b2lkIHNob3dfdHJhY2Uoc3RydWN0IGNwdV91c2VyX3Jl Z3MgKik7CmV4dGVybiB2b2lkIGtkYl9kdW1wX3RpbWVyX3F1ZXVlcyh2b2lkKTsKZXh0ZXJuIHZv aWQga2RiX3RpbWVfcmVzdW1lKGludCk7CmV4dGVybiB2b2lkIGtkYl9wcmludF9zY2hlZF9pbmZv KHZvaWQpOwpleHRlcm4gdm9pZCBrZGJfY3Vycl9jcHVfZmx1c2hfdm1jcyh2b2lkKTsKZXh0ZXJu IHVuc2lnbmVkIGxvbmcgYWRkcmVzc19sb29rdXAoY2hhciAqKTsKZXh0ZXJuIHZvaWQga2RiX3By bnRfZ3Vlc3RfbWFwcGVkX2lycXModm9pZCk7CgovKiBrZGIgZ2xvYmFscyAqLwpleHRlcm4ga2Ri dGFiX3QgKmtkYl9jbWRfdGJsOwpleHRlcm4gY2hhciBrZGJfcHJvbXB0WzMyXTsKZXh0ZXJuIHZv bGF0aWxlIGludCBrZGJfc3lzX2NyYXNoOwpleHRlcm4gdm9sYXRpbGUga2RiX2NwdV9jbWRfdCBr ZGJfY3B1X2NtZFtOUl9DUFVTXTsKZXh0ZXJuIHZvbGF0aWxlIGludCBrZGJfdHJjb247CgovKiBr ZGIgaW50ZXJmYWNlcyAqLwpleHRlcm4gdm9pZCBfX2luaXQga2RiX2lvX2luaXQodm9pZCk7CmV4 dGVybiB2b2lkIGtkYl9pbml0X2NtZHRhYih2b2lkKTsKZXh0ZXJuIHZvaWQga2RiX2RvX2NtZHMo c3RydWN0IGNwdV91c2VyX3JlZ3MgKik7CmV4dGVybiBpbnQga2RiX2NoZWNrX3N3X2JrcHRzKHN0 cnVjdCBjcHVfdXNlcl9yZWdzICopOwpleHRlcm4gaW50IGtkYl9jaGVja193YXRjaHBvaW50cyhz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqKTsKZXh0ZXJuIHZvaWQga2RiX2RvX3dhdGNocG9pbnRzKGtk YnZhX3QsIGludCwgaW50KTsKZXh0ZXJuIHZvaWQga2RiX2luc3RhbGxfd2F0Y2hwb2ludHModm9p ZCk7CmV4dGVybiB2b2lkIGtkYl9jbGVhcl93cHMoaW50KTsKZXh0ZXJuIGtkYm1hX3Qga2RiX3Jk X2RiZ3JlZyhpbnQpOwoKCgpleHRlcm4gY2hhciAqa2RiX2dldF9jbWRsaW5lKGNoYXIgKik7CmV4 dGVybiB2b2lkIGtkYl9jbGVhcl9wcmV2X2NtZCh2b2lkKTsKZXh0ZXJuIHZvaWQga2RiX3RvZ2ds ZV9kaXNfc3ludGF4KHZvaWQpOwpleHRlcm4gaW50IGtkYl9jaGVja19jYWxsX2luc3RyKGRvbWlk X3QsIGtkYnZhX3QpOwpleHRlcm4gdm9pZCBrZGJfZGlzcGxheV9wYyhzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqKTsKZXh0ZXJuIGtkYnZhX3Qga2RiX3ByaW50X2luc3RyKGtkYnZhX3QsIGxvbmcsIGRv bWlkX3QpOwpleHRlcm4gaW50IGtkYl9yZWFkX21tZW0oa2RidmFfdCwga2RiYnl0X3QgKiwgaW50 KTsKZXh0ZXJuIGludCBrZGJfcmVhZF9tZW0oa2RidmFfdCwga2RiYnl0X3QgKiwgaW50LCBkb21p ZF90KTsKZXh0ZXJuIGludCBrZGJfd3JpdGVfbWVtKGtkYnZhX3QsIGtkYmJ5dF90ICosIGludCwg ZG9taWRfdCk7CgpleHRlcm4gdm9pZCBrZGJfaW5zdGFsbF9hbGxfc3dicCh2b2lkKTsKZXh0ZXJu IHZvaWQga2RiX3VuaW5zdGFsbF9hbGxfc3dicCh2b2lkKTsKZXh0ZXJuIGludCBrZGJfc3dicF9l eGlzdHModm9pZCk7CmV4dGVybiB2b2lkIGtkYl9mbHVzaF9zd2JwX3RhYmxlKHZvaWQpOwpleHRl cm4gaW50IGtkYl9pc19hZGRyX2d1ZXN0X3RleHQoa2RidmFfdCwgaW50KTsKZXh0ZXJuIGtkYnZh X3Qga2RiX2d1ZXN0X3N5bTJhZGRyKGNoYXIgKiwgZG9taWRfdCk7CmV4dGVybiBjaGFyICprZGJf Z3Vlc3RfYWRkcjJzeW0odW5zaWduZWQgbG9uZywgZG9taWRfdCwgdWxvbmcgKik7CmV4dGVybiB2 b2lkIGtkYl9wcm50X2FkZHIyc3ltKGRvbWlkX3QsIGtkYnZhX3QsIGNoYXIgKik7CmV4dGVybiB2 b2lkIGtkYl9zYXZfZG9tX3N5bWluZm8oZG9taWRfdCwgbG9uZywgbG9uZywgbG9uZywgbG9uZywg bG9uZyk7CmV4dGVybiBpbnQga2RiX2d1ZXN0X2JpdG5lc3MoZG9taWRfdCk7CmV4dGVybiB2b2lk IGtkYl9ubWlfcGF1c2VfY3B1cyhjcHVtYXNrX3QpOwoKZXh0ZXJuIHZvaWQga2RiX3RyY3plcm8o dm9pZCk7CnZvaWQga2RiX3RyY3Aodm9pZCk7CgoKCiNlbmRpZiAvKiAhX0tEQlBST1RPX0ggKi8K AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAa2RiL1JFQURNRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADAwMDA2NjQAMDAwMjc1NgAwMDAyNzU2ADAwMDAwMDIwNDQ1ADExNzY1NDY1NTU2ADAxMjQ2 MQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1y YXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAKV2VsY29tZSB0byBrZGIgZm9yIHhlbiwgYSBoeXBlcnZpc29yIGJ1 aWx0IGluIGRlYnVnZ2VyLgoKRkVBVFVSRVM6CiAgIC0gc2V0IGJyZWFrcG9pbnRzIGluIGh5cGVy dmlzb3IKICAgLSBleGFtaW5lIHZpcnQvbWFjaGluZSBtZW1vcnksIHJlZ2lzdGVycywgZG9tYWlu cywgdmNwdXMsIGV0Yy4uLgogICAtIHNpbmdsZSBzdGVwLCBzaW5nbGUgc3RlcCB0aWxsIGp1bXAv Y2FsbCwgc3RlcCBvdmVyIGNhbGwgdG8gbmV4dAogICAgIGluc3RydWN0aW9uIGFmdGVyIHRoZSBj YWxsLgogICAtIGV4YW1pbmUgbWVtb3J5IG9mIGEgUFYvSFZNIGd1ZXN0LiAKICAgLSBzZXQgYnJl YWtwb2ludHMsIHNpbmdsZSBzdGVwLCBldGMuLi4gZm9yIGEgUFYgZ3Vlc3QuCiAgIC0gYnJlYWtp bmcgaW50byB0aGUgZGVidWdnZXIgd2lsbCBmcmVlemUgdGhlIHN5c3RlbSwgYWxsIENQVXMgd2ls bCBwYXVzZSwKICAgICBubyBpbnRlcnJ1cHRzIGFyZSBhY2tub3dsZWRnZWQgaW4gdGhlIGRlYnVn Z2VyLiAoSGVuY2UsIHRoZSB3YWxsIGNsb2NrCiAgICAgd2lsbCBkcmlmdCkKICAgLSBzaW5nbGUg c3RlcCB3aWxsIHN0ZXAgb25seSB0aGF0IGNwdS4KICAgLSBlYXJseWtkYjogYnJlYWsgaW50byBr ZGIgdmVyeSBlYXJseSBkdXJpbmcgYm9vdC4gUHV0ICJlYXJseWtkYiIgb24gdGhlCiAgICAgICAg ICAgICAgIHhlbiBjb21tYW5kIGxpbmUgaW4gZ3J1Yi5jb25mLgogICAtIGdlbmVyaWMgdHJhY2lu ZyBmdW5jdGlvbnMgKHNlZSBiZWxvdykgZm9yIHF1aWNrIHRyYWNpbmcgdG8gZGVidWcgdGltaW5n CiAgICAgcmVsYXRlZCBwcm9ibGVtcy4gVG8gdXNlOgogICAgICAgIG8gc2V0IEtEQlRSQ01BWCB0 byBtYXggbnVtIG9mIHJlY3MgaW4gY2lyY3VsYXIgdHJjIGJ1ZmZlciBpbiBrZGJtYWluLmMKCW8g Y2FsbCBrZGJfdHJjKCkgZnJvbSBhbnl3aGVyZSBpbiB4ZW4KCW8gdHVybiB0cmFjaW5nIG9uIGJ5 IHNldHRpbmcga2RiX3RyY29uIGluIGtkYm1haW4uYyBvciB0cmNvbiBjb21tYW5kLgoJbyB0cmNw IGluIGtkYiB3aWxsIGdpdmUgaGludHMgdG8gZHVtcCB0cmFjZSByZWNzLiBVc2UgZGQgdG8gc2Vl IGJ1ZmZlcgoJbyB0cmN6IHdpbGwgemVybyBvdXQgdGhlIGVudGlyZSBidWZmZXIgaWYgbmVlZGVk LgoKTk9URToKICAgLSBzaW5jZSBhbG1vc3QgYWxsIG51bWJlcnMgYXJlIGluIGhleCwgMHggaXMg bm90IHByZWZpeGVkLiBJbnN0ZWFkLCBkZWNpbWFsCiAgICAgbnVtYmVycyBhcmUgcHJlY2VkZWQg YnkgJCwgYXMgaW4gJDE3IChzb3JyeSwgb25lIGdldHMgdXNlZCB0byBpdCkuIE5vdGUsCiAgICAg dmNwdSBudW0sIGNwdSBudW0sIGRvbWlkIGFyZSBhbHdheXMgZGlzcGxheWVkIGluIGRlY2ltYWws IHdpdGhvdXQgJC4KICAgLSB3YXRjaGRvZyBtdXN0IGJlIGRpc2FibGVkIHRvIHVzZSBrZGIKCklT U1VFUzoKICAgLSBDdXJyZW50bHksIGRlYnVnIGh5cGVydmlzb3IgaXMgbm90IHN1cHBvcnRlZC4g TWFrZSBzdXJlIE5ERUJVRyBpcyBkZWZpbmVkCiAgICAgb3IgY29tcGlsZSB3aXRoIGRlYnVnPW4K ICAgLSAidGltZXIgd2VudCBiYWNrd2FyZHMiIG1lc3NhZ2VzIG9uIGRvbTAsIGJ1dCBrZGIvaHlw IHNob3VsZCBiZSBmaW5lLgogICAgIEkgdXN1YWxseSBkbyAiZWNobyAyID4gL3Byb2Mvc3lzL2tl cm5lbC9wcmludGsiIHdoZW4gdXNpbmcga2RiLgogICAtIDMyYml0IGh5cGVydmlzb3IgbWF5IGhh bmcuIFRlc3RlZCBvbiA2NGJpdCBoeXBlcnZpc29yIG9ubHkuCiAgICAKClRPIEJVSUxEOgogLSBk byA+bWFrZSBrZGI9eQoKSE9XIFRPIFVTRToKICAxLiBBIHNlcmlhbCBsaW5lIGlzIG5lZWRlZCB0 byB1c2UgdGhlIGRlYnVnZ2VyLiBTZXQgdXAgYSBzZXJpYWwgbGluZQogICAgIGZyb20gdGhlIHNv dXJjZSBtYWNoaW5lIHRvIHRhcmdldCB2aWN0aW0uIE1ha2Ugc3VyZSB0aGUgc2VyaWFsIGxpbmUK ICAgICBpcyB3b3JraW5nIHByb3Blcmx5IGJ5IGRpc3BsYXlpbmcgbG9naW4gcHJvbXB0IGFuZCBs b2dpbmcgaW4gZXRjLi4uLgoKICAyLiBBZGQgZm9sbG93aW5nIHRvIGdydWIuY29uZjoKICAgICAg ICBrZXJuZWwgL3hlbi5rZGIgY29uc29sZT1jb20xLHZnYSBjb20xPTU3NjAwLDhuMSBkb20wX21l bT01NDJNCgogICAgICAgICg1NzYwMCBvciB3aGF0ZXZlciB1c2VkIGluIHN0ZXAgMSBhYm92ZSkK CiAgMy4gQm9vdCB0aGUgaHlwZXJ2aXNvciBidWlsdCB3aXRoIHRoZSBkZWJ1Z2dlci4gCgogIDQu IGN0cmwtXCAoY3RybCBhbmQgYmFja3NsYXNoKSB3aWxsIGJyZWFrIGludG8gdGhlIGRlYnVnZ2Vy LiBJZiB0aGUgc3lzdGVtIGlzCiAgICAgYmFkbHkgaHVuZywgcHJlc3NpbmcgTk1JIHdvdWxkIGFs c28gYnJlYWsgaW50byBpdC4gSG93ZXZlciwgb25jZSBrZGIgaXMKICAgICBlbnRlcmVkIHZpYSBO TUksIG5vcm1hbCBleGVjdXRpb24gY2FuJ3QgY29udGludWUuCgogIDUuIHR5cGUgJ2gnIGZvciBs aXN0IG9mIGNvbW1hbmRzLgoKICA2LiBDb21tYW5kIGxpbmUgZWRpdGluZyBpcyBsaW1pdGVkIHRv IGJhY2tzcGFjZS4gY3RybC1jIHRvIHN0YXJ0IGEgbmV3IGNtZC4KCgoKR1VFU1QgZGVidWc6CiAg LSB0eXBlIHN5bSBpbiB0aGUgZGVidWdnZXIKICAtIGZvciBSRUw0LCBncmVwIGthbGxzeW1zX25h bWVzLCBrYWxsc3ltc19hZGRyZXNzZXMsIGFuZCBrYWxsc3ltc19udW1fc3ltcwogICAgaW4gdGhl IGd1ZXN0IFN5c3RlbS5tYXAqIGZpbGUuIFJ1biBzeW0gYWdhaW4gd2l0aCBkb21pZCBhbmQgdGhl IHRocmVlCiAgICB2YWx1ZXMgb24gdGhlIGNvbW1hbmQgbGluZS4KICAtIE5vdyBiYXNpYyBzeW1i b2xzIGNhbiBiZSB1c2VkIGZvciBndWVzdCBkZWJ1Zy4gTm90ZSwgaWYgdGhlIGJpbmFyeSBpcyBu b3QKICAgIGJ1aWx0IHdpdGggc3ltYm9scywgb25seSBmdW5jdGlvbiBuYW1lcyBhcmUgYXZhaWxh YmxlLCBidXQgbm90IGdsb2JhbCB2YXJzLgoKICAgIEVnOiBzeW0gMCBjMDY5NjA4NCBjMDY4YTU5 MCBjMDY5NjA4MCBjMDZiNDNlOCBjMDZiNDc0MAogICAgICAgIHdpbGwgc2V0IHN5bWJvbHMgZm9y IGRvbSAwLiBUaGVuIDoKCiAgICAgICAgWzRdeGtkYj4gYnAgc29tZV9mdW5jdGlvbiAwCgoJd2ls bHMgc2V0IGJwIGF0IHNvbWVfZnVuY3Rpb24gaW4gZG9tIDAKCglbM114a2RiPiBkdyBjMDY4YTU5 MCAzMiAwIDogZGlzcGxheSAzMiBieXRlcyBvZiBkb20wIG1lbW9yeQoKClRpcHM6CiAgLSBJbiAi WzBdeGtkYj4iICA6IDAgaXMgdGhlIGNwdSBudW1iZXIgaW4gZGVjaW1hbAogIC0gSW4KICAgICAg MDAwMDAwMDBjMDQyNjQ1YzogMDpkb190aW1lcisxNyAgICAgICAgICAgICAgICAgIHB1c2ggJWVi cAogICAgMDpkb190aW1lciA6IDAgaXMgdGhlIGRvbWlkIGluIGhleAogICAgb2Zmc2V0ICsxNyBp cyBpbiBoZXguCgogICAgYWJzZW5zZSBvZiAwOiB3b3VsZCBpbmRpY2F0ZSBpdCdzIGEgaHlwZXJ2 aXNvciBmdW5jdGlvbgoKICAtIGNvbW1hbmRzIHN0YXJ0aW5nIHdpdGgga2RiIChrZGIqKSBhcmUg Zm9yIGtkYiBkZWJ1ZyBvbmx5LgoKCkZpbmFsbHksCiAtIHRoaW5rIGhleC4KIC0gYnVnL3Byb2Js ZW06IGVudGVyIGtkYmRiZywgcmVwcm9kdWNlLCBhbmQgc2VuZCBtZSB0aGUgb3V0cHV0LgogICBJ ZiB0aGUgb3V0cHV0IGlzIG5vdCBlbm91Z2gsIEkgbWF5IGFzayB0byBydW4ga2RiZGJnIHR3aWNl LCB0aGVuIGNvbGxlY3QKICAgb3V0cHV0LgoKClRoYW5rcywKTXVrZXNoIFJhdGhvcgpPcmFjbGUg Q29ycG9yYXRpbiwgClJlZHdvb2QgU2hvcmVzLCBDQSA5NDA2NQoKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KQ09NTUFORCBERVNDUklQVElPTjoKCmluZm86ICBQcmludCBiYXNpYyBpbmZvIGxpa2Ug dmVyc2lvbiwgY29tcGlsZSBmbGFncywgZXRjLi4KCmN1cjogIHByaW50IGN1cnJlbnQgZG9tYWlu IGlkIGFuZCB2Y3B1IGlkCgpmOiBkaXNwbGF5IGN1cnJlbnQgc3RhY2suIElmIGEgdmNwdSBwdHIg aXMgZ2l2ZW4sIHRoZW4gcHJpbnQgc3RhY2sgZm9yIHRoYXQKICAgVkNQVSBieSB1c2luZyBpdHMg SVAgYW5kIFNQLgoKZmc6IGRpc3BsYXkgc3RhY2sgZm9yIGEgZ3Vlc3QgZ2l2ZW4gZG9taWQsIFNQ IGFuZCBJUC4KCmR3OiBkaXNwbGF5IHdvcmRzIG9mIG1lbW9yeS4gJ251bScgb2YgYnl0ZXMgaXMg b3B0aW9uYWwsIGJ1dCBpZiBkaXNwbGF5aW5nIGd1ZXN0CiAgICBtZW1vcnksIHRoZW4gaXMgcmVx dWlyZWQuCgpkZDogc2FtZSBhcyBhYm92ZSwgYnV0IGRpc3BsYXkgZG91Ymxld29yZHMuCgpkd206 IHNhbWUgYXMgYWJvdmUgYnV0IHRoZSBhZGRyZXNzIGlzIG1hY2hpbmUgYWRkcmVzcyBpbnN0ZWFk IG9mIHZpcnR1YWwuCgpkZG06IHNhbWUgYXMgYWJvdmUsIGJ1dCBkaXNwbGF5IGRvdWJsZXdvcmRz LgoKZHI6IGRpc3BsYXkgcmVnaXN0ZXJzLiBpZiAnc3AnIGlzIHNwZWNpZmllZCB0aGVuIHByaW50 IGZldyBleHRyYSByZWdpc3RlcnMuCgpkcmc6IGRpc3BsYXkgZ3Vlc3QgY29udGV4dCBzYXZlZCBv biBzdGFjayBib3R0b20uCgpkaXM6IGRpc2Fzc2VtYmxlIGluc3RydWN0aW9ucy4gSWYgZGlzYXNz ZW1ibGluZyBmb3IgZ3Vlc3QsIHRoZW4gJ251bScgbXVzdAogICAgIGJlIHNwZWNpZmllZC4gJ251 bScgaXMgbnVtYmVyIG9mIGluc3RycyB0byBkaXNwbGF5LgoKZGlzbTogdG9nZ2xlIGRpc2Fzc2Vt Ymx5IG1vZGUgYmV0d2VlbiBJbnRlbCBhbmQgQVRUL0dBUy4KCm13OiBtb2RpZnkgd29yZCBpbiBt ZW1vcnkgZ2l2ZW4gdmlydHVhbCBhZGRyZXNzLiAnZG9taWQnIG1heSBiZSBzcGVjaWZpZWQgaWYK ICAgIG1vZGlmeWluZyBndWVzdCBtZW1vcnkuIHZhbHVlIGlzIGFzc3VtZWQgaW4gaGV4IGV2ZW4g d2l0aG91dCAweC4KCm1kOiBzYW1lIGFzIGFib3ZlIGJ1dCBtb2RpZnkgZG91Ymxld29yZC4KCm1y OiBtb2RpZnkgcmVnaXN0ZXIuIHZhbHVlIGlzIGFzc3VtZCBoZXguCgpiYzogY2xlYXIgZ2l2ZW4g b3IgYWxsIGJyZWFrcG9pbnRzCgpicDogZGlzcGxheSBicmVha3BvaW50cyBvciBzZXQgYSBicmVh a3BvaW50LiBEb21pZCBtYXkgYmUgc3BlY2lmaWVkIHRvIHNldCBhIGJwCiAgICBpbiBndWVzdC4g a2RiIGZ1bmN0aW9ucyBtYXkgbm90IGJlIHNwZWNpZmllZCBpZiBkZWJ1Z2dpbmcga2RiLgogICAg RXhhbXBsZToKICAgICAgeGtkYj4gYnAgYWNwaV9wcm9jZXNzb3JfaWRsZSAgOiB3aWxsIHNldCBi cCBpbiB4ZW4KICAgICAgeGtkYj4gYnAgZGVmYXVsdF9pZGxlIDAgOiAgIHdpbGwgc2V0IGJwIGlu IGRvbWlkIDAKICAgICAgeGtkYj4gYnAgaWRsZV9jcHUgOSA6ICAgd2lsbCBzZXQgYnAgaW4gZG9t aWQgOQoKICAgICBDb25kaXRpb25zIG1heSBiZSBzcGVjaWZpZWQgZm9yIGEgYnA6IGxocyA9PSBy aHMgb3IgbGhzICE9IHJocwogICAgIHdoZXJlIDogbGhzIGlzIHJlZ2lzdGVyIGxpa2UgJ3I2Jywg J3JheCcsIGV0Yy4uLiAgb3IgbWVtb3J5IGxvY2F0aW9uCiAgICAgICAgICAgICByaHMgaXMgaGV4 IHZhbHVlIHdpdGggb3Igd2l0aG91dCBsZWFkaW5nIDB4LgogICAgIFRodXMsCiAgICAgIHhrZGI+ IGJwIGFjcGlfcHJvY2Vzc29yX2lkbGUgcmRpID09IGMwMDAgCiAgICAgIHhrZGI+IGJwIDB4ZmZm ZmZmZmY4MDA2MmViYyAwIHJzaSA9PSBmZmZmODgwMDIxZWRiYzk4IDogd2lsbCBicmVhayBpbnRv CiAgICAgICAgICAgIGtkYiBhdCAweGZmZmZmZmZmODAwNjJlYmMgaW4gZG9tMCB3aGVuIHJzaSBp cyBmZmZmODgwMDIxZWRiYzk4IAoKYnRwOiBicmVhayBwb2ludCB0cmFjZS4gVXBvbiBicCwgcHJp bnQgc29tZSBpbmZvIGFuZCBjb250aW51ZSB3aXRob3V0IHN0b3BwaW5nLgogICBFeDogYnRwIGlk bGVfY3B1IDcgcmF4IHJieCAweDIwZWY1YTUgcjkKCiAgIHdpbGwgcHJpbnQ6IHJheCwgcmJ4LCAq KGxvbmcgKikweDIwZWY1YTUsIHI5IHVwb24gaGl0dGluZyBpZGxlX2NwdSgpIGFuZCAKICAgICAg ICAgICAgICAgY29udGludWUuCgp3cDogc2V0IGEgd2F0Y2hwb2ludCBhdCBhIHZpcnR1YWwgYWRk cmVzcyB3aGljaCBjYW4gYmVsb25nIHRvIGh5cGVydmlzb3Igb3IKICAgIGFueSBndWVzdC4gRG8g bm90IHNwZWNpZnkgd3AgaW4ga2RiIHBhdGggaWYgZGVidWdnaW5nIGtkYi4KCndjOiBjbGVhciBn aXZlbiBvciBhbGwgd2F0Y2hwb2ludHMuCgpuaTogc2luZ2xlIHN0ZXAsIHN0ZXBwaW5nIG92ZXIg ZnVuY3Rpb24gY2FsbHMuCgpzczogc2luZ2xlIHN0ZXAuIEJlIGNhcmVmdWxsIHdoZW4gaW4gaW50 ZXJydXB0IGhhbmRsZXJzIG9yIGNvbnRleHQgc3dpdGNoZXMuCiAgICAKc3NiOiBzaW5nbGUgc3Rl cCB0byBicmFuY2guIFVzZSB3aXRoIGNhcmUuCgpnbzogbGVhdmUga2RiIGFuZCBjb250aW51ZS4K CmNwdTogZ28gYmFjayB0byBvcmlnIGNwdSB3aGVuIGVudGVyaW5nIGtkYi4gSWYgJ2NwdSBudW1i ZXInIGdpdmVuLCB0aGVuIHN3aXRjaCAKICAgICB0byB0aGF0IGNwdS4gSWYgJ2FsbCcgdGhlbiBz aG93IHN0YXR1cyBvZiBhbGwgY3B1cy4KCm5taTogT25seSBhdmFpbGFibGUgaW4gaHVuZy9jcmFz aCBzdGF0ZS4gU2VuZCBOTUkgdG8gYSBjcHUgdGhhdCBtYXkgYmUgaHVuZy4KCnN5bTogSW5pdGlh bGl6ZSBhIHN5bWJvbCB0YWJsZSBmb3IgZGVidWdnaW5nIGEgZ3Vlc3QuIExvb2sgaW50byB0aGUg U3lzdGVtLm1hcAogICAgIGZpbGUgb2YgZ3Vlc3QgZm9yIGNlcnRhaW4gc3ltYm9sIHZhbHVlcyBh bmQgcHJvdmlkZSB0aGVtIGhlcmUuCgp2Y3B1aDogR2l2ZW4gdmNwdSBwdHIsIGRpc3BsYXkgaHZt X3ZjcHUgc3RydWN0LgoKdmNwdTogRGlzcGxheSBjdXJyZW50IHZjcHUgc3RydWN0LiBJZiAndmNw dS1wdHInIGdpdmVuLCBkaXNwbGF5IHRoYXQgdmNwdS4KCmRvbTogZGlzcGxheSBjdXJyZW50IGRv bWFpbi4gSWYgJ2RvbWlkJyB0aGVuIGRpc3BsYXkgdGhhdCBkb21pZC4gSWYgJ2FsbCcsIHRoZW4K ICAgICBkaXNwbGF5IGFsbCBkb21haW5zLgoKc2NoZWQ6IHNob3cgc2NoZWR1bGFyIGluZm8gYW5k IHJ1biBxdWV1ZXMuCgptbXU6IHByaW50IGJhc2ljIG1tdSBpbmZvCgpwMm06IGNvbnZlcnQgYSBn cGZuIHRvIG1mbiBnaXZlbiBhIGRvbWlkLiB2YWx1ZSBpbiBoZXggZXZlbiB3aXRob3V0IDB4LgoK bTJwOiBjb252ZXJ0IG1mbiB0byBwZm4uIHZhbHVlIGluIGhleCBldmVuIHdpdGhvdXQgMHguCgpk cGFnZTogZGlzcGxheSBzdHJ1Y3QgcGFnZSBnaXZlbiBhIG1mbiBvciBzdHJ1Y3QgcGFnZSBwdHIu IFNpbmNlLCBubyBpbmZvIGlzIAogICAgICAga2VwdCBvbiBwYWdlIHR5cGUsIHdlIGRpc3BsYXkg YWxsIHBvc3NpYmxlIHBhZ2UgdHlwZXMuCgpkdHJxOiBkaXNwbGF5IHRpbWVyIHF1ZXVlcy4KCmRp ZHQ6IGR1bXAgSURUIHRhYmxlLgoKZGd0OiBkdW1wIEdEVCB0YWJsZS4KCmRpcnE6IGRpc3BsYXkg SVJRIGJpbmRpbmdzLgoKZHZtYzogZGlzcGxheSBhbGwgb3IgZ2l2ZW4gZG9tL3ZjcHUgVk1DUyBv ciBWTUNCLgoKdHJjb246IHR1cm4gdHJhY2luZyBvbi4gVHJhY2UgaG9va3MgbXVzdCBiZSBhZGRl ZCBpbiB4ZW4gYW5kIGtkYiBmdW5jdGlvbgogICAgICAgY2FsbGVkIGRpcmVjdGx5IGZyb20gdGhl cmUuCgp0cmNvZmY6IHR1cm4gdHJhY2luZyBvZmYuCgp0cmN6OiB6ZXJvIHRyYWNlIGJ1ZmZlci4K CnRyY3A6IGdpdmUgaGludHMgdG8gcHJpbnQgdGhlIGNpcmN1bGFyIHRyYWNlIGJ1ZmZlciwgbGlr ZSBjdXJyZW50IGFjdGl2ZSBwdHIuCgp1c3IxOiBhbGxvd3MgdG8gYWRkIGFueSBhcmJpdHJhdHkg Y29tbWFuZCBxdWlja2x5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLyoKICogQ29weXJpZ2h0 IChDKSAyMDA4IE9yYWNsZS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCiAqIExpY2Vu c2UgdjIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAqCiAq IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHdyaXRlIHRvIHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s IDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICogQm9zdG9uLCBNQSAwMjExMTAtMTMwNywg VVNBLgogKi8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA a2RiL2tkYm1haW4uYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjQAMDAwMjc1 NgAwMDAyNzU2ADAwMDAwMDYyNjcxADEyMDE3NTAyNjEzADAxMzMzMgAgMAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv KgogKiBDb3B5cmlnaHQgKEMpIDIwMDksIE11a2VzaCBSYXRob3IsIE9yYWNsZSBDb3JwLiAgQWxs IHJpZ2h0cyByZXNlcnZlZC4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSB2MiBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICog WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj CiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhl CiAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3Vp dGUgMzMwLAogKiBCb3N0b24sIE1BIDAyMTExMC0xMzA3LCBVU0EuCiAqLwoKI2luY2x1ZGUgImlu Y2x1ZGUva2RiaW5jLmgiCgpzdGF0aWMgaW50IGtkYm1haW4oa2RiX3JlYXNvbl90LCBzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqKTsKc3RhdGljIGludCBrZGJtYWluX2ZhdGFsKHN0cnVjdCBjcHVfdXNl cl9yZWdzICosIGludCk7CnN0YXRpYyBjb25zdCBjaGFyICprZGJfZ2V0dHJhcG5hbWUoaW50KTsK Ci8qID09PT09PT09PT09PT09PT09PT09PT09PSBHTE9CQUwgVkFSSUFCTEVTID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0gKi8KLyogQWxsIGdsb2JhbCB2YXJpYWJsZXMgdXNlZCBieSBL REIgbXVzdCBiZSBkZWZpbmVkIGhlcmUgb25seS4gTW9kdWxlIHNwZWNpZmljCiAqIHN0YXRpYyB2 YXJpYWJsZXMgbXVzdCBiZSBkZWNsYXJlZCBpbiByZXNwZWN0aXZlIG1vZHVsZXMuCiAqLwprZGJ0 YWJfdCAqa2RiX2NtZF90Ymw7CmNoYXIga2RiX3Byb21wdFszMl07Cgp2b2xhdGlsZSBrZGJfY3B1 X2NtZF90IGtkYl9jcHVfY21kW05SX0NQVVNdOwpjcHVtYXNrX3Qga2RiX2NwdV90cmFwczsgICAg ICAgICAgIC8qIGJpdCBwZXIgY3B1IHRvIHRlbGwgd2hpY2ggY3B1cyBoaXQgaW50MyAqLwoKI2lm bmRlZiBOREVCVUcKICAgICNlcnJvciBLREIgaXMgbm90IHN1cHBvcnRlZCBvbiBkZWJ1ZyB4ZW4u IFR1cm4gZGVidWcgb2ZmCiNlbmRpZgoKdm9sYXRpbGUgaW50IGtkYl9pbml0X2NwdSA9IC0xOyAg ICAgICAgICAgLyogaW5pdGlhbCBrZGIgY3B1ICovCnZvbGF0aWxlIGludCBrZGJfc2Vzc2lvbl9i ZWd1biA9IDA7ICAgICAgIC8qIGFjdGl2ZSBrZGIgc2Vzc2lvbj8gKi8Kdm9sYXRpbGUgaW50IGtk Yl9lbmFibGVkID0gMTsgICAgICAgICAgICAgLyoga2RiIGVuYWJsZWQgY3VycmVudGx5PyAqLwp2 b2xhdGlsZSBpbnQga2RiX3N5c19jcmFzaCA9IDA7ICAgICAgICAgICAvKiBhcmUgd2UgaW4gY3Jh c2hlZCBzdGF0ZT8gKi8Kdm9sYXRpbGUgaW50IGtkYmRiZyA9IDA7ICAgICAgICAgICAgICAgICAg LyogdG8gZGVidWcga2RiIGl0c2VsZiAqLwoKc3RhdGljIHZvbGF0aWxlIGludCBrZGJfdHJhcF9p bW1lZF9yZWFzb24gPSAwOyAgIC8qIHJlYXNvbiBmb3IgaW1tZWQgdHJhcCAqLwoKc3RhdGljIGNw dW1hc2tfdCBrZGJfZmF0YWxfY3B1bWFzazsgICAgICAgLyogd2hpY2ggY3B1cyBpbiBmYXRhbCBw YXRoICovCgovKiByZXR1cm4gaW5kZXggb2YgZmlyc3QgYml0IHNldCBpbiB2YWwuIGlmIHZhbCBp cyAwLCByZXR2YWwgaXMgdW5kZWZpbmVkICovCnN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGtk Yl9maXJzdGJpdCh1bnNpZ25lZCBsb25nIHZhbCkKewogICAgX19hc21fXyAoICJic2YgJTEsJTAi IDogIj1yIiAodmFsKSA6ICJyIiAodmFsKSwgIjAiIChCSVRTX1BFUl9MT05HKSApOwogICAgcmV0 dXJuICh1bnNpZ25lZCBpbnQpdmFsOwp9CgpzdGF0aWMgdm9pZCAKa2RiX2RiZ19wcm50X2N0cnBz KGNoYXIgKmxhYmVsLCBpbnQgY2NwdSkKewogICAgaW50IGk7CiAgICBpZiAoIWtkYmRiZykKICAg ICAgICByZXR1cm47CgogICAgaWYgKGxhYmVsIHx8ICpsYWJlbCkKICAgICAgICBrZGJwKCIlcyAi LCBsYWJlbCk7CiAgICBpZiAoY2NwdSAhPSAtMSkKICAgICAgICBrZGJwKCJjY3B1OiVkICIsIGNj cHUpOwogICAga2RicCgiY3B1dHJwczoiKTsKICAgIGZvciAoaT1zaXplb2Yoa2RiX2NwdV90cmFw cykvc2l6ZW9mKGtkYl9jcHVfdHJhcHMuYml0c1swXSkgLSAxOyBpID49MDsgaS0tKQogICAgICAg IGtkYnAoIiAlbHgiLCBrZGJfY3B1X3RyYXBzLmJpdHNbaV0pOwogICAga2RicCgiXG4iKTsKfQoK LyogCiAqIEhvbGQgdGhpcyBjcHUuIERvbid0IGRpc2FibGUgdW50aWwgYWxsIENQVXMgaW4ga2Ri IHRvIGF2b2lkIElQSSBkZWFkbG9jayAKICovCnN0YXRpYyB2b2lkCmtkYl9ob2xkX3RoaXNfY3B1 KGludCBjY3B1LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgS0RCR1AoImNjcHU6 JWQgaG9sZC4gY21kOiV4XG4iLCBrZGJfY3B1X2NtZFtjY3B1XSk7CiAgICBkbyB7CiAgICAgICAg Zm9yKDsga2RiX2NwdV9jbWRbY2NwdV0gPT0gS0RCX0NQVV9QQVVTRTsgY3B1X3JlbGF4KCkpOwog ICAgICAgIEtEQkdQKCJjY3B1OiVkIGhvbGQuIGNtZDoleFxuIiwga2RiX2NwdV9jbWRbY2NwdV0p OwoKICAgICAgICBpZiAoa2RiX2NwdV9jbWRbY2NwdV0gPT0gS0RCX0NQVV9ESVNBQkxFKSB7CiAg ICAgICAgICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7CiAgICAgICAgICAgIGtkYl9jcHVfY21kW2Nj cHVdID0gS0RCX0NQVV9QQVVTRTsKICAgICAgICB9CiAgICAgICAgaWYgKGtkYl9jcHVfY21kW2Nj cHVdID09IEtEQl9DUFVfRE9fVk1FWElUKSB7CiAgICAgICAgICAgIGtkYl9jdXJyX2NwdV9mbHVz aF92bWNzKCk7CiAgICAgICAgICAgIGtkYl9jcHVfY21kW2NjcHVdID0gS0RCX0NQVV9QQVVTRTsK ICAgICAgICB9CiAgICAgICAgaWYgKGtkYl9jcHVfY21kW2NjcHVdID09IEtEQl9DUFVfU0hPV1BD KSB7CiAgICAgICAgICAgIGtkYnAoIlslZF0iLCBjY3B1KTsKICAgICAgICAgICAga2RiX2Rpc3Bs YXlfcGMocmVncyk7CiAgICAgICAgICAgIGtkYl9jcHVfY21kW2NjcHVdID0gS0RCX0NQVV9QQVVT RTsKICAgICAgICB9CiAgICB9IHdoaWxlIChrZGJfY3B1X2NtZFtjY3B1XSA9PSBLREJfQ1BVX1BB VVNFKTsgICAgIC8qIE5vIGdvdG8sIGVoISAqLwogICAgS0RCR1AxKCJ1biBob2xkOiBjY3B1OiVk IGNtZDolZFxuIiwgY2NwdSwga2RiX2NwdV9jbWRbY2NwdV0pOwp9CgovKgogKiBQYXVzZSB0aGlz IGNwdSB3aGlsZSBvbmUgQ1BVIGRvZXMgbWFpbiBrZGIgcHJvY2Vzc2luZy4gSWYgdGhhdCBDUFUg ZG9lcwogKiBhICJjcHUgc3dpdGNoIiB0byB0aGlzIGNwdSwgdGhpcyBjcHUgd2lsbCBiZWNvbWUg dGhlIG1haW4ga2RiIGNwdS4gSWYgdGhlCiAqIHVzZXIgbmV4dCBkb2VzIHNpbmdsZSBzdGVwIG9m IHNvbWUgc29ydCwgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGV4aXRlZCwKICogYW5kIHRoaXMgY3B1 IHdpbGwgY29tZSBiYWNrIGludG8ga2RiIHZpYSBrZGJfaGFuZGxlX3RyYXBfZW50cnkgZnVuY3Rp b24uCiAqLwpzdGF0aWMgdm9pZCAKa2RiX3BhdXNlX3RoaXNfY3B1KHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzLCB2b2lkICp1bnVzZWQpCnsKICAgIGtkYm1haW4oS0RCX1JFQVNPTl9QQVVTRV9J UEksIHJlZ3MpOwp9CgovKiBwYXVzZSBvdGhlciBjcHVzIHZpYSBhbiBJUEkuIE5vdGUsIGRpc2Fi bGVkIENQVXMgY2FuJ3QgcmVjZWl2ZSBJUElzIHVudGlsCiAqIGVuYWJsZWQgKi8Kc3RhdGljIHZv aWQKa2RiX3NtcF9wYXVzZV9jcHVzKHZvaWQpCnsKICAgIGludCBjcHUsIHdhaXRfY291bnQgPSAw OwogICAgaW50IGNjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7ICAgICAgLyogY3VycmVudCBjcHUg Ki8KICAgIGNwdW1hc2tfdCBjcHVtYXNrID0gY3B1X29ubGluZV9tYXA7CgogICAgY3B1bWFza19j bGVhcl9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpLCAmY3B1bWFzayk7CiAgICBmb3JfZWFjaF9jcHUo Y3B1LCAmY3B1bWFzaykKICAgICAgICBpZiAoa2RiX2NwdV9jbWRbY3B1XSAhPSBLREJfQ1BVX0lO VkFMKSB7CiAgICAgICAgICAgIGtkYnAoIktEQjogd29uJ3QgcGF1c2UgY3B1OiVkLCBjbWRbY3B1 XT0lZFxuIixjcHUsa2RiX2NwdV9jbWRbY3B1XSk7CiAgICAgICAgICAgIGNwdW1hc2tfY2xlYXJf Y3B1KGNwdSwgJmNwdW1hc2spOwogICAgICAgIH0KICAgIEtEQkdQKCJjY3B1OiVkIHdpbGwgcGF1 c2UgY3B1cy4gbWFzazoweCVseFxuIiwgY2NwdSwgY3B1bWFzay5iaXRzWzBdKTsKI2lmIFhFTl9T VUJWRVJTSU9OID4gNCB8fCBYRU5fVkVSU0lPTiA9PSA0ICAgICAgICAgICAgICAvKiB4ZW4gMy41 Lnggb3IgYWJvdmUgKi8KICAgIG9uX3NlbGVjdGVkX2NwdXMoJmNwdW1hc2ssICh2b2lkICgqKSh2 b2lkICopKWtkYl9wYXVzZV90aGlzX2NwdSwgCiAgICAgICAgICAgICAgICAgICAgICJYRU5LREIi LCAwKTsKI2Vsc2UKICAgIG9uX3NlbGVjdGVkX2NwdXMoY3B1bWFzaywgKHZvaWQgKCopKHZvaWQg Kikpa2RiX3BhdXNlX3RoaXNfY3B1LCAKICAgICAgICAgICAgICAgICAgICAgIlhFTktEQiIsIDAs IDApOwojZW5kaWYKICAgIG1kZWxheSgzMDApOyAgICAgICAgICAgICAgICAgICAgIC8qIHdhaXQg YSBiaXQgZm9yIG90aGVyIENQVXMgdG8gc3RvcCAqLwogICAgd2hpbGUod2FpdF9jb3VudCsrIDwg MTApIHsKICAgICAgICBpbnQgYnVtbWVyID0gMDsKICAgICAgICBmb3JfZWFjaF9jcHUoY3B1LCAm Y3B1bWFzaykKICAgICAgICAgICAgaWYgKGtkYl9jcHVfY21kW2NwdV0gIT0gS0RCX0NQVV9QQVVT RSkKICAgICAgICAgICAgICAgIGJ1bW1lciA9IDE7CiAgICAgICAgaWYgKCFidW1tZXIpCiAgICAg ICAgICAgIGJyZWFrOwogICAgICAgIGtkYnAoImNjcHU6JWQgdHJ5aW5nIHRvIHN0b3Agb3RoZXIg Y3B1cy4uLlxuIiwgY2NwdSk7CiAgICAgICAgbWRlbGF5KDEwMCk7ICAvKiB3YWl0IDEwMCBtcyAq LwogICAgfTsKICAgIGZvcl9lYWNoX2NwdShjcHUsICZjcHVtYXNrKSAgICAgICAgICAvKiBub3cg Y2hlY2sgd2hvIGlzIHdpdGggdXMgKi8KICAgICAgICBpZiAoa2RiX2NwdV9jbWRbY3B1XSAhPSBL REJfQ1BVX1BBVVNFKQogICAgICAgICAgICBrZGJwKCJCdW1tZXIgY3B1ICVkIG5vdCBwYXVzZWQu IGNjcHU6JWRcbiIsIGNwdSxjY3B1KTsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAga2RiX2Nw dV9jbWRbY3B1XSA9IEtEQl9DUFVfRElTQUJMRTsgIC8qIHRlbGwgaXQgdG8gZGlzYWJsZSBpbnRz ICovCiAgICAgICAgICAgIHdoaWxlIChrZGJfY3B1X2NtZFtjcHVdICE9IEtEQl9DUFVfUEFVU0Up OwogICAgICAgIH0KfQoKLyogCiAqIERvIG9uY2UgcGVyIGtkYiBzZXNzaW9uOiAgQSBrZGIgc2Vz c2lvbiBsYXN0cyBmcm9tIAogKiAgICBrZXlib3JkL0hXQlAvU1dCUCB0aWxsIEtEQl9DUFVfSU5T VEFMTF9CUCBpcyBkb25lLiBXaXRoaW4gYSBzZXNzaW9uLAogKiAgICB1c2VyIG1heSBkbyBzZXZl cmFsIGNwdSBzd2l0Y2hlcywgc2luZ2xlIHN0ZXAsIG5leHQgaW5zdHIsICBldGMuLgogKgogKiBE TzogMS4gcGF1c2Ugb3RoZXIgY3B1cyBpZiB0aGV5IGFyZSBub3QgYWxyZWFkeS4gdGhleSB3b3Vs ZCBhbHJlYWR5IGJlIAogKiAgICAgICAgaWYgd2UgYXJlIGluIHNpbmdsZSBzdGVwIG1vZGUKICog ICAgIDIuIHdhdGNoZG9nX2Rpc2FibGUoKSAKICogICAgIDMuIHVuaW5zdGFsbCBhbGwgc3cgYnJl YWtwb2ludHMgc28gdGhhdCB1c2VyIGRvZXNuJ3Qgc2VlIHRoZW0KICovCnN0YXRpYyB2b2lkCmtk Yl9iZWdpbl9zZXNzaW9uKHZvaWQpCnsKICAgIGlmICgha2RiX3Nlc3Npb25fYmVndW4pIHsKICAg ICAgICBrZGJfc2Vzc2lvbl9iZWd1biA9IDE7CiAgICAgICAga2RiX3NtcF9wYXVzZV9jcHVzKCk7 CiAgICAgICAgbG9jYWxfaXJxX2Rpc2FibGUoKTsKICAgICAgICB3YXRjaGRvZ19kaXNhYmxlKCk7 CiAgICAgICAga2RiX3VuaW5zdGFsbF9hbGxfc3dicCgpOwogICAgfQp9CgpzdGF0aWMgdm9pZApr ZGJfc21wX3VucGF1c2VfY3B1cyhpbnQgY2NwdSkKewogICAgaW50IGNwdTsKCiAgICBpbnQgd2Fp dF9jb3VudCA9IDA7CiAgICBjcHVtYXNrX3QgY3B1bWFzayA9IGNwdV9vbmxpbmVfbWFwOwoKICAg IGNwdW1hc2tfY2xlYXJfY3B1KHNtcF9wcm9jZXNzb3JfaWQoKSwgJmNwdW1hc2spOwoKICAgIEtE QkdQKCJrZGJfc21wX3VucGF1c2Vfb3RoZXJfY3B1cygpLiBjY3B1OiVkXG4iLCBjY3B1KTsKICAg IGZvcl9lYWNoX2NwdShjcHUsICZjcHVtYXNrKQogICAgICAgIGtkYl9jcHVfY21kW2NwdV0gPSBL REJfQ1BVX1FVSVQ7CgogICAgd2hpbGUod2FpdF9jb3VudCsrIDwgMTApIHsKICAgICAgICBpbnQg YnVtbWVyID0gMDsKICAgICAgICBmb3JfZWFjaF9jcHUoY3B1LCAmY3B1bWFzaykKICAgICAgICAg ICAgaWYgKGtkYl9jcHVfY21kW2NwdV0gIT0gS0RCX0NQVV9JTlZBTCkKICAgICAgICAgICAgICAg IGJ1bW1lciA9IDE7CiAgICAgICAgICAgIGlmICghYnVtbWVyKQogICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgIG1kZWxheSg5MCk7ICAvKiB3YWl0IDkwIG1zLCA1MCB0b28gc2hvcnQg b24gbGFyZ2Ugc3lzdGVtcyAqLwogICAgfTsKICAgIC8qIG5vdyBtYWtlIHN1cmUgdGhleSBhcmUg YWxsIGluIHRoZXJlICovCiAgICBmb3JfZWFjaF9jcHUoY3B1LCAmY3B1bWFzaykKICAgICAgICBp ZiAoa2RiX2NwdV9jbWRbY3B1XSAhPSBLREJfQ1BVX0lOVkFMKQogICAgICAgICAgICBrZGJwKCJL REI6IGNwdSAlZCBzdGlsbCBwYXVzZWQgKGNtZD09JWQpLiBjY3B1OiVkXG4iLAogICAgICAgICAg ICAgICAgIGNwdSwga2RiX2NwdV9jbWRbY3B1XSwgY2NwdSk7Cn0KCi8qCiAqIEVuZCBvZiBLREIg c2Vzc2lvbi4gCiAqICAgVGhpcyBpcyBjYWxsZWQgYXQgdGhlIHZlcnkgZW5kLiBJbiBjYXNlIG9m IG11bHRpcGxlIGNwdXMgaGl0dGluZyBCUHMKICogICBhbmQgc2l0dGluZyBvbiBhIHRyYXAgaGFu ZGxlcnMsIHRoZSBsYXN0IGNwdSB0byBleGl0IHdpbGwgY2FsbCB0aGlzLgogKiAgIC0gaXNuc3Rh bGwgYWxsIHN3IGJyZWFrcG9pbnRzLCBhbmQgcHVyZ2UgZGVsZXRlZCBvbmVzIGZyb20gdGFibGUu CiAqICAgLSBjbGVhciBURiBoZXJlIGFsc28gaW4gY2FzZSBnbyBpcyBlbnRlcmVkIG9uIGEgZGlm ZmVyZW50IGNwdSBhZnRlciBzd2l0Y2gKICovCnN0YXRpYyB2b2lkCmtkYl9lbmRfc2Vzc2lvbihp bnQgY2NwdSwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIEFTU0VSVCghY3B1bWFz a19lbXB0eSgma2RiX2NwdV90cmFwcykpOwogICAgQVNTRVJUKGtkYl9zZXNzaW9uX2JlZ3VuKTsK ICAgIGtkYl9pbnN0YWxsX2FsbF9zd2JwKCk7CiAgICBrZGJfZmx1c2hfc3dicF90YWJsZSgpOwog ICAga2RiX2luc3RhbGxfd2F0Y2hwb2ludHMoKTsKCiAgICByZWdzLT5lZmxhZ3MgJj0gflg4Nl9F RkxBR1NfVEY7CiAgICBrZGJfY3B1X2NtZFtjY3B1XSA9IEtEQl9DUFVfSU5WQUw7CiAgICBrZGJf dGltZV9yZXN1bWUoMSk7CiAgICBrZGJfc2Vzc2lvbl9iZWd1biA9IDA7ICAgICAgLyogYmVmb3Jl IHVucGF1c2UgZm9yIGtkYl9pbnN0YWxsX3dhdGNocG9pbnRzICovCiAgICBrZGJfc21wX3VucGF1 c2VfY3B1cyhjY3B1KTsKICAgIHdhdGNoZG9nX2VuYWJsZSgpOwogICAgS0RCR1AoImVuZF9zZXNz aW9uOmNjcHU6JWRcbiIsIGNjcHUpOwp9CgovKiAKICogY2hlY2sgaWYgd2UgZW50ZXJlZCBrZGIg YmVjYXVzZSBvZiBEQiB0cmFwLiBJZiB5ZXMsIHRoZW4gY2hlY2sgaWYKICogd2UgY2F1c2VkIGl0 IG9yIHNvbWVvbmUgZWxzZS4KICogUkVUVVJOUzogMCA6IG5vdCBvbmUgb2Ygb3Vycy4gaHlwZXJ2 aXNvciBtdXN0IGhhbmRsZSBpdC4gCiAqICAgICAgICAgIDEgOiAjREIgZm9yIGRlbGF5ZWQgc3cg YnAgaW5zdGFsbC4gCiAqICAgICAgICAgIDIgOiB0aGlzIGNwdSBtdXN0IHN0YXkgaW4ga2RiLgog Ki8Kc3RhdGljIG5vaW5saW5lIGludAprZGJfY2hlY2tfZGJ0cmFwKGtkYl9yZWFzb25fdCAqcmVh c3AsIGludCBzc19tb2RlLCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykgCnsKICAgIGludCBy YyA9IDI7CiAgICBpbnQgY2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKCiAgICAvKiBEQiBleGNw IGNhdXNlZCBieSBodyBicmVha3BvaW50IG9yIHRoZSBURiBmbGFnLiBUaGUgVEYgZmxhZyBpcyBz ZXQKICAgICAqIGJ5IHVzIGZvciBzcyBtb2RlIG9yIHRvIGluc3RhbGwgYnJlYWtwb2ludHMuIElu IHNzIG1vZGUsIG5vbmUgb2YgdGhlCiAgICAgKiBicmVha3BvaW50cyBhcmUgaW5zdGFsbGVkLiBD aGVjayB0byBtYWtlIHN1cmUgd2UgaW50ZW5kZWQgQlAgSU5TVEFMTAogICAgICogc28gd2UgZG9u J3QgZG8gaXQgb24gYSBzcHVyaW91cyBEQiB0cmFwLgogICAgICogY2hlY2sgZm9yIGtkYl9jcHVf dHJhcHMgaGVyZSBhbHNvLCBiZWNhdXNlIGVhY2ggY3B1IHNpdHRpbmcgb24gYSB0cmFwCiAgICAg KiBtdXN0IGV4ZWN1dGUgdGhlIGluc3RydWN0aW9uIHdpdGhvdXQgdGhlIEJQIGJlZm9yZSBwYXNz aW5nIGNvbnRyb2wKICAgICAqIHRvIG5leHQgY3B1IGluIGtkYl9jcHVfdHJhcHMuCiAgICAgKi8K ICAgIGlmICgqcmVhc3AgPT0gS0RCX1JFQVNPTl9EQkVYQ1AgJiYgIXNzX21vZGUpIHsKICAgICAg ICBpZiAoa2RiX2NwdV9jbWRbY2NwdV0gPT0gS0RCX0NQVV9JTlNUQUxMX0JQKSB7CiAgICAgICAg ICAgIGlmICghY3B1bWFza19lbXB0eSgma2RiX2NwdV90cmFwcykpIHsKICAgICAgICAgICAgICAg IGludCBhX3RyYXBfY3B1ID0gY3B1bWFza19maXJzdCgma2RiX2NwdV90cmFwcyk7CiAgICAgICAg ICAgICAgICBLREJHUCgiY2NwdTolZCB0cmFwY3B1OiVkXG4iLCBjY3B1LCBhX3RyYXBfY3B1KTsK ICAgICAgICAgICAgICAgIGtkYl9jcHVfY21kW2FfdHJhcF9jcHVdID0gS0RCX0NQVV9RVUlUOwog ICAgICAgICAgICAgICAgKnJlYXNwID0gS0RCX1JFQVNPTl9QQVVTRV9JUEk7CiAgICAgICAgICAg ICAgICByZWdzLT5lZmxhZ3MgJj0gflg4Nl9FRkxBR1NfVEY7ICAvKiBodm06IGV4aXQgaGFuZGxl ciBzcyA9IDAgKi8KICAgICAgICAgICAgICAgIGtkYl9pbml0X2NwdSA9IC0xOwogICAgICAgICAg ICB9IGVsc2UgewogICAgICAgICAgICAgICAga2RiX2VuZF9zZXNzaW9uKGNjcHUsIHJlZ3MpOwog ICAgICAgICAgICAgICAgcmMgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmICgh IGtkYl9jaGVja193YXRjaHBvaW50cyhyZWdzKSkgewogICAgICAgICAgICByYyA9IDA7ICAgICAg ICAgICAgICAgICAgICAgICAgLyogaHlwIG11c3QgaGFuZGxlIGl0ICovCiAgICAgICAgfQogICAg fQogICAgcmV0dXJuIHJjOwp9CgovKiAKICogTWlzYyBwcm9jZXNzaW5nIG9uIGtkYiBlbnRyeSBs aWtlIGRpc3BsYXlpbmcgUEMsIGFkanVzdCBJUCBmb3Igc3cgYnAuLi4uIAogKi8Kc3RhdGljIHZv aWQKa2RiX21haW5fZW50cnlfbWlzYyhrZGJfcmVhc29uX3QgcmVhc29uLCBzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncywgCiAgICAgICAgICAgICAgICAgICAgaW50IGNjcHUsIGludCBzc19tb2Rl LCBpbnQgZW5hYmxlZCkKewogICAgaWYgKHJlYXNvbiA9PSBLREJfUkVBU09OX0tFWUJPQVJEKQog ICAgICAgIGtkYnAoIlxuRW50ZXIga2RiIChjcHU6JWQgcmVhc29uOiVkIHZjcHU9JWQgZG9taWQ6 JWQiCiAgICAgICAgICAgICAiIGVmbGc6MHglbHggaXJxczolZClcbiIsIGNjcHUsIHJlYXNvbiwg Y3VycmVudC0+dmNwdV9pZCwgCiAgICAgICAgICAgICBjdXJyZW50LT5kb21haW4tPmRvbWFpbl9p ZCwgcmVncy0+ZWZsYWdzLCBlbmFibGVkKTsKICAgIGVsc2UgaWYgKHNzX21vZGUpCiAgICAgICAg S0RCR1AxKCJLREJHOiBLREIgc2luZ2xlIHN0ZXAgbW9kZS4gY2NwdTolZFxuIiwgY2NwdSk7Cgog ICAgaWYgKHJlYXNvbiA9PSBLREJfUkVBU09OX0JQRVhDUCAmJiAhc3NfbW9kZSkgCiAgICAgICAg a2RicCgiQnJlYWtwb2ludCBvbiBjcHUgJWQgYXQgMHglbHhcbiIsIGNjcHUsIHJlZ3MtPktEQklQ KTsKCiAgICAvKiBkaXNwbGF5IHRoZSBjdXJyZW50IFBDIGFuZCBpbnN0cnVjdGlvbiBhdCBpdCAq LwogICAgaWYgKHJlYXNvbiAhPSBLREJfUkVBU09OX1BBVVNFX0lQSSkKICAgICAgICBrZGJfZGlz cGxheV9wYyhyZWdzKTsKICAgIGNvbnNvbGVfc3RhcnRfc3luYygpOwp9CgovKiAKICogVGhlIE1B SU4ga2RiIGZ1bmN0aW9uLiBBbGwgY3B1cyBnbyB0aHJ1IHRoaXMuIElSUSBpcyBlbmFibGVkIG9u IGVudHJ5IGJlY2F1c2UKICogYSBjcHUgY291bGQgaGl0IGEgYnAgc2V0IGluIGRpc2FibGVkIGNv ZGUuCiAqIElQSTogRXZlbiB0aGUgbWFpbiBjcHUgbXVzdCBlbmFibGUgaW4gY2FzZSBhbm90aGVy IENQVSBpcyB0cnlpbmcgdG8gSVBJIHVzLgogKiAgICAgIFRoYXQgd2F5LCBpdCB3b3VsZCBJUEkg dXMsIHRoZW4gZ2V0IG91dCBhbmQgYmUgcmVhZHkgZm9yIG91ciBwYXVzZSBJUEkuCiAqIElSUXM6 IFRoZSByZWFzb24gaXJxcyBlbmFibGUvZGlzYWJsZSBpcyBzY2F0dGVyZWQgaXMgYmVjYXVzZSBv biBhIHR5cGljYWwKICogICAgICAgc3lzdGVtIElQSXMgYXJlIGNvbnN0YW50bHkgZ29pbmcgb24g YW1vbmdzIENQVXMgaW4gYSBzZXQgb2YgYW55IHNpemUuIAogKiAgICAgICBBcyBhIHJlc3VsdCwg IHRvIGF2b2lkIGRlYWRsb2NrLCBjcHVzIGhhdmUgdG8gbG9vcCBlbmFibGVkLCB1bnRpbCBhIAog KiAgICAgICBxdW9ydW0gaXMgZXN0YWJsaXNoZWQgYW5kIHRoZSBzZXNzaW9uIGhhcyBiZWd1bi4K ICogU3RlcDogSW50ZWwgVm9sM0IgMTguMy4xLjQgOiBBbiBleHRlcm5hbCBpbnRlcnJ1cHQgbWF5 IGJlIHNlcnZpY2VkIHVwb24KICogICAgICAgc2luZ2xlIHN0ZXAuIFNpbmNlLCB0aGUgbGlrZWx5 IGV4dCB0aW1lcl9pbnRlcnJ1cHQgYW5kIAogKiAgICAgICBhcGljX3RpbWVyX2ludGVycnVwdCBk b250JyBtZXNzIHdpdGggdGltZSBkYXRhIHN0cnVjdHMsIHdlIGFyZSBwcm9iIE9LCiAqICAgICAg IGxlYXZpbmcgZW5hYmxlZC4KICogVGltZTogVmVyeSBtZXNzeS4gTW9zdCBwbGF0Zm9ybSB0aW1l cnMgYXJlIHJlYWRvbmx5LCBzbyB3ZSBjYW4ndCBzdG9wIHRpbWUKICogICAgICAgaW4gdGhlIGRl YnVnZ2VyLiBXZSB0YWtlIHRoZSBvbmx5IHJlc29ydCwgbGV0IHRoZSBUU0MgYW5kIHBsdCBydW4g YXMKICogICAgICAgbm9ybWFsLCB1cG9uIGxlYXZpbmcsICJhdHRlbXB0IiB0byBicmluZyBldmVy eWJvZHkgdG8gY3VycmVudCB0aW1lLgogKiBrZGJjcHV0cmFwczogYml0IHBlciBjcHUuIGVhY2gg Y3B1IHNldHMgaXQgYml0IGluIGVudHJ5LlMuIFRoZSBiaXQgaXMgCiAqICAgICAgICAgICAgICBy ZWxpYWJsZSBiZWNhdXNlIHVwb24gdHJhcHMsIEludHMgYXJlIGRpc2FibGVkLiB0aGUgYml0IGlz IHNldAogKiAgICAgICAgICAgICAgYmVmb3JlIEludHMgYXJlIGVuYWJsZWQuCiAqCiAqIFJFVFVS TlM6IDAgOiBrZGIgd2FzIGNhbGxlZCBmb3IgZXZlbnQgaXQgd2FzIG5vdCByZXNwb25zaWJsZQog KiAgICAgICAgICAxIDogZXZlbnQgb3duZWQgYW5kIGhhbmRsZWQgYnkga2RiIAogKi8Kc3RhdGlj IGludAprZGJtYWluKGtkYl9yZWFzb25fdCByZWFzb24sIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpy ZWdzKQp7CiAgICBpbnQgY2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsgICAgICAgICAgICAgICAg LyogY3VycmVudCBjcHUgKi8KICAgIGludCByYyA9IDEsIGNtZCA9IGtkYl9jcHVfY21kW2NjcHVd OwogICAgaW50IHNzX21vZGUgPSAoY21kID09IEtEQl9DUFVfU1MgfHwgY21kID09IEtEQl9DUFVf TkkpOwogICAgaW50IGRlbGF5ZWRfaW5zdGFsbCA9IChrZGJfY3B1X2NtZFtjY3B1XSA9PSBLREJf Q1BVX0lOU1RBTExfQlApOwogICAgaW50IGVuYWJsZWQgPSBsb2NhbF9pcnFfaXNfZW5hYmxlZCgp OwoKICAgIEtEQkdQKCJrZGJtYWluOmNjcHU6JWQgcnNuOiVkIGVmbGdzOjB4JWx4IGNtZDolZCBp bml0YzolZCBpcnFzOiVkICIKICAgICAgICAgICJyZWdzOiVseCBJUDolbHggIiwgY2NwdSwgcmVh c29uLCByZWdzLT5lZmxhZ3MsIGNtZCwgCiAgICAgICAgICBrZGJfaW5pdF9jcHUsIGVuYWJsZWQs IHJlZ3MsIHJlZ3MtPktEQklQKTsKICAgIGtkYl9kYmdfcHJudF9jdHJwcygiIiwgLTEpOwoKICAg IGlmICghc3NfbW9kZSAmJiAhZGVsYXllZF9pbnN0YWxsKSAgICAvKiBpbml0aWFsIGtkYiBlbnRl ciAqLwogICAgICAgIGxvY2FsX2lycV9lbmFibGUoKTsgICAgICAgICAgICAgIC8qIHNvIHdlIGNh biByZWNlaXZlIElQSSAqLwoKICAgIGlmICghc3NfbW9kZSAmJiBjY3B1ICE9IGtkYl9pbml0X2Nw dSAmJiByZWFzb24gIT0gS0RCX1JFQVNPTl9QQVVTRV9JUEkpewogICAgICAgIGludCBzeiA9IHNp emVvZihrZGJfaW5pdF9jcHUpOwogICAgICAgIHdoaWxlIChfX2NtcHhjaGcoJmtkYl9pbml0X2Nw dSwgLTEsIGNjcHUsIHN6KSAhPSAtMSkKICAgICAgICAgICAgZm9yKDsga2RiX2luaXRfY3B1ICE9 IC0xOyBjcHVfcmVsYXgoKSk7CiAgICB9CiAgICBpZiAoa2RiX3Nlc3Npb25fYmVndW4pCiAgICAg ICAgbG9jYWxfaXJxX2Rpc2FibGUoKTsgICAgICAgICAgICAgLyoga2RiIGFsd2F5cyBydW5zIGRp c2FibGVkICovCgogICAgaWYgKHJlYXNvbiA9PSBLREJfUkVBU09OX0JQRVhDUCkgeyAgICAgICAg ICAgICAvKiBJTlQgMyAqLwogICAgICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNjcHUsICZrZGJfY3B1 X3RyYXBzKTsgICAvKiByZW1vdmUgb3Vyc2VsZiAqLwogICAgICAgIHJjID0ga2RiX2NoZWNrX3N3 X2JrcHRzKHJlZ3MpOwogICAgICAgIGlmIChyYyA9PSAwKSB7ICAgICAgICAgICAgICAgLyogbm90 IG9uZSBvZiBvdXJzLiBsZWF2ZSBrZGIgKi8KICAgICAgICAgICAga2RiX2luaXRfY3B1ID0gLTE7 CiAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgIH0gZWxzZSBpZiAocmMgPT0gMSkgeyAgICAg ICAgLyogb25lIG9mIG91cnMgYnV0IGRlbGV0ZWQgKi8KICAgICAgICAgICAgaWYgKGNwdW1hc2tf ZW1wdHkoJmtkYl9jcHVfdHJhcHMpKSB7CiAgICAgICAgICAgICAgICBrZGJfZW5kX3Nlc3Npb24o Y2NwdSxyZWdzKTsgICAgIAogICAgICAgICAgICAgICAga2RiX2luaXRfY3B1ID0gLTE7CiAgICAg ICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgLyogcmVsZWFzZSBhbm90aGVyIHRyYXAgY3B1LCBhbmQgcHV0IG91 cnNlbGYgaW4gYSBwYXVzZSBtb2RlICovCiAgICAgICAgICAgICAgICBpbnQgYV90cmFwX2NwdSA9 IGNwdW1hc2tfZmlyc3QoJmtkYl9jcHVfdHJhcHMpOwogICAgICAgICAgICAgICAgS0RCR1AoImNj cHU6JWQgY21kOiVkIHJzbjolZCBhdHJwY3B1OiVkIGluaXRjcHU6JWRcbiIsIGNjcHUsIAogICAg ICAgICAgICAgICAgICAgICAga2RiX2NwdV9jbWRbY2NwdV0sIHJlYXNvbiwgYV90cmFwX2NwdSwg a2RiX2luaXRfY3B1KTsKICAgICAgICAgICAgICAgIGtkYl9jcHVfY21kW2FfdHJhcF9jcHVdID0g S0RCX0NQVV9RVUlUOwogICAgICAgICAgICAgICAgcmVhc29uID0gS0RCX1JFQVNPTl9QQVVTRV9J UEk7CiAgICAgICAgICAgICAgICBrZGJfaW5pdF9jcHUgPSAtMTsKICAgICAgICAgICAgfQogICAg ICAgIH0gZWxzZSBpZiAocmMgPT0gMikgeyAgICAgICAgLyogb25lIG9mIG91cnMgYnV0IGNvbmRp dGlvbiBub3QgbWV0ICovCiAgICAgICAgICAgICAgICBrZGJfYmVnaW5fc2Vzc2lvbigpOwogICAg ICAgICAgICAgICAgaWYgKGd1ZXN0X21vZGUocmVncykgJiYgaXNfaHZtX29yX2h5Yl92Y3B1KGN1 cnJlbnQpKQogICAgICAgICAgICAgICAgICAgIGN1cnJlbnQtPmFyY2guaHZtX3ZjcHUuc2luZ2xl X3N0ZXAgPSAxOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHJlZ3Mt PmVmbGFncyB8PSBYODZfRUZMQUdTX1RGOyAgCiAgICAgICAgICAgICAgICBrZGJfY3B1X2NtZFtj Y3B1XSA9IEtEQl9DUFVfSU5TVEFMTF9CUDsKICAgICAgICAgICAgICAgIGdvdG8gb3V0OwogICAg ICAgIH0KICAgIH0KCiAgICAvKiBmb2xsb3dpbmcgd2lsbCB0YWtlIGNhcmUgb2YgS0RCX0NQVV9J TlNUQUxMX0JQLCBhbmQgYWxzbyByZWxlYXNlCiAgICAgKiBrZGJfaW5pdF9jcHUuIGl0IHNob3Vs ZCBub3QgYmUgZG9uZSB0d2ljZSAqLwogICAgaWYgKChyYz1rZGJfY2hlY2tfZGJ0cmFwKCZyZWFz b24sIHNzX21vZGUsIHJlZ3MpKSA9PSAwIHx8IHJjID09IDEpIHsKICAgICAgICBrZGJfaW5pdF9j cHUgPSAtMTsgICAgICAgLyogbGVhdmluZyBrZGIgKi8KICAgICAgICBnb3RvIG91dDsgICAgICAg ICAgICAgICAgLyogcmMgcHJvcGVybHkgc2V0IHRvIDAgb3IgMSAqLwogICAgfQogICAgaWYgKHJl YXNvbiAhPSBLREJfUkVBU09OX1BBVVNFX0lQSSkgewogICAgICAgIGtkYl9jcHVfY21kW2NjcHVd ID0gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0gZWxzZQogICAgICAgIGtkYl9jcHVfY21kW2NjcHVd ID0gS0RCX0NQVV9QQVVTRTsKCiAgICBpZiAoa2RiX2NwdV9jbWRbY2NwdV0gPT0gS0RCX0NQVV9N QUlOX0tEQiAmJiAhc3NfbW9kZSkKICAgICAgICBrZGJfYmVnaW5fc2Vzc2lvbigpOyAKCiAgICBr ZGJfbWFpbl9lbnRyeV9taXNjKHJlYXNvbiwgcmVncywgY2NwdSwgc3NfbW9kZSwgZW5hYmxlZCk7 CiAgICAvKiBub3RlLCBvbmUgb3IgbW9yZSBjcHUgc3dpdGNoZXMgbWF5IG9jY3VyIGluIGJldHdl ZW4gKi8KICAgIHdoaWxlICgxKSB7CiAgICAgICAgaWYgKGtkYl9jcHVfY21kW2NjcHVdID09IEtE Ql9DUFVfUEFVU0UpCiAgICAgICAgICAgIGtkYl9ob2xkX3RoaXNfY3B1KGNjcHUsIHJlZ3MpOwog ICAgICAgIGlmIChrZGJfY3B1X2NtZFtjY3B1XSA9PSBLREJfQ1BVX01BSU5fS0RCKQogICAgICAg ICAgICBrZGJfZG9fY21kcyhyZWdzKTsKCiAgICAgICAgaWYgKGtkYl9jcHVfY21kW2NjcHVdID09 IEtEQl9DUFVfR08pIHsKICAgICAgICAgICAgaWYgKGNjcHUgIT0ga2RiX2luaXRfY3B1KSB7CiAg ICAgICAgICAgICAgICBrZGJfY3B1X2NtZFtrZGJfaW5pdF9jcHVdID0gS0RCX0NQVV9HTzsKICAg ICAgICAgICAgICAgIGtkYl9jcHVfY21kW2NjcHVdID0gS0RCX0NQVV9QQVVTRTsKICAgICAgICAg ICAgICAgIGNvbnRpbnVlOyAgICAgICAgICAgICAgIC8qIGZvciB0aGUgcGF1c2UgZ3V5ICovCiAg ICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFjcHVtYXNrX2VtcHR5KCZrZGJfY3B1X3RyYXBz KSkgewogICAgICAgICAgICAgICAgLyogZXhlY3V0ZSBjdXJyZW50IGluc3RydWN0aW9uIHdpdGhv dXQgMHhjYyAqLwogICAgICAgICAgICAgICAga2RiX2RiZ19wcm50X2N0cnBzKCJuZW1wdHk6Iiwg Y2NwdSk7CiAgICAgICAgICAgICAgICBpZiAoZ3Vlc3RfbW9kZShyZWdzKSAmJiBpc19odm1fb3Jf aHliX3ZjcHUoY3VycmVudCkpCiAgICAgICAgICAgICAgICAgICAgY3VycmVudC0+YXJjaC5odm1f dmNwdS5zaW5nbGVfc3RlcCA9IDE7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg ICAgICAgcmVncy0+ZWZsYWdzIHw9IFg4Nl9FRkxBR1NfVEY7ICAKICAgICAgICAgICAgICAgIGtk Yl9jcHVfY21kW2NjcHVdID0gS0RCX0NQVV9JTlNUQUxMX0JQOwogICAgICAgICAgICAgICAgZ290 byBvdXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGtkYl9jcHVfY21kW2Nj cHVdICE9IEtEQl9DUFVfUEFVU0UgICYmIAogICAgICAgICAgICBrZGJfY3B1X2NtZFtjY3B1XSAh PSBLREJfQ1BVX01BSU5fS0RCKQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAo a2RiX2NwdV9jbWRbY2NwdV0gPT0gS0RCX0NQVV9HTykgewogICAgICAgIEFTU0VSVChjcHVtYXNr X2VtcHR5KCZrZGJfY3B1X3RyYXBzKSk7CiAgICAgICAgaWYgKGtkYl9zd2JwX2V4aXN0cygpKSB7 CiAgICAgICAgICAgIGlmIChyZWFzb24gPT0gS0RCX1JFQVNPTl9CUEVYQ1ApIHsKICAgICAgICAg ICAgICAgIC8qIGRvIGRlbGF5ZWQgaW5zdGFsbCAqLwogICAgICAgICAgICAgICAgaWYgKGd1ZXN0 X21vZGUocmVncykgJiYgaXNfaHZtX29yX2h5Yl92Y3B1KGN1cnJlbnQpKQogICAgICAgICAgICAg ICAgICAgIGN1cnJlbnQtPmFyY2guaHZtX3ZjcHUuc2luZ2xlX3N0ZXAgPSAxOwogICAgICAgICAg ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHJlZ3MtPmVmbGFncyB8PSBYODZfRUZMQUdT X1RGOyAgCiAgICAgICAgICAgICAgICBrZGJfY3B1X2NtZFtjY3B1XSA9IEtEQl9DUFVfSU5TVEFM TF9CUDsKICAgICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICAgICB9IAogICAgICAgIH0K ICAgICAgICBrZGJfZW5kX3Nlc3Npb24oY2NwdSwgcmVncyk7CiAgICAgICAga2RiX2luaXRfY3B1 ID0gLTE7CiAgICB9Cm91dDoKICAgIGlmIChrZGJfY3B1X2NtZFtjY3B1XSA9PSBLREJfQ1BVX1FV SVQpIHsKICAgICAgICBLREJHUCgiY2NwdTolZCBfcXVpdCBJUDogJWx4XG4iLCBjY3B1LCByZWdz LT5LREJJUCk7CiAgICAgICAgaWYgKCEga2RiX3Nlc3Npb25fYmVndW4pCiAgICAgICAgICAgIGtk Yl9pbnN0YWxsX3dhdGNocG9pbnRzKCk7CiAgICAgICAga2RiX3RpbWVfcmVzdW1lKDApOwogICAg ICAgIGtkYl9jcHVfY21kW2NjcHVdID0gS0RCX0NQVV9JTlZBTDsKICAgIH0KCiAgICAvKiBmb3Ig c3MgYW5kIGRlbGF5ZWQgaW5zdGFsbCwgVEYgaXMgc2V0LiBub3QgbXVjaCBpbiBFWFQgSU5UIGhh bmRsZXJzKi8KICAgIGlmIChrZGJfY3B1X2NtZFtjY3B1XSA9PSBLREJfQ1BVX05JKQogICAgICAg IGtkYl90aW1lX3Jlc3VtZSgxKTsKICAgIGlmIChlbmFibGVkKQogICAgICAgIGxvY2FsX2lycV9l bmFibGUoKTsKCiAgICBLREJHUCgia2RibWFpbjpYOmNjcHU6JWQgcmM6JWQgY21kOiVkIGVmbGc6 MHglbHggaW5pdGM6JWQgc2VzbjolZCAiIAogICAgICAgICAgImNzOiV4IGlycXM6JWQgIiwgY2Nw dSwgcmMsIGtkYl9jcHVfY21kW2NjcHVdLCByZWdzLT5lZmxhZ3MsIAogICAgICAgICAga2RiX2lu aXRfY3B1LCBrZGJfc2Vzc2lvbl9iZWd1biwgcmVncy0+Y3MsIGxvY2FsX2lycV9pc19lbmFibGVk KCkpOwogICAga2RiX2RiZ19wcm50X2N0cnBzKCIiLCAtMSk7CiAgICByZXR1cm4gKHJjID8gMSA6 IDApOwp9CgovKiAKICoga2RiIGVudHJ5IGZ1bmN0aW9uIHdoZW4gY29taW5nIGluIHZpYSBhIGtl eWJvYXJkCiAqIFJFVFVSTlM6IDAgOiBrZGIgd2FzIGNhbGxlZCBmb3IgZXZlbnQgaXQgd2FzIG5v dCByZXNwb25zaWJsZQogKiAgICAgICAgICAxIDogZXZlbnQgb3duZWQgYW5kIGhhbmRsZWQgYnkg a2RiIAogKi8KaW50CmtkYl9rZXlib2FyZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewog ICAgcmV0dXJuIGtkYm1haW4oS0RCX1JFQVNPTl9LRVlCT0FSRCwgcmVncyk7Cn0KCiNpZiAwCi8q CiAqIHRoaXMgZnVuY3Rpb24gY2FsbGVkIHdoZW4ga2RiIHNlc3Npb24gYWN0aXZlIGFuZCB1c2Vy IHByZXNzZXMgY3RybFwgYWdhaW4uCiAqIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIHVzZXIg dHlwZWQgbmkvc3MgY21kLCBhbmQgaXQgbmV2ZXIgZ290IGJhY2sgaW50bwogKiBrZGIsIG9yIHRo ZSB1c2VyIGlzIGltcGF0aWVudC4gRWl0aGVyIGNhc2UsIHdlIGp1c3QgZmFrZSBpdCB0aGF0IHRo ZSBTUyBkaWQKICogZmluaXNoLiBTaW5jZSwgYWxsIG90aGVyIGtkYiBjcHVzIG11c3QgYmUgaG9s ZGluZyBkaXNhYmxlZCwgdGhlIGludGVycnVwdAogKiB3b3VsZCBiZSBvbiB0aGUgQ1BVIHRoYXQg ZGlkIHRoZSBzcy9uaSBjbWQKICovCnZvaWQKa2RiX3NzbmlfcmVlbnRlcihzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncykKewogICAgaW50IGNjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAgICBp bnQgY2NtZCA9IGtkYl9jcHVfY21kW2NjcHVdOwoKICAgIGlmKGNjbWQgPT0gS0RCX0NQVV9TUyB8 fCBjY21kID09IEtEQl9DUFVfSU5TVEFMTF9CUCkKICAgICAgICBrZGJtYWluKEtEQl9SRUFTT05f REJFWENQLCByZWdzKTsgCiAgICBlbHNlIAogICAgICAgIGtkYm1haW4oS0RCX1JFQVNPTl9LRVlC T0FSRCwgcmVncyk7Cn0KI2VuZGlmCgovKiAKICogQWxsIHRyYXBzIGFyZSByb3V0ZWQgdGhydSBo ZXJlLiBXZSBjYXJlIGFib3V0IEJQICgjMykgdHJhcCAoSU5UIDMpIGFuZAogKiB0aGUgREIgdHJh cCgjMSkgb25seS4gCiAqIHJldHVybnM6IDAga2RiIGhhcyBub3RoaW5nIGRvIHdpdGggdGhpcyB0 cmFwCiAqICAgICAgICAgIDEga2RiIGhhbmRsZWQgdGhpcyB0cmFwIAogKi8KaW50CmtkYl9oYW5k bGVfdHJhcF9lbnRyeShpbnQgdmVjdG9yLCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewog ICAgaW50IHJjID0gMDsKICAgIGludCBjY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwoKICAgIGlm ICh2ZWN0b3IgPT0gVFJBUF9pbnQzKSB7CiAgICAgICAgcmMgPSBrZGJtYWluKEtEQl9SRUFTT05f QlBFWENQLCByZWdzKTsKCiAgICB9IGVsc2UgaWYgKHZlY3RvciA9PSBUUkFQX2RlYnVnKSB7CiAg ICAgICAgS0RCR1AoImNjcHU6JWQgdHJhcGRiZyByZWFzOiVkXG4iLCBjY3B1LCBrZGJfdHJhcF9p bW1lZF9yZWFzb24pOwoKICAgICAgICBpZiAoa2RiX3RyYXBfaW1tZWRfcmVhc29uID09IEtEQl9U UkFQX0ZBVEFMKSB7IAogICAgICAgICAgICBLREJHUCgia2RidHJwOmZhdGFsIGNjcHU6JWQgdmVj OiVkXG4iLCBjY3B1LCB2ZWN0b3IpOwogICAgICAgICAgICByYyA9IGtkYm1haW5fZmF0YWwocmVn cywgdmVjdG9yKTsKICAgICAgICAgICAgQlVHKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBubyByZXR1cm4gKi8KCiAgICAgICAgfSBlbHNlIGlmIChrZGJfdHJhcF9pbW1lZF9yZWFz b24gPT0gS0RCX1RSQVBfS0RCU1RBQ0spIHsKICAgICAgICAgICAga2RiX3RyYXBfaW1tZWRfcmVh c29uID0gMDsgICAgICAgICAvKiBzaG93IGtkYiBzdGFjayAqLwogICAgICAgICAgICBzaG93X3Jl Z2lzdGVycyhyZWdzKTsKICAgICAgICAgICAgc2hvd19zdGFjayhyZWdzKTsKICAgICAgICAgICAg cmVncy0+ZWZsYWdzICY9IH5YODZfRUZMQUdTX1RGOwogICAgICAgICAgICByYyA9IDE7CgogICAg ICAgIH0gZWxzZSBpZiAoa2RiX3RyYXBfaW1tZWRfcmVhc29uID09IEtEQl9UUkFQX05PTkZBVEFM KSB7CiAgICAgICAgICAgIGtkYl90cmFwX2ltbWVkX3JlYXNvbiA9IDA7CiAgICAgICAgICAgIHJj ID0ga2RiX2tleWJvYXJkKHJlZ3MpOwogICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIHNzL25pL2RlbGF5ZWQgaW5zdGFsbC4uLiAqLwogICAgICAgICAgICBpZiAoZ3Vl c3RfbW9kZShyZWdzKSAmJiBpc19odm1fb3JfaHliX3ZjcHUoY3VycmVudCkpCiAgICAgICAgICAg ICAgICBjdXJyZW50LT5hcmNoLmh2bV92Y3B1LnNpbmdsZV9zdGVwID0gMDsKICAgICAgICAgICAg cmMgPSBrZGJtYWluKEtEQl9SRUFTT05fREJFWENQLCByZWdzKTsgCiAgICAgICAgfQoKICAgIH0g ZWxzZSBpZiAodmVjdG9yID09IFRSQVBfbm1pKSB7ICAgICAgICAgICAgICAgICAgIC8qIGV4dGVy bmFsIG5taSAqLwogICAgICAgIC8qIHdoZW4gbm1pIGlzIHByZXNzZWQsIGl0IGNvdWxkIGdvIHRv IG9uZSBvciBtb3JlIG9yIGFsbCBjcHVzCiAgICAgICAgICogZGVwZW5kaW5nIG9uIHRoZSBoYXJk d2FyZS4gQWxzbywgZm9yIG5vdyBhc3N1bWUgaXQncyBmYXRhbCAqLwogICAgICAgIEtEQkdQKCJr ZGJ0cnA6Y2NwdTolZCB2ZWM6JWRcbiIsIGNjcHUsIHZlY3Rvcik7CiAgICAgICAgcmMgPSBrZGJt YWluX2ZhdGFsKHJlZ3MsIFRSQVBfbm1pKTsKICAgIH0gCiAgICByZXR1cm4gcmM7Cn0KCmludApr ZGJfdHJhcF9mYXRhbChpbnQgdmVjdG9yLCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewog ICAga2RibWFpbl9mYXRhbChyZWdzLCB2ZWN0b3IpOwogICAgcmV0dXJuIDA7Cn0KCi8qIEZyb20g c21wX3NlbmRfbm1pX2FsbGJ1dHNlbGYoKSBpbiBjcmFzaC5jIHdoaWNoIGlzIHN0YXRpYyAqLwp2 b2lkCmtkYl9ubWlfcGF1c2VfY3B1cyhjcHVtYXNrX3QgY3B1bWFzaykKewogICAgaW50IGNjcHUg PSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAgICBtZGVsYXkoMjAwKTsKICAgIGNwdW1hc2tfY29tcGxl bWVudCgmY3B1bWFzaywgJmNwdW1hc2spOyAgICAgICAgICAgICAgLyogZmxpcCBiaXQgbWFwICov CiAgICBjcHVtYXNrX2FuZCgmY3B1bWFzaywgJmNwdW1hc2ssICZjcHVfb25saW5lX21hcCk7ICAg IC8qIHJlbW92ZSBleHRyYSBiaXRzICovCiAgICBjcHVtYXNrX2NsZWFyX2NwdShjY3B1LCAmY3B1 bWFzayk7LyogYWJzb2x1dGVseSBtYWtlIHN1cmUgd2UncmUgbm90IG9uIGl0ICovCgogICAgS0RC R1AoImNjcHU6JWQgbm1pIHBhdXNlLiBtYXNrOjB4JWx4XG4iLCBjY3B1LCBjcHVtYXNrLmJpdHNb MF0pOwogICAgaWYgKCAhY3B1bWFza19lbXB0eSgmY3B1bWFzaykgKQojaWYgWEVOX1NVQlZFUlNJ T04gPiA0IHx8IFhFTl9WRVJTSU9OID09IDQgICAgICAgICAgICAgIC8qIHhlbiAzLjUueCBvciBh Ym92ZSAqLwogICAgICAgIHNlbmRfSVBJX21hc2soJmNwdW1hc2ssIEFQSUNfRE1fTk1JKTsKI2Vs c2UKICAgICAgICBzZW5kX0lQSV9tYXNrKGNwdW1hc2ssIEFQSUNfRE1fTk1JKTsKI2VuZGlmCiAg ICBtZGVsYXkoMjAwKTsKICAgIEtEQkdQKCJjY3B1OiVkIG5taSBwYXVzZSBkb25lLi4uXG4iLCBj Y3B1KTsKfQoKLyogCiAqIFNlcGFyYXRlIGZ1bmN0aW9uIGZyb20ga2RibWFpbiB0byBrZWVwIGJv dGggd2l0aGluIHNhbml0eSBsZXZlbHMuCiAqLwpERUZJTkVfU1BJTkxPQ0soa2RiX2ZhdGFsX2xr KTsKc3RhdGljIGludAprZGJtYWluX2ZhdGFsKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCBp bnQgdmVjdG9yKQp7CiAgICBpbnQgY2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKCiAgICBjb25z b2xlX3N0YXJ0X3N5bmMoKTsKCiAgICBLREJHUCgibWFpbmY6Y2NwdTolZCB2ZWM6JWQgaXJxOiVk XG4iLCBjY3B1LCB2ZWN0b3IsbG9jYWxfaXJxX2lzX2VuYWJsZWQoKSk7CiAgICBjcHVtYXNrX3Nl dF9jcHUoY2NwdSwgJmtkYl9mYXRhbF9jcHVtYXNrKTsgICAgICAgIC8qIHVzZXMgTE9DS19QUkVG SVggKi8KCiAgICBpZiAoc3Bpbl90cnlsb2NrKCZrZGJfZmF0YWxfbGspKSB7CgogICAgICAgIGtk YnAoIioqKiBrZGIgKEZhdGFsIEVycm9yIG9uIGNwdTolZCB2ZWM6JWQgJXMpOlxuIiwgY2NwdSwK ICAgICAgICAgICAgIHZlY3Rvciwga2RiX2dldHRyYXBuYW1lKHZlY3RvcikpOwogICAgICAgIGtk Yl9jcHVfY21kW2NjcHVdID0gS0RCX0NQVV9NQUlOX0tEQjsKICAgICAgICBrZGJfZGlzcGxheV9w YyhyZWdzKTsKCiAgICAgICAgd2F0Y2hkb2dfZGlzYWJsZSgpOyAgICAgLyogaW1wb3J0YW50ICov CiAgICAgICAga2RiX3N5c19jcmFzaCA9IDE7CiAgICAgICAga2RiX3Nlc3Npb25fYmVndW4gPSAw OyAgLyogaW5jYXNlIHNlc3Npb24gYWxyZWFkeSBhY3RpdmUgKi8KICAgICAgICBsb2NhbF9pcnFf ZW5hYmxlKCk7CiAgICAgICAga2RiX25taV9wYXVzZV9jcHVzKGtkYl9mYXRhbF9jcHVtYXNrKTsK CiAgICAgICAga2RiX2NsZWFyX3ByZXZfY21kKCk7ICAgLyogYnVmZmVyZWQgQ1JzIHdpbGwgcmVw ZWF0IHByZXYgY21kICovCiAgICAgICAga2RiX3Nlc3Npb25fYmVndW4gPSAxOyAgLyogZm9yIGtk Yl9ob2xkX3RoaXNfY3B1KCkgKi8KICAgICAgICBsb2NhbF9pcnFfZGlzYWJsZSgpOwogICAgfSBl bHNlIHsKICAgICAgICBrZGJfY3B1X2NtZFtjY3B1XSA9IEtEQl9DUFVfUEFVU0U7CiAgICB9CiAg ICB3aGlsZSAoMSkgewogICAgICAgIGlmIChrZGJfY3B1X2NtZFtjY3B1XSA9PSBLREJfQ1BVX1BB VVNFKQogICAgICAgICAgICBrZGJfaG9sZF90aGlzX2NwdShjY3B1LCByZWdzKTsKICAgICAgICBp ZiAoa2RiX2NwdV9jbWRbY2NwdV0gPT0gS0RCX0NQVV9NQUlOX0tEQikKICAgICAgICAgICAga2Ri X2RvX2NtZHMocmVncyk7CiNpZiAwCiAgICAgICAgLyogZHVtcCBpcyB0aGUgb25seSB3YXkgdG8g ZXhpdCBpbiBjcmFzaGVkIHN0YXRlICovCiAgICAgICAgaWYgKGtkYl9jcHVfY21kW2NjcHVdID09 IEtEQl9DUFVfRFVNUCkKICAgICAgICAgICAga2RiX2RvX2R1bXAocmVncyk7CiNlbmRpZgogICAg fQogICAgcmV0dXJuIDA7Cn0KCi8qIE1vc3RseSBjYWxsZWQgaW4gZmF0YWwgY2FzZXMuIGVhcmx5 a2RiIGNhbGxzIG5vbi1mYXRhbC4KICoga2RiX3RyYXBfaW1tZWRfcmVhc29uIGlzIGdsb2JhbCwg c28gYWxsb3cgb25seSBvbmUgY3B1IGF0IGEgdGltZS4gQWxzbywKICogbXVsdGlwbGUgY3B1IG1h eSBiZSBjcmFzaGluZyBhdCB0aGUgc2FtZSB0aW1lLiBXZSBlbmFibGUgYmVjYXVzZSBpZiB0aGVy ZQogKiBpcyBhIGJhZCBoYW5nLCBhdCBsZWFzdCBjdHJsLVwgd2lsbCBicmVhayBpbnRvIGtkYi4g QWxzbywgd2UgZG9uJ3QgY2FsbAogKiBjYWxsIGtkYl9rZXlib2FyZCBkaXJlY3RseSBiZWNhdWUg d2UgZG9uJ3QgaGF2ZSB0aGUgcmVnaXN0ZXIgY29udGV4dC4KICovCkRFRklORV9TUElOTE9DSyhr ZGJfaW1tZWRfbGspOwp2b2lkCmtkYl90cmFwX2ltbWVkKGludCByZWFzb24pICAgICAgICAgICAg LyogZmF0YWwsIG5vbi1mYXRhbCwga2RiIHN0YWNrIGV0Yy4uLiAqLwp7CiAgICBpbnQgY2NwdSA9 IHNtcF9wcm9jZXNzb3JfaWQoKTsKICAgIGludCBkaXNhYmxlZCA9ICFsb2NhbF9pcnFfaXNfZW5h YmxlZCgpOwoKICAgIEtEQkdQKCJ0cmFwaW1tOmNjcHU6JWQgcmVhczolZFxuIiwgY2NwdSwgcmVh c29uKTsKICAgIGxvY2FsX2lycV9lbmFibGUoKTsKICAgIHNwaW5fbG9jaygma2RiX2ltbWVkX2xr KTsKICAgIGtkYl90cmFwX2ltbWVkX3JlYXNvbiA9IHJlYXNvbjsKICAgIGJhcnJpZXIoKTsKICAg IF9fYXNtX18gX192b2xhdGlsZV9fICggImludCAkMSIgKTsKICAgIGtkYl90cmFwX2ltbWVkX3Jl YXNvbiA9IDA7CgogICAgc3Bpbl91bmxvY2soJmtkYl9pbW1lZF9sayk7CiAgICBpZiAoZGlzYWJs ZWQpCiAgICAgICAgbG9jYWxfaXJxX2Rpc2FibGUoKTsKfQoKLyogY2FsbGVkIHZlcnkgZWFybHkg ZHVyaW5nIGluaXQsIGV2ZW4gYmVmb3JlIGFsbCBDUFVzIGFyZSBicm91Z2h0IG9ubGluZSAqLwp2 b2lkIAprZGJfaW5pdCh2b2lkKQp7CiAgICAgICAga2RiX2luaXRfY21kdGFiKCk7ICAgICAgLyog SW5pdGlhbGl6ZSBDb21tYW5kIFRhYmxlICovCn0KCnN0YXRpYyBjb25zdCBjaGFyICoKa2RiX2dl dHRyYXBuYW1lKGludCB0cmFwbm8pCnsKICAgIGNoYXIgKnJldDsKICAgIHN3aXRjaCAodHJhcG5v KSB7CiAgICAgICAgY2FzZSAgMDogIHJldCA9ICJEaXZpZGUgRXJyb3IiOyBicmVhazsKICAgICAg ICBjYXNlICAyOiAgcmV0ID0gIk5NSSBJbnRlcnJ1cHQiOyBicmVhazsKICAgICAgICBjYXNlICAz OiAgcmV0ID0gIkludCAzIFRyYXAiOyBicmVhazsKICAgICAgICBjYXNlICA0OiAgcmV0ID0gIk92 ZXJmbG93IEVycm9yIjsgYnJlYWs7CiAgICAgICAgY2FzZSAgNjogIHJldCA9ICJJbnZhbGlkIE9w Y29kZSI7IGJyZWFrOwogICAgICAgIGNhc2UgIDg6ICByZXQgPSAiRG91YmxlIEZhdWx0IjsgYnJl YWs7CiAgICAgICAgY2FzZSAxMDogIHJldCA9ICJJbnZhbGlkIFRTUyI7IGJyZWFrOwogICAgICAg IGNhc2UgMTE6ICByZXQgPSAiU2VnbWVudCBOb3QgUHJlc2VudCI7IGJyZWFrOwogICAgICAgIGNh c2UgMTI6ICByZXQgPSAiU3RhY2stU2VnbWVudCBGYXVsdCI7IGJyZWFrOwogICAgICAgIGNhc2Ug MTM6ICByZXQgPSAiR2VuZXJhbCBQcm90ZWN0aW9uIjsgYnJlYWs7CiAgICAgICAgY2FzZSAxNDog IHJldCA9ICJQYWdlIEZhdWx0IjsgYnJlYWs7CiAgICAgICAgY2FzZSAxNzogIHJldCA9ICJBbGln bm1lbnQgQ2hlY2siOyBicmVhazsKICAgICAgICBkZWZhdWx0OiByZXQgPSAiID8/Pz8/ICI7CiAg ICB9CiAgICByZXR1cm4gcmV0Owp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PSBHZW5lcmlj IHRyYWNpbmcgc3Vic3lzdGVtID09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBL REJUUkNNQVggMSAgICAgICAvKiBzZXQgdGhpcyB0byBtYXggbnVtYmVyIG9mIHJlY3MgdG8gdHJh Y2UuIGVhY2ggcmVjIAogICAgICAgICAgICAgICAgICAgICAgICAgICAqIGlzIDMyIGJ5dGVzICov CnZvbGF0aWxlIGludCBrZGJfdHJjb249MTsgLyogdHVybiB0cmFjaW5nIE9OOiBzZXQgaGVyZSBv ciB2aWEgdGhlIHRyY29uIGNtZCAqLwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgdW5pb24gewogICAg ICAgIHN0cnVjdCB7IHVpbnQgZDA7IHVpbnQgY3B1X3RyY2lkOyB9IHMwOwogICAgICAgIHVpbnQ2 NF90IGwwOwogICAgfXU7CiAgICB1aW50NjRfdCBsMSwgbDIsIGwzOyAKfSB0cmNfcmVjX3Q7Cgpz dGF0aWMgdm9sYXRpbGUgdW5zaWduZWQgaW50IHRyY2lkeDsgICAgLyogcG9pbnRzIHRvIHdoZXJl IG5ldyBlbnRyeSB3aWxsIGdvICovCnN0YXRpYyB0cmNfcmVjX3QgdHJjYVtLREJUUkNNQVhdOyAg ICAgICAvKiB0cmFjZSBhcnJheSAqLwoKLyogYXRvbWljYWxseTogYWRkIGkgdG8gKnAsIHJldHVy biBwcmV2IHZhbHVlIG9mICpwIChpZSwgdmFsIGJlZm9yZSBhZGQpICovCnN0YXRpYyBpbnQKa2Ri X2ZldGNoX2FuZF9hZGQoaW50IGksIHVpbnQgKnApCnsKICAgIGFzbSB2b2xhdGlsZSgibG9jayB4 YWRkbCAlMCwgJTE7IiA6ICI9ciIoaSkgOiAibSIoKnApLCAiMCIoaSkpOwogICAgcmV0dXJuIGk7 Cn0KCi8qIHplcm8gb3V0IHRoZSBlbnRpcmUgYnVmZmVyICovCnZvaWQgCmtkYl90cmN6ZXJvKHZv aWQpCnsKICAgIGZvciAodHJjaWR4ID0gS0RCVFJDTUFYLTE7IHRyY2lkeDsgdHJjaWR4LS0pIHsK ICAgICAgICBtZW1zZXQoJnRyY2FbdHJjaWR4XSwgMCwgc2l6ZW9mKHRyY19yZWNfdCkpOwogICAg fQogICAgbWVtc2V0KCZ0cmNhW3RyY2lkeF0sIDAsIHNpemVvZih0cmNfcmVjX3QpKTsKICAgIGtk YnAoImtkYiB0cmFjZSBidWZmZXIgaGFzIGJlZW4gemVyb2VkXG4iKTsKfQoKLyogYWRkIHRyYWNl IGVudHJ5OiBlZy46IGtkYnRyYygweGUwZjA5OSwgaW50ZGF0YSwgdmNwdSwgZG9tYWluLCAwKQog KiAgICB3aGVyZTogIDB4ZTBmMDk5IDogMjRiaXRzIG1heCB0cmNpZCwgbG93ZXIgOCBiaXRzIGFy ZSBzZXQgdG8gY3B1aWQgKi8Kdm9pZAprZGJ0cmModWludCB0cmNpZCwgdWludCBpbnRfZDAsIHVp bnQ2NF90IGQxXzY0LCB1aW50NjRfdCBkMl82NCwgdWludDY0X3QgZDNfNjQpCnsKICAgIHVpbnQg aWR4OwoKICAgIGlmICgha2RiX3RyY29uKQogICAgICAgIHJldHVybjsKCiAgICBpZHggPSBrZGJf ZmV0Y2hfYW5kX2FkZCgxLCAodWludCopJnRyY2lkeCk7CiAgICBpZHggPSBpZHggJSBLREJUUkNN QVg7CgojaWYgMAogICAgdHJjYVtpZHhdLnUuczAuY3B1X3RyY2lkID0gKHNtcF9wcm9jZXNzb3Jf aWQoKTw8MjQpIHwgdHJjaWQ7CiNlbmRpZgogICAgdHJjYVtpZHhdLnUuczAuY3B1X3RyY2lkID0g KHRyY2lkPDw4KSB8IHNtcF9wcm9jZXNzb3JfaWQoKTsKICAgIHRyY2FbaWR4XS51LnMwLmQwID0g aW50X2QwOwogICAgdHJjYVtpZHhdLmwxID0gZDFfNjQ7CiAgICB0cmNhW2lkeF0ubDIgPSBkMl82 NDsKICAgIHRyY2FbaWR4XS5sMyA9IGQzXzY0Owp9CgovKiBnaXZlIGhpbnRzIHNvIHVzZXIgY2Fu IHByaW50IHRyYyBidWZmZXIgdmlhIHRoZSBkZCBjb21tYW5kLiBsYXN0IGhhcyB0aGUKICogbW9z dCByZWNlbnQgZW50cnkgKi8Kdm9pZAprZGJfdHJjcCh2b2lkKQp7CiAgICBpbnQgaSA9IHRyY2lk eCAlIEtEQlRSQ01BWDsKCiAgICBpID0gKGk9PTApID8gS0RCVFJDTUFYLTEgOiBpLTE7CiAgICBr ZGJwKCJ0cmNidWY6ICAgIFswXTogJTAxNmx4IFtNQVgtMV06ICUwMTZseFxuIiwgJnRyY2FbMF0s CiAgICAgICAgICZ0cmNhW0tEQlRSQ01BWC0xXSk7CiAgICBrZGJwKCIgW21vc3QgcmVjZW50XTog JTAxNmx4ICAgdHJjaWR4OiAweCV4XG4iLCAmdHJjYVtpXSwgdHJjaWR4KTsKfQoKAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAABrZGIveDg2LwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc3NQAw MDAyNzU2ADAwMDI3NTYAMDAwMDAwMDAwMDAAMTIwMTc3MjQ2MjQAMDEyMjAyACA1AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAGtkYi94ODYvdWRpczg2LTEuNy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzc1ADAw MDI3NTYAMDAwMjc1NgAwMDAwMDAwMDAwMAAxMjAxNzcyNDYyNAAwMTM2MjcAIDUAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtcmF0aG9yAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAa2RiL3g4Ni91ZGlzODYtMS43L2lucHV0LmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjQAMDAw Mjc1NgAwMDAyNzU2ADAwMDAwMDAyNDAwADExNzY1NDY1NTU2ADAxNTE1MgAgMAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBpbnB1dC5oCiAqCiAqIENvcHlyaWdodCAoYykg MjAwNiwgVml2ZWsgTW9oYW4gPHZpdmVrQHNpZzkuY29tPgogKiBBbGwgcmlnaHRzIHJlc2VydmVk LiBTZWUgTElDRU5TRQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8KI2lmbmRlZiBVRF9JTlBV VF9ICiNkZWZpbmUgVURfSU5QVVRfSAoKI2luY2x1ZGUgInR5cGVzLmgiCgp1aW50OF90IGlucF9u ZXh0KHN0cnVjdCB1ZCopOwp1aW50OF90IGlucF9wZWVrKHN0cnVjdCB1ZCopOwp1aW50OF90IGlu cF91aW50OChzdHJ1Y3QgdWQqKTsKdWludDE2X3QgaW5wX3VpbnQxNihzdHJ1Y3QgdWQqKTsKdWlu dDMyX3QgaW5wX3VpbnQzMihzdHJ1Y3QgdWQqKTsKdWludDY0X3QgaW5wX3VpbnQ2NChzdHJ1Y3Qg dWQqKTsKdm9pZCBpbnBfbW92ZShzdHJ1Y3QgdWQqLCBzaXplX3QpOwp2b2lkIGlucF9iYWNrKHN0 cnVjdCB1ZCopOwoKLyogaW5wX2luaXQoKSAtIEluaXRpYWxpemVzIHRoZSBpbnB1dCBzeXN0ZW0u ICovCiNkZWZpbmUgaW5wX2luaXQodSkgXApkbyB7IFwKICB1LT5pbnBfY3VyciA9IDA7IFwKICB1 LT5pbnBfZmlsbCA9IDA7IFwKICB1LT5pbnBfY3RyICA9IDA7IFwKICB1LT5pbnBfZW5kICA9IDA7 IFwKfSB3aGlsZSAoMCkKCi8qIGlucF9zdGFydCgpIC0gU2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUg ZWFjaCBkZS1jb2RlIG9wZXJhdGlvbi4gKi8KI2RlZmluZSBpbnBfc3RhcnQodSkgdS0+aW5wX2N0 ciA9IDAKCi8qIGlucF9iYWNrKCkgLSBSZXNldHMgdGhlIGN1cnJlbnQgcG9pbnRlciB0byBpdHMg cG9zaXRpb24gYmVmb3JlIHRoZSBjdXJyZW50CiAqIGluc3RydWN0aW9uIGRpc2Fzc2VtYmx5IHdh cyBzdGFydGVkLgogKi8KI2RlZmluZSBpbnBfcmVzZXQodSkgXApkbyB7IFwKICB1LT5pbnBfY3Vy ciAtPSB1LT5pbnBfY3RyOyBcCiAgdS0+aW5wX2N0ciA9IDA7IFwKfSB3aGlsZSAoMCkKCi8qIGlu cF9zZXNzKCkgLSBSZXR1cm5zIHRoZSBwb2ludGVyIHRvIGN1cnJlbnQgc2Vzc2lvbi4gKi8KI2Rl ZmluZSBpbnBfc2Vzcyh1KSAodS0+aW5wX3Nlc3MpCgovKiBpbnBfY3VyKCkgLSBSZXR1cm5zIHRo ZSBjdXJyZW50IGlucHV0IGJ5dGUuICovCiNkZWZpbmUgaW5wX2N1cnIodSkgKCh1KS0+aW5wX2Nh Y2hlWyh1KS0+aW5wX2N1cnJdKQoKI2VuZGlmCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABr ZGIveDg2L3VkaXM4Ni0xLjcvc3luLWludGVsLmMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY2NAAwMDAyNzU2 ADAwMDI3NTYAMDAwMDAwMTEzNzYAMTE3NjU0NjU1NTYAMDE1NzQ0ACAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIHN5bi1pbnRlbC5jCiAqCiAqIENvcHlyaWdodCAoYykg MjAwMiwgMjAwMywgMjAwNCBWaXZlayBNb2hhbiA8dml2ZWtAc2lnOS5jb20+CiAqIEFsbCByaWdo dHMgcmVzZXJ2ZWQuIFNlZSAoTElDRU5TRSkKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCgoj aW5jbHVkZSAidHlwZXMuaCIKI2luY2x1ZGUgImV4dGVybi5oIgojaW5jbHVkZSAiZGVjb2RlLmgi CiNpbmNsdWRlICJpdGFiLmgiCiNpbmNsdWRlICJzeW4uaCIKCi8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAqIG9wcl9jYXN0KCkgLSBQcmludHMgYW4gb3BlcmFuZCBjYXN0LgogKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogKi8Kc3RhdGljIHZvaWQgCm9wcl9jYXN0KHN0cnVjdCB1ZCogdSwgc3RydWN0 IHVkX29wZXJhbmQqIG9wKQp7CiAgc3dpdGNoKG9wLT5zaXplKSB7CgljYXNlICA4OiBta2FzbSh1 LCAiYnl0ZSAiICk7IGJyZWFrOwoJY2FzZSAxNjogbWthc20odSwgIndvcmQgIiApOyBicmVhazsK CWNhc2UgMzI6IG1rYXNtKHUsICJkd29yZCAiKTsgYnJlYWs7CgljYXNlIDY0OiBta2FzbSh1LCAi cXdvcmQgIik7IGJyZWFrOwoJY2FzZSA4MDogbWthc20odSwgInR3b3JkICIpOyBicmVhazsKCWRl ZmF1bHQ6IGJyZWFrOwogIH0KICBpZiAodS0+YnJfZmFyKQoJbWthc20odSwgImZhciAiKTsgCiAg ZWxzZSBpZiAodS0+YnJfbmVhcikKCW1rYXNtKHUsICJuZWFyICIpOwp9CgovKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogKiBnZW5fb3BlcmFuZCgpIC0gR2VuZXJhdGVzIGFzc2VtYmx5IG91dHB1dCBm b3IgZWFjaCBvcGVyYW5kLgogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8Kc3RhdGljIHZvaWQg Z2VuX29wZXJhbmQoc3RydWN0IHVkKiB1LCBzdHJ1Y3QgdWRfb3BlcmFuZCogb3AsIGludCBzeW5f Y2FzdCkKewogIHN3aXRjaChvcC0+dHlwZSkgewoJY2FzZSBVRF9PUF9SRUc6CgkJbWthc20odSwg dWRfcmVnX3RhYltvcC0+YmFzZSAtIFVEX1JfQUxdKTsKCQlicmVhazsKCgljYXNlIFVEX09QX01F TTogewoKCQlpbnQgb3BfZiA9IDA7CgoJCWlmIChzeW5fY2FzdCkgCgkJCW9wcl9jYXN0KHUsIG9w KTsKCgkJbWthc20odSwgIlsiKTsKCgkJaWYgKHUtPnBmeF9zZWcpCgkJCW1rYXNtKHUsICIlczoi LCB1ZF9yZWdfdGFiW3UtPnBmeF9zZWcgLSBVRF9SX0FMXSk7CgoJCWlmIChvcC0+YmFzZSkgewoJ CQlta2FzbSh1LCAiJXMiLCB1ZF9yZWdfdGFiW29wLT5iYXNlIC0gVURfUl9BTF0pOwoJCQlvcF9m ID0gMTsKCQl9CgoJCWlmIChvcC0+aW5kZXgpIHsKCQkJaWYgKG9wX2YpCgkJCQlta2FzbSh1LCAi KyIpOwoJCQlta2FzbSh1LCAiJXMiLCB1ZF9yZWdfdGFiW29wLT5pbmRleCAtIFVEX1JfQUxdKTsK CQkJb3BfZiA9IDE7CgkJfQoKCQlpZiAob3AtPnNjYWxlKQoJCQlta2FzbSh1LCAiKiVkIiwgb3At PnNjYWxlKTsKCgkJaWYgKG9wLT5vZmZzZXQgPT0gOCkgewoJCQlpZiAob3AtPmx2YWwuc2J5dGUg PCAwKQoJCQkJbWthc20odSwgIi0weCV4IiwgLW9wLT5sdmFsLnNieXRlKTsKCQkJZWxzZQlta2Fz bSh1LCAiJXMweCV4IiwgKG9wX2YpID8gIisiIDogIiIsIG9wLT5sdmFsLnNieXRlKTsKCQl9CgkJ ZWxzZSBpZiAob3AtPm9mZnNldCA9PSAxNikKCQkJbWthc20odSwgIiVzMHgleCIsIChvcF9mKSA/ ICIrIiA6ICIiLCBvcC0+bHZhbC51d29yZCk7CgkJZWxzZSBpZiAob3AtPm9mZnNldCA9PSAzMikg ewoJCQlpZiAodS0+YWRyX21vZGUgPT0gNjQpIHsKCQkJCWlmIChvcC0+bHZhbC5zZHdvcmQgPCAw KQoJCQkJCW1rYXNtKHUsICItMHgleCIsIC1vcC0+bHZhbC5zZHdvcmQpOwoJCQkJZWxzZQlta2Fz bSh1LCAiJXMweCV4IiwgKG9wX2YpID8gIisiIDogIiIsIG9wLT5sdmFsLnNkd29yZCk7CgkJCX0g CgkJCWVsc2UJbWthc20odSwgIiVzMHglbHgiLCAob3BfZikgPyAiKyIgOiAiIiwgb3AtPmx2YWwu dWR3b3JkKTsKCQl9CgkJZWxzZSBpZiAob3AtPm9mZnNldCA9PSA2NCkgCgkJCW1rYXNtKHUsICIl czB4IiBGTVQ2NCAieCIsIChvcF9mKSA/ICIrIiA6ICIiLCBvcC0+bHZhbC51cXdvcmQpOwoKCQlt a2FzbSh1LCAiXSIpOwoJCWJyZWFrOwoJfQoJCQkKCWNhc2UgVURfT1BfSU1NOgoJCWlmIChzeW5f Y2FzdCkgb3ByX2Nhc3QodSwgb3ApOwoJCXN3aXRjaCAob3AtPnNpemUpIHsKCQkJY2FzZSAgODog bWthc20odSwgIjB4JXgiLCBvcC0+bHZhbC51Ynl0ZSk7ICAgIGJyZWFrOwoJCQljYXNlIDE2OiBt a2FzbSh1LCAiMHgleCIsIG9wLT5sdmFsLnV3b3JkKTsgICAgYnJlYWs7CgkJCWNhc2UgMzI6IG1r YXNtKHUsICIweCVseCIsIG9wLT5sdmFsLnVkd29yZCk7ICBicmVhazsKCQkJY2FzZSA2NDogbWth c20odSwgIjB4IiBGTVQ2NCAieCIsIG9wLT5sdmFsLnVxd29yZCk7IGJyZWFrOwoJCQlkZWZhdWx0 OiBicmVhazsKCQl9CgkJYnJlYWs7CgoJY2FzZSBVRF9PUF9KSU1NOgoJCWlmIChzeW5fY2FzdCkg b3ByX2Nhc3QodSwgb3ApOwoJCXN3aXRjaCAob3AtPnNpemUpIHsKCQkJY2FzZSAgODoKCQkJCW1r YXNtKHUsICIweCIgRk1UNjQgIngiLCB1LT5wYyArIG9wLT5sdmFsLnNieXRlKTsgCgkJCQlicmVh azsKCQkJY2FzZSAxNjoKCQkJCW1rYXNtKHUsICIweCIgRk1UNjQgIngiLCB1LT5wYyArIG9wLT5s dmFsLnN3b3JkKTsKCQkJCWJyZWFrOwoJCQljYXNlIDMyOgoJCQkJbWthc20odSwgIjB4IiBGTVQ2 NCAieCIsIHUtPnBjICsgb3AtPmx2YWwuc2R3b3JkKTsKCQkJCWJyZWFrOwoJCQlkZWZhdWx0OmJy ZWFrOwoJCX0KCQlicmVhazsKCgljYXNlIFVEX09QX1BUUjoKCQlzd2l0Y2ggKG9wLT5zaXplKSB7 CgkJCWNhc2UgMzI6CgkJCQlta2FzbSh1LCAid29yZCAweCV4OjB4JXgiLCBvcC0+bHZhbC5wdHIu c2VnLCAKCQkJCQlvcC0+bHZhbC5wdHIub2ZmICYgMHhGRkZGKTsKCQkJCWJyZWFrOwoJCQljYXNl IDQ4OgoJCQkJbWthc20odSwgImR3b3JkIDB4JXg6MHglbHgiLCBvcC0+bHZhbC5wdHIuc2VnLCAK CQkJCQlvcC0+bHZhbC5wdHIub2ZmKTsKCQkJCWJyZWFrOwoJCX0KCQlicmVhazsKCgljYXNlIFVE X09QX0NPTlNUOgoJCWlmIChzeW5fY2FzdCkgb3ByX2Nhc3QodSwgb3ApOwoJCW1rYXNtKHUsICIl ZCIsIG9wLT5sdmFsLnVkd29yZCk7CgkJYnJlYWs7CgoJZGVmYXVsdDogcmV0dXJuOwogIH0KfQoK LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KICogdHJhbnNsYXRlcyB0byBpbnRlbCBzeW50YXggCiAq ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAqLwpleHRlcm4gdm9pZCB1ZF90cmFuc2xhdGVfaW50ZWwo c3RydWN0IHVkKiB1KQp7CiAgLyogLS0gcHJlZml4ZXMgLS0gKi8KCiAgLyogY2hlY2sgaWYgUF9P U08gcHJlZml4IGlzIHVzZWQgKi8KICBpZiAoISBQX09TTyh1LT5pdGFiX2VudHJ5LT5wcmVmaXgp ICYmIHUtPnBmeF9vcHIpIHsKCXN3aXRjaCAodS0+ZGlzX21vZGUpIHsKCQljYXNlIDE2OiAKCQkJ bWthc20odSwgIm8zMiAiKTsKCQkJYnJlYWs7CgkJY2FzZSAzMjoKCQljYXNlIDY0OgogCQkJbWth c20odSwgIm8xNiAiKTsKCQkJYnJlYWs7Cgl9CiAgfQoKICAvKiBjaGVjayBpZiBQX0FTTyBwcmVm aXggd2FzIHVzZWQgKi8KICBpZiAoISBQX0FTTyh1LT5pdGFiX2VudHJ5LT5wcmVmaXgpICYmIHUt PnBmeF9hZHIpIHsKCXN3aXRjaCAodS0+ZGlzX21vZGUpIHsKCQljYXNlIDE2OiAKCQkJbWthc20o dSwgImEzMiAiKTsKCQkJYnJlYWs7CgkJY2FzZSAzMjoKIAkJCW1rYXNtKHUsICJhMTYgIik7CgkJ CWJyZWFrOwoJCWNhc2UgNjQ6CiAJCQlta2FzbSh1LCAiYTMyICIpOwoJCQlicmVhazsKCX0KICB9 CgogIGlmICh1LT5wZnhfbG9jaykKCW1rYXNtKHUsICJsb2NrICIpOwogIGlmICh1LT5wZnhfcmVw KQoJbWthc20odSwgInJlcCAiKTsKICBpZiAodS0+cGZ4X3JlcG5lKQoJbWthc20odSwgInJlcG5l ICIpOwogIGlmICh1LT5pbXBsaWNpdF9hZGRyICYmIHUtPnBmeF9zZWcpCglta2FzbSh1LCAiJXMg IiwgdWRfcmVnX3RhYlt1LT5wZnhfc2VnIC0gVURfUl9BTF0pOwoKICAvKiBwcmludCB0aGUgaW5z dHJ1Y3Rpb24gbW5lbW9uaWMgKi8KICBta2FzbSh1LCAiJXMgIiwgdWRfbG9va3VwX21uZW1vbmlj KHUtPm1uZW1vbmljKSk7CgogIC8qIG9wZXJhbmQgMSAqLwogIGlmICh1LT5vcGVyYW5kWzBdLnR5 cGUgIT0gVURfTk9ORSkgewoJZ2VuX29wZXJhbmQodSwgJnUtPm9wZXJhbmRbMF0sIHUtPmMxKTsK ICB9CiAgLyogb3BlcmFuZCAyICovCiAgaWYgKHUtPm9wZXJhbmRbMV0udHlwZSAhPSBVRF9OT05F KSB7Cglta2FzbSh1LCAiLCAiKTsKCWdlbl9vcGVyYW5kKHUsICZ1LT5vcGVyYW5kWzFdLCB1LT5j Mik7CiAgfQoKICAvKiBvcGVyYW5kIDMgKi8KICBpZiAodS0+b3BlcmFuZFsyXS50eXBlICE9IFVE X05PTkUpIHsKCW1rYXNtKHUsICIsICIpOwoJZ2VuX29wZXJhbmQodSwgJnUtPm9wZXJhbmRbMl0s IHUtPmMzKTsKICB9Cn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2RiL3g4Ni91ZGlz ODYtMS43L2l0YWIuYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjQAMDAwMjc1NgAwMDAyNzU2ADAw MDAwNjQ3MzU2ADExNzY1NDY1NTU2ADAxNDc1NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA bXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKLyogaXRhYi5jIC0t IGF1dG8gZ2VuZXJhdGVkIGJ5IG9wZ2VuLnB5LCBkbyBub3QgZWRpdC4gKi8KCiNpbmNsdWRlICJ0 eXBlcy5oIgojaW5jbHVkZSAiZGVjb2RlLmgiCiNpbmNsdWRlICJpdGFiLmgiCgpjb25zdCBjaGFy ICogdWRfbW5lbW9uaWNzX3N0cltdID0gewogICIzZG5vdyIsCiAgImFhYSIsCiAgImFhZCIsCiAg ImFhbSIsCiAgImFhcyIsCiAgImFkYyIsCiAgImFkZCIsCiAgImFkZHBkIiwKICAiYWRkcHMiLAog ICJhZGRzZCIsCiAgImFkZHNzIiwKICAiYWRkc3VicGQiLAogICJhZGRzdWJwcyIsCiAgImFuZCIs CiAgImFuZHBkIiwKICAiYW5kcHMiLAogICJhbmRucGQiLAogICJhbmRucHMiLAogICJhcnBsIiwK ICAibW92c3hkIiwKICAiYm91bmQiLAogICJic2YiLAogICJic3IiLAogICJic3dhcCIsCiAgImJ0 IiwKICAiYnRjIiwKICAiYnRyIiwKICAiYnRzIiwKICAiY2FsbCIsCiAgImNidyIsCiAgImN3ZGUi LAogICJjZHFlIiwKICAiY2xjIiwKICAiY2xkIiwKICAiY2xmbHVzaCIsCiAgImNsZ2kiLAogICJj bGkiLAogICJjbHRzIiwKICAiY21jIiwKICAiY21vdm8iLAogICJjbW92bm8iLAogICJjbW92YiIs CiAgImNtb3ZhZSIsCiAgImNtb3Z6IiwKICAiY21vdm56IiwKICAiY21vdmJlIiwKICAiY21vdmEi LAogICJjbW92cyIsCiAgImNtb3ZucyIsCiAgImNtb3ZwIiwKICAiY21vdm5wIiwKICAiY21vdmwi LAogICJjbW92Z2UiLAogICJjbW92bGUiLAogICJjbW92ZyIsCiAgImNtcCIsCiAgImNtcHBkIiwK ICAiY21wcHMiLAogICJjbXBzYiIsCiAgImNtcHN3IiwKICAiY21wc2QiLAogICJjbXBzcSIsCiAg ImNtcHNzIiwKICAiY21weGNoZyIsCiAgImNtcHhjaGc4YiIsCiAgImNvbWlzZCIsCiAgImNvbWlz cyIsCiAgImNwdWlkIiwKICAiY3Z0ZHEycGQiLAogICJjdnRkcTJwcyIsCiAgImN2dHBkMmRxIiwK ICAiY3Z0cGQycGkiLAogICJjdnRwZDJwcyIsCiAgImN2dHBpMnBzIiwKICAiY3Z0cGkycGQiLAog ICJjdnRwczJkcSIsCiAgImN2dHBzMnBpIiwKICAiY3Z0cHMycGQiLAogICJjdnRzZDJzaSIsCiAg ImN2dHNkMnNzIiwKICAiY3Z0c2kyc3MiLAogICJjdnRzczJzaSIsCiAgImN2dHNzMnNkIiwKICAi Y3Z0dHBkMnBpIiwKICAiY3Z0dHBkMmRxIiwKICAiY3Z0dHBzMmRxIiwKICAiY3Z0dHBzMnBpIiwK ICAiY3Z0dHNkMnNpIiwKICAiY3Z0c2kyc2QiLAogICJjdnR0c3Myc2kiLAogICJjd2QiLAogICJj ZHEiLAogICJjcW8iLAogICJkYWEiLAogICJkYXMiLAogICJkZWMiLAogICJkaXYiLAogICJkaXZw ZCIsCiAgImRpdnBzIiwKICAiZGl2c2QiLAogICJkaXZzcyIsCiAgImVtbXMiLAogICJlbnRlciIs CiAgImYyeG0xIiwKICAiZmFicyIsCiAgImZhZGQiLAogICJmYWRkcCIsCiAgImZibGQiLAogICJm YnN0cCIsCiAgImZjaHMiLAogICJmY2xleCIsCiAgImZjbW92YiIsCiAgImZjbW92ZSIsCiAgImZj bW92YmUiLAogICJmY21vdnUiLAogICJmY21vdm5iIiwKICAiZmNtb3ZuZSIsCiAgImZjbW92bmJl IiwKICAiZmNtb3ZudSIsCiAgImZ1Y29taSIsCiAgImZjb20iLAogICJmY29tMiIsCiAgImZjb21w MyIsCiAgImZjb21pIiwKICAiZnVjb21pcCIsCiAgImZjb21pcCIsCiAgImZjb21wIiwKICAiZmNv bXA1IiwKICAiZmNvbXBwIiwKICAiZmNvcyIsCiAgImZkZWNzdHAiLAogICJmZGl2IiwKICAiZmRp dnAiLAogICJmZGl2ciIsCiAgImZkaXZycCIsCiAgImZlbW1zIiwKICAiZmZyZWUiLAogICJmZnJl ZXAiLAogICJmaWNvbSIsCiAgImZpY29tcCIsCiAgImZpbGQiLAogICJmbmNzdHAiLAogICJmbmlu aXQiLAogICJmaWFkZCIsCiAgImZpZGl2ciIsCiAgImZpZGl2IiwKICAiZmlzdWIiLAogICJmaXN1 YnIiLAogICJmaXN0IiwKICAiZmlzdHAiLAogICJmaXN0dHAiLAogICJmbGQiLAogICJmbGQxIiwK ICAiZmxkbDJ0IiwKICAiZmxkbDJlIiwKICAiZmxkbHBpIiwKICAiZmxkbGcyIiwKICAiZmxkbG4y IiwKICAiZmxkeiIsCiAgImZsZGN3IiwKICAiZmxkZW52IiwKICAiZm11bCIsCiAgImZtdWxwIiwK ICAiZmltdWwiLAogICJmbm9wIiwKICAiZnBhdGFuIiwKICAiZnByZW0iLAogICJmcHJlbTEiLAog ICJmcHRhbiIsCiAgImZybmRpbnQiLAogICJmcnN0b3IiLAogICJmbnNhdmUiLAogICJmc2NhbGUi LAogICJmc2luIiwKICAiZnNpbmNvcyIsCiAgImZzcXJ0IiwKICAiZnN0cCIsCiAgImZzdHAxIiwK ICAiZnN0cDgiLAogICJmc3RwOSIsCiAgImZzdCIsCiAgImZuc3RjdyIsCiAgImZuc3RlbnYiLAog ICJmbnN0c3ciLAogICJmc3ViIiwKICAiZnN1YnAiLAogICJmc3ViciIsCiAgImZzdWJycCIsCiAg ImZ0c3QiLAogICJmdWNvbSIsCiAgImZ1Y29tcCIsCiAgImZ1Y29tcHAiLAogICJmeGFtIiwKICAi ZnhjaCIsCiAgImZ4Y2g0IiwKICAiZnhjaDciLAogICJmeHJzdG9yIiwKICAiZnhzYXZlIiwKICAi ZnB4dHJhY3QiLAogICJmeWwyeCIsCiAgImZ5bDJ4cDEiLAogICJoYWRkcGQiLAogICJoYWRkcHMi LAogICJobHQiLAogICJoc3VicGQiLAogICJoc3VicHMiLAogICJpZGl2IiwKICAiaW4iLAogICJp bXVsIiwKICAiaW5jIiwKICAiaW5zYiIsCiAgImluc3ciLAogICJpbnNkIiwKICAiaW50MSIsCiAg ImludDMiLAogICJpbnQiLAogICJpbnRvIiwKICAiaW52ZCIsCiAgImludmxwZyIsCiAgImludmxw Z2EiLAogICJpcmV0dyIsCiAgImlyZXRkIiwKICAiaXJldHEiLAogICJqbyIsCiAgImpubyIsCiAg ImpiIiwKICAiamFlIiwKICAianoiLAogICJqbnoiLAogICJqYmUiLAogICJqYSIsCiAgImpzIiwK ICAiam5zIiwKICAianAiLAogICJqbnAiLAogICJqbCIsCiAgImpnZSIsCiAgImpsZSIsCiAgImpn IiwKICAiamN4eiIsCiAgImplY3h6IiwKICAianJjeHoiLAogICJqbXAiLAogICJsYWhmIiwKICAi bGFyIiwKICAibGRkcXUiLAogICJsZG14Y3NyIiwKICAibGRzIiwKICAibGVhIiwKICAibGVzIiwK ICAibGZzIiwKICAibGdzIiwKICAibGlkdCIsCiAgImxzcyIsCiAgImxlYXZlIiwKICAibGZlbmNl IiwKICAibGdkdCIsCiAgImxsZHQiLAogICJsbXN3IiwKICAibG9jayIsCiAgImxvZHNiIiwKICAi bG9kc3ciLAogICJsb2RzZCIsCiAgImxvZHNxIiwKICAibG9vcG56IiwKICAibG9vcGUiLAogICJs b29wIiwKICAibHNsIiwKICAibHRyIiwKICAibWFza21vdnEiLAogICJtYXhwZCIsCiAgIm1heHBz IiwKICAibWF4c2QiLAogICJtYXhzcyIsCiAgIm1mZW5jZSIsCiAgIm1pbnBkIiwKICAibWlucHMi LAogICJtaW5zZCIsCiAgIm1pbnNzIiwKICAibW9uaXRvciIsCiAgIm1vdiIsCiAgIm1vdmFwZCIs CiAgIm1vdmFwcyIsCiAgIm1vdmQiLAogICJtb3ZkZHVwIiwKICAibW92ZHFhIiwKICAibW92ZHF1 IiwKICAibW92ZHEycSIsCiAgIm1vdmhwZCIsCiAgIm1vdmhwcyIsCiAgIm1vdmxocHMiLAogICJt b3ZscGQiLAogICJtb3ZscHMiLAogICJtb3ZobHBzIiwKICAibW92bXNrcGQiLAogICJtb3Ztc2tw cyIsCiAgIm1vdm50ZHEiLAogICJtb3ZudGkiLAogICJtb3ZudHBkIiwKICAibW92bnRwcyIsCiAg Im1vdm50cSIsCiAgIm1vdnEiLAogICJtb3ZxYSIsCiAgIm1vdnEyZHEiLAogICJtb3ZzYiIsCiAg Im1vdnN3IiwKICAibW92c2QiLAogICJtb3ZzcSIsCiAgIm1vdnNsZHVwIiwKICAibW92c2hkdXAi LAogICJtb3ZzcyIsCiAgIm1vdnN4IiwKICAibW92dXBkIiwKICAibW92dXBzIiwKICAibW92engi LAogICJtdWwiLAogICJtdWxwZCIsCiAgIm11bHBzIiwKICAibXVsc2QiLAogICJtdWxzcyIsCiAg Im13YWl0IiwKICAibmVnIiwKICAibm9wIiwKICAibm90IiwKICAib3IiLAogICJvcnBkIiwKICAi b3JwcyIsCiAgIm91dCIsCiAgIm91dHNiIiwKICAib3V0c3ciLAogICJvdXRzZCIsCiAgIm91dHNx IiwKICAicGFja3Nzd2IiLAogICJwYWNrc3NkdyIsCiAgInBhY2t1c3diIiwKICAicGFkZGIiLAog ICJwYWRkdyIsCiAgInBhZGRxIiwKICAicGFkZHNiIiwKICAicGFkZHN3IiwKICAicGFkZHVzYiIs CiAgInBhZGR1c3ciLAogICJwYW5kIiwKICAicGFuZG4iLAogICJwYXVzZSIsCiAgInBhdmdiIiwK ICAicGF2Z3ciLAogICJwY21wZXFiIiwKICAicGNtcGVxdyIsCiAgInBjbXBlcWQiLAogICJwY21w Z3RiIiwKICAicGNtcGd0dyIsCiAgInBjbXBndGQiLAogICJwZXh0cnciLAogICJwaW5zcnciLAog ICJwbWFkZHdkIiwKICAicG1heHN3IiwKICAicG1heHViIiwKICAicG1pbnN3IiwKICAicG1pbnVi IiwKICAicG1vdm1za2IiLAogICJwbXVsaHV3IiwKICAicG11bGh3IiwKICAicG11bGx3IiwKICAi cG11bHVkcSIsCiAgInBvcCIsCiAgInBvcGEiLAogICJwb3BhZCIsCiAgInBvcGZ3IiwKICAicG9w ZmQiLAogICJwb3BmcSIsCiAgInBvciIsCiAgInByZWZldGNoIiwKICAicHJlZmV0Y2hudGEiLAog ICJwcmVmZXRjaHQwIiwKICAicHJlZmV0Y2h0MSIsCiAgInByZWZldGNodDIiLAogICJwc2FkYnci LAogICJwc2h1ZmQiLAogICJwc2h1Zmh3IiwKICAicHNodWZsdyIsCiAgInBzaHVmdyIsCiAgInBz bGxkcSIsCiAgInBzbGx3IiwKICAicHNsbGQiLAogICJwc2xscSIsCiAgInBzcmF3IiwKICAicHNy YWQiLAogICJwc3JsdyIsCiAgInBzcmxkIiwKICAicHNybHEiLAogICJwc3JsZHEiLAogICJwc3Vi YiIsCiAgInBzdWJ3IiwKICAicHN1YmQiLAogICJwc3VicSIsCiAgInBzdWJzYiIsCiAgInBzdWJz dyIsCiAgInBzdWJ1c2IiLAogICJwc3VidXN3IiwKICAicHVucGNraGJ3IiwKICAicHVucGNraHdk IiwKICAicHVucGNraGRxIiwKICAicHVucGNraHFkcSIsCiAgInB1bnBja2xidyIsCiAgInB1bnBj a2x3ZCIsCiAgInB1bnBja2xkcSIsCiAgInB1bnBja2xxZHEiLAogICJwaTJmdyIsCiAgInBpMmZk IiwKICAicGYyaXciLAogICJwZjJpZCIsCiAgInBmbmFjYyIsCiAgInBmcG5hY2MiLAogICJwZmNt cGdlIiwKICAicGZtaW4iLAogICJwZnJjcCIsCiAgInBmcnNxcnQiLAogICJwZnN1YiIsCiAgInBm YWRkIiwKICAicGZjbXBndCIsCiAgInBmbWF4IiwKICAicGZyY3BpdDEiLAogICJwZnJzcGl0MSIs CiAgInBmc3ViciIsCiAgInBmYWNjIiwKICAicGZjbXBlcSIsCiAgInBmbXVsIiwKICAicGZyY3Bp dDIiLAogICJwbXVsaHJ3IiwKICAicHN3YXBkIiwKICAicGF2Z3VzYiIsCiAgInB1c2giLAogICJw dXNoYSIsCiAgInB1c2hhZCIsCiAgInB1c2hmdyIsCiAgInB1c2hmZCIsCiAgInB1c2hmcSIsCiAg InB4b3IiLAogICJyY2wiLAogICJyY3IiLAogICJyb2wiLAogICJyb3IiLAogICJyY3BwcyIsCiAg InJjcHNzIiwKICAicmRtc3IiLAogICJyZHBtYyIsCiAgInJkdHNjIiwKICAicmR0c2NwIiwKICAi cmVwbmUiLAogICJyZXAiLAogICJyZXQiLAogICJyZXRmIiwKICAicnNtIiwKICAicnNxcnRwcyIs CiAgInJzcXJ0c3MiLAogICJzYWhmIiwKICAic2FsIiwKICAic2FsYyIsCiAgInNhciIsCiAgInNo bCIsCiAgInNociIsCiAgInNiYiIsCiAgInNjYXNiIiwKICAic2Nhc3ciLAogICJzY2FzZCIsCiAg InNjYXNxIiwKICAic2V0byIsCiAgInNldG5vIiwKICAic2V0YiIsCiAgInNldG5iIiwKICAic2V0 eiIsCiAgInNldG56IiwKICAic2V0YmUiLAogICJzZXRhIiwKICAic2V0cyIsCiAgInNldG5zIiwK ICAic2V0cCIsCiAgInNldG5wIiwKICAic2V0bCIsCiAgInNldGdlIiwKICAic2V0bGUiLAogICJz ZXRnIiwKICAic2ZlbmNlIiwKICAic2dkdCIsCiAgInNobGQiLAogICJzaHJkIiwKICAic2h1ZnBk IiwKICAic2h1ZnBzIiwKICAic2lkdCIsCiAgInNsZHQiLAogICJzbXN3IiwKICAic3FydHBzIiwK ICAic3FydHBkIiwKICAic3FydHNkIiwKICAic3FydHNzIiwKICAic3RjIiwKICAic3RkIiwKICAi c3RnaSIsCiAgInN0aSIsCiAgInNraW5pdCIsCiAgInN0bXhjc3IiLAogICJzdG9zYiIsCiAgInN0 b3N3IiwKICAic3Rvc2QiLAogICJzdG9zcSIsCiAgInN0ciIsCiAgInN1YiIsCiAgInN1YnBkIiwK ICAic3VicHMiLAogICJzdWJzZCIsCiAgInN1YnNzIiwKICAic3dhcGdzIiwKICAic3lzY2FsbCIs CiAgInN5c2VudGVyIiwKICAic3lzZXhpdCIsCiAgInN5c3JldCIsCiAgInRlc3QiLAogICJ1Y29t aXNkIiwKICAidWNvbWlzcyIsCiAgInVkMiIsCiAgInVucGNraHBkIiwKICAidW5wY2tocHMiLAog ICJ1bnBja2xwcyIsCiAgInVucGNrbHBkIiwKICAidmVyciIsCiAgInZlcnciLAogICJ2bWNhbGwi LAogICJ2bWNsZWFyIiwKICAidm14b24iLAogICJ2bXB0cmxkIiwKICAidm1wdHJzdCIsCiAgInZt cmVzdW1lIiwKICAidm14b2ZmIiwKICAidm1ydW4iLAogICJ2bW1jYWxsIiwKICAidm1sb2FkIiwK ICAidm1zYXZlIiwKICAid2FpdCIsCiAgIndiaW52ZCIsCiAgIndybXNyIiwKICAieGFkZCIsCiAg InhjaGciLAogICJ4bGF0YiIsCiAgInhvciIsCiAgInhvcnBkIiwKICAieG9ycHMiLAogICJkYiIs CiAgImludmFsaWQiLAp9OwoKCgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZb MjU2XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIElUQUJfXzBGX19PUF8wMF9fUkVHIH0sCiAgLyogMDEgKi8gIHsgVURfSWdycF9y ZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFfX1JFRyB9 LAogIC8qIDAyICovICB7IFVEX0lsYXIsICAgICAgICAgT19HdiwgICAgT19FdywgICAgT19OT05F LCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8g IHsgVURfSWxzbCwgICAgICAgICBPX0d2LCAgICBPX0V3LCAgICBPX05PTkUsICBQX2Fzb3xQX29z b3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNCAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA1ICovICB7 IFVEX0lzeXNjYWxsLCAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMDYgKi8gIHsgVURfSWNsdHMsICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9Jc3lzcmV0LCAgICAgIE9fTk9ORSwgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA4ICovICB7IFVEX0lpbnZkLCAgICAgICAgT19OT05F LCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDkgKi8gIHsgVURfSXdiaW52ZCwg ICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwQSAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDBCICovICB7IFVEX0l1ZDIsICAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9u b25lIH0sCiAgLyogMEMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAwRCAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIElUQUJfXzBGX19PUF8wRF9fUkVHIH0sCiAgLyogMEUgKi8gIHsg VURfSWZlbW1zLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAwRiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDEwICovICB7IFVEX0ltb3Z1cHMsICAgICAgT19WLCAgICAgT19XLCAgICAg T19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAxMSAqLyAgeyBVRF9J bW92dXBzLCAgICAgIE9fVywgICAgIE9fViwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCiAgLyogMTIgKi8gIHsgVURfSW1vdmxwcywgICAgICBPX1YsICAgICBPX1cs ICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDEzICovICB7 IFVEX0ltb3ZscHMsICAgICAgT19NLCAgICAgT19WLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAxNCAqLyAgeyBVRF9JdW5wY2tscHMsICAgIE9fViwgICAg IE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMTUg Ki8gIHsgVURfSXVucGNraHBzLCAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDE2ICovICB7IFVEX0ltb3ZocHMsICAgICAgT19W LCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiAxNyAqLyAgeyBVRF9JbW92aHBzLCAgICAgIE9fTSwgICAgIE9fViwgICAgIE9fTk9ORSwgIFBf YXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMTggKi8gIHsgVURfSWdycF9yZWcsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMThfX1JFRyB9LAogIC8q IDE5ICovICB7IFVEX0lub3AsICAgICAgICAgT19NLCAgICAgT19OT05FLCAgT19OT05FLCAgUF9h c298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAxQSAqLyAgeyBVRF9Jbm9wLCAgICAgICAg IE9fTSwgICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogMUIgKi8gIHsgVURfSW5vcCwgICAgICAgICBPX00sICAgICBPX05PTkUsICBPX05PTkUs ICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDFDICovICB7IFVEX0lub3AsICAg ICAgICAgT19NLCAgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3Jl eGIgfSwKICAvKiAxRCAqLyAgeyBVRF9Jbm9wLCAgICAgICAgIE9fTSwgICAgIE9fTk9ORSwgIE9f Tk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMUUgKi8gIHsgVURfSW5v cCwgICAgICAgICBPX00sICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4 fFBfcmV4YiB9LAogIC8qIDFGICovICB7IFVEX0lub3AsICAgICAgICAgT19NLCAgICAgT19OT05F LCAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAyMCAqLyAgeyBV RF9JbW92LCAgICAgICAgIE9fUiwgICAgIE9fQywgICAgIE9fTk9ORSwgIFBfcmV4ciB9LAogIC8q IDIxICovICB7IFVEX0ltb3YsICAgICAgICAgT19SLCAgICAgT19ELCAgICAgT19OT05FLCAgUF9y ZXhyIH0sCiAgLyogMjIgKi8gIHsgVURfSW1vdiwgICAgICAgICBPX0MsICAgICBPX1IsICAgICBP X05PTkUsICBQX3JleHIgfSwKICAvKiAyMyAqLyAgeyBVRF9JbW92LCAgICAgICAgIE9fRCwgICAg IE9fUiwgICAgIE9fTk9ORSwgIFBfcmV4ciB9LAogIC8qIDI0ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjUgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAy NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDI3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMjggKi8gIHsgVURfSW1vdmFwcywgICAgICBPX1YsICAgICBP X1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDI5ICov ICB7IFVEX0ltb3ZhcHMsICAgICAgT19XLCAgICAgT19WLCAgICAgT19OT05FLCAgUF9hc298UF9y ZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAyQSAqLyAgeyBVRF9JY3Z0cGkycHMsICAgIE9fViwg ICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyog MkIgKi8gIHsgVURfSW1vdm50cHMsICAgICBPX00sICAgICBPX1YsICAgICBPX05PTkUsICBQX2Fz b3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDJDICovICB7IFVEX0ljdnR0cHMycGksICAg T19QLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiAyRCAqLyAgeyBVRF9JY3Z0cHMycGksICAgIE9fUCwgICAgIE9fVywgICAgIE9fTk9ORSwg IFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMkUgKi8gIHsgVURfSXVjb21pc3Ms ICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDJGICovICB7IFVEX0ljb21pc3MsICAgICAgT19WLCAgICAgT19XLCAgICAgT19O T05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAzMCAqLyAgeyBVRF9Jd3Jt c3IsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDMxICov ICB7IFVEX0lyZHRzYywgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogMzIgKi8gIHsgVURfSXJkbXNyLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiAzMyAqLyAgeyBVRF9JcmRwbWMsICAgICAgIE9fTk9ORSwgIE9fTk9O RSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDM0ICovICB7IFVEX0lzeXNlbnRlciwgICAgT19O T05FLCAgT19OT05FLCAgT19OT05FLCAgUF9pbnY2NHxQX25vbmUgfSwKICAvKiAzNSAqLyAgeyBV RF9Jc3lzZXhpdCwgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDM2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMzcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAzOCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM5ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0EgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAz QiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDNDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogM0QgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzRSAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNGICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNDAg Ki8gIHsgVURfSWNtb3ZvLCAgICAgICBPX0d2LCAgICBPX0V2LCAgICBPX05PTkUsICBQX2Fzb3xQ X29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA0MSAqLyAgeyBVRF9JY21v dm5vLCAgICAgIE9fR3YsICAgIE9fRXYsICAgIE9fTk9ORSwgIFBfYXNvfFBfb3NvfFBfcmV4d3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDQyICovICB7IFVEX0ljbW92YiwgICAgICAgT19H diwgICAgT19FdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8 UF9yZXhiIH0sCiAgLyogNDMgKi8gIHsgVURfSWNtb3ZhZSwgICAgICBPX0d2LCAgICBPX0V2LCAg ICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiA0NCAqLyAgeyBVRF9JY21vdnosICAgICAgIE9fR3YsICAgIE9fRXYsICAgIE9fTk9ORSwgIFBf YXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDQ1ICovICB7IFVE X0ljbW92bnosICAgICAgT19HdiwgICAgT19FdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9y ZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNDYgKi8gIHsgVURfSWNtb3ZiZSwgICAg ICBPX0d2LCAgICBPX0V2LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiA0NyAqLyAgeyBVRF9JY21vdmEsICAgICAgIE9fR3YsICAgIE9f RXYsICAgIE9fTk9ORSwgIFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIDQ4ICovICB7IFVEX0ljbW92cywgICAgICAgT19HdiwgICAgT19FdiwgICAgT19OT05F LCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNDkgKi8g IHsgVURfSWNtb3ZucywgICAgICBPX0d2LCAgICBPX0V2LCAgICBPX05PTkUsICBQX2Fzb3xQX29z b3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA0QSAqLyAgeyBVRF9JY21vdnAs ICAgICAgIE9fR3YsICAgIE9fRXYsICAgIE9fTk9ORSwgIFBfYXNvfFBfb3NvfFBfcmV4d3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDRCICovICB7IFVEX0ljbW92bnAsICAgICAgT19Hdiwg ICAgT19FdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogNEMgKi8gIHsgVURfSWNtb3ZsLCAgICAgICBPX0d2LCAgICBPX0V2LCAgICBP X05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA0 RCAqLyAgeyBVRF9JY21vdmdlLCAgICAgIE9fR3YsICAgIE9fRXYsICAgIE9fTk9ORSwgIFBfYXNv fFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDRFICovICB7IFVEX0lj bW92bGUsICAgICAgT19HdiwgICAgT19FdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3 fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNEYgKi8gIHsgVURfSWNtb3ZnLCAgICAgICBP X0d2LCAgICBPX0V2LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4 eHxQX3JleGIgfSwKICAvKiA1MCAqLyAgeyBVRF9JbW92bXNrcHMsICAgIE9fR2QsICAgIE9fVlIs ICAgIE9fTk9ORSwgIFBfb3NvfFBfcmV4cnxQX3JleGIgfSwKICAvKiA1MSAqLyAgeyBVRF9Jc3Fy dHBzLCAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8 UF9yZXhiIH0sCiAgLyogNTIgKi8gIHsgVURfSXJzcXJ0cHMsICAgICBPX1YsICAgICBPX1csICAg ICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDUzICovICB7IFVE X0lyY3BwcywgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiA1NCAqLyAgeyBVRF9JYW5kcHMsICAgICAgIE9fViwgICAgIE9f VywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNTUgKi8g IHsgVURfSWFuZG5wcywgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDU2ICovICB7IFVEX0lvcnBzLCAgICAgICAgT19WLCAg ICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA1 NyAqLyAgeyBVRF9JeG9ycHMsICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNv fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNTggKi8gIHsgVURfSWFkZHBzLCAgICAgICBP X1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAog IC8qIDU5ICovICB7IFVEX0ltdWxwcywgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAg UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA1QSAqLyAgeyBVRF9JY3Z0cHMycGQs ICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCiAgLyogNUIgKi8gIHsgVURfSWN2dGRxMnBzLCAgICBPX1YsICAgICBPX1csICAgICBPX05P TkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDVDICovICB7IFVEX0lzdWJw cywgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKICAvKiA1RCAqLyAgeyBVRF9JbWlucHMsICAgICAgIE9fViwgICAgIE9fVywgICAg IE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNUUgKi8gIHsgVURf SWRpdnBzLCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDVGICovICB7IFVEX0ltYXhwcywgICAgICAgT19WLCAgICAgT19X LCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA2MCAqLyAg eyBVRF9JcHVucGNrbGJ3LCAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNjEgKi8gIHsgVURfSXB1bnBja2x3ZCwgICBPX1AsICAg ICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDYy ICovICB7IFVEX0lwdW5wY2tsZHEsICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA2MyAqLyAgeyBVRF9JcGFja3Nzd2IsICAgIE9f UCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogNjQgKi8gIHsgVURfSXBjbXBndGIsICAgICBPX1AsICAgICBPX1EsICAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDY1ICovICB7IFVEX0lwY21wZ3R3LCAg ICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiA2NiAqLyAgeyBVRF9JcGNtcGd0ZCwgICAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9O RSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNjcgKi8gIHsgVURfSXBhY2t1 c3diLCAgICBPX1AsICAgICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIDY4ICovICB7IFVEX0lwdW5wY2toYncsICAgT19QLCAgICAgT19RLCAgICAg T19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA2OSAqLyAgeyBVRF9J cHVucGNraHdkLCAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCiAgLyogNkEgKi8gIHsgVURfSXB1bnBja2hkcSwgICBPX1AsICAgICBPX1Es ICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDZCICovICB7 IFVEX0lwYWNrc3NkdywgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiA2QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDZEICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNkUgKi8gIHsgVURf SW1vdmQsICAgICAgICBPX1AsICAgICBPX0V4LCAgICBPX05PTkUsICBQX2MyfFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNkYgKi8gIHsgVURfSW1vdnEsICAgICAgICBPX1AsICAg ICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDcw ICovICB7IFVEX0lwc2h1ZncsICAgICAgT19QLCAgICAgT19RLCAgICAgT19JYiwgICAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA3MSAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzBGX19PUF83MV9fUkVHIH0sCiAgLyogNzIg Ki8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18w Rl9fT1BfNzJfX1JFRyB9LAogIC8qIDczICovICB7IFVEX0lncnBfcmVnLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMEZfX09QXzczX19SRUcgfSwKICAvKiA3NCAqLyAgeyBV RF9JcGNtcGVxYiwgICAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQ X3JleHh8UF9yZXhiIH0sCiAgLyogNzUgKi8gIHsgVURfSXBjbXBlcXcsICAgICBPX1AsICAgICBP X1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDc2ICov ICB7IFVEX0lwY21wZXFkLCAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298UF9y ZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA3NyAqLyAgeyBVRF9JZW1tcywgICAgICAgIE9fTk9O RSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDc4ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNzkgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA3QSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDdCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogN0MgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3RCAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDdFICovICB7IFVE X0ltb3ZkLCAgICAgICAgT19FeCwgICAgT19QLCAgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDdGICovICB7IFVEX0ltb3ZxLCAgICAgICAgT19RLCAg ICAgT19QLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA4 MCAqLyAgeyBVRF9Jam8sICAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8 UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiA4MSAqLyAgeyBVRF9Jam5vLCAgICAgICAgIE9f SnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAv KiA4MiAqLyAgeyBVRF9JamIsICAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBf YzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiA4MyAqLyAgeyBVRF9JamFlLCAgICAgICAg IE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwK ICAvKiA4NCAqLyAgeyBVRF9JanosICAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiA4NSAqLyAgeyBVRF9Jam56LCAgICAg ICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28g fSwKICAvKiA4NiAqLyAgeyBVRF9JamJlLCAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiA4NyAqLyAgeyBVRF9JamEsICAg ICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9v c28gfSwKICAvKiA4OCAqLyAgeyBVRF9JanMsICAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9f Tk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiA4OSAqLyAgeyBVRF9Jam5z LCAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18 UF9vc28gfSwKICAvKiA4QSAqLyAgeyBVRF9JanAsICAgICAgICAgIE9fSnosICAgIE9fTk9ORSwg IE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiA4QiAqLyAgeyBVRF9J am5wLCAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2Rl cE18UF9vc28gfSwKICAvKiA4QyAqLyAgeyBVRF9JamwsICAgICAgICAgIE9fSnosICAgIE9fTk9O RSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiA4RCAqLyAgeyBV RF9JamdlLCAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQ X2RlcE18UF9vc28gfSwKICAvKiA4RSAqLyAgeyBVRF9JamxlLCAgICAgICAgIE9fSnosICAgIE9f Tk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiA4RiAqLyAg eyBVRF9JamcsICAgICAgICAgIE9fSnosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9kZWY2 NHxQX2RlcE18UF9vc28gfSwKICAvKiA5MCAqLyAgeyBVRF9Jc2V0bywgICAgICAgIE9fRWIsICAg IE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogOTEg Ki8gIHsgVURfSXNldG5vLCAgICAgICBPX0ViLCAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDkyICovICB7IFVEX0lzZXRiLCAgICAgICAgT19F YiwgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiA5MyAqLyAgeyBVRF9Jc2V0bmIsICAgICAgIE9fRWIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBf YXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogOTQgKi8gIHsgVURfSXNldHosICAgICAg ICBPX0ViLCAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIDk1ICovICB7IFVEX0lzZXRueiwgICAgICAgT19FYiwgICAgT19OT05FLCAgT19OT05F LCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA5NiAqLyAgeyBVRF9Jc2V0YmUs ICAgICAgIE9fRWIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogOTcgKi8gIHsgVURfSXNldGEsICAgICAgICBPX0ViLCAgICBPX05PTkUsICBP X05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDk4ICovICB7IFVEX0lz ZXRzLCAgICAgICAgT19FYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4 eHxQX3JleGIgfSwKICAvKiA5OSAqLyAgeyBVRF9Jc2V0bnMsICAgICAgIE9fRWIsICAgIE9fTk9O RSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogOUEgKi8gIHsg VURfSXNldHAsICAgICAgICBPX0ViLCAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8 UF9yZXh4fFBfcmV4YiB9LAogIC8qIDlCICovICB7IFVEX0lzZXRucCwgICAgICAgT19FYiwgICAg T19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA5QyAq LyAgeyBVRF9Jc2V0bCwgICAgICAgIE9fRWIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogOUQgKi8gIHsgVURfSXNldGdlLCAgICAgICBPX0Vi LCAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8q IDlFICovICB7IFVEX0lzZXRsZSwgICAgICAgT19FYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9h c298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA5RiAqLyAgeyBVRF9Jc2V0ZywgICAgICAg IE9fRWIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogQTAgKi8gIHsgVURfSXB1c2gsICAgICAgICBPX0ZTLCAgICBPX05PTkUsICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiBBMSAqLyAgeyBVRF9JcG9wLCAgICAgICAgIE9fRlMsICAgIE9fTk9O RSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEEyICovICB7IFVEX0ljcHVpZCwgICAgICAgT19O T05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogQTMgKi8gIHsgVURfSWJ0LCAg ICAgICAgICBPX0V2LCAgICBPX0d2LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9y ZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBBNCAqLyAgeyBVRF9Jc2hsZCwgICAgICAgIE9fRXYs ICAgIE9fR3YsICAgIE9fSWIsICAgIFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIEE1ICovICB7IFVEX0lzaGxkLCAgICAgICAgT19FdiwgICAgT19HdiwgICAg T19DTCwgICAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyog QTYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiBBNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIEE4ICovICB7IFVEX0lwdXNoLCAgICAgICAgT19HUywgICAg T19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogQTkgKi8gIHsgVURfSXBvcCwgICAgICAg ICBPX0dTLCAgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiBBQSAqLyAgeyBVRF9J cnNtLCAgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEFC ICovICB7IFVEX0lidHMsICAgICAgICAgT19FdiwgICAgT19HdiwgICAgT19OT05FLCAgUF9hc298 UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQUMgKi8gIHsgVURfSXNo cmQsICAgICAgICBPX0V2LCAgICBPX0d2LCAgICBPX0liLCAgICBQX2Fzb3xQX29zb3xQX3JleHd8 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBBRCAqLyAgeyBVRF9Jc2hyZCwgICAgICAgIE9f RXYsICAgIE9fR3YsICAgIE9fQ0wsICAgIFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4 fFBfcmV4YiB9LAogIC8qIEFFICovICB7IFVEX0lncnBfcmVnLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgSVRBQl9fMEZfX09QX0FFX19SRUcgfSwKICAvKiBBRiAqLyAgeyBVRF9JaW11 bCwgICAgICAgIE9fR3YsICAgIE9fRXYsICAgIE9fTk9ORSwgIFBfYXNvfFBfb3NvfFBfcmV4d3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEIwICovICB7IFVEX0ljbXB4Y2hnLCAgICAgT19F YiwgICAgT19HYiwgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiBCMSAqLyAgeyBVRF9JY21weGNoZywgICAgIE9fRXYsICAgIE9fR3YsICAgIE9fTk9ORSwgIFBf YXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEIyICovICB7IFVE X0lsc3MsICAgICAgICAgT19HeiwgICAgT19NLCAgICAgT19OT05FLCAgUF9hc298UF9vc298UF9y ZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQjMgKi8gIHsgVURfSWJ0ciwgICAgICAg ICBPX0V2LCAgICBPX0d2LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiBCNCAqLyAgeyBVRF9JbGZzLCAgICAgICAgIE9fR3osICAgIE9f TSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIEI1ICovICB7IFVEX0lsZ3MsICAgICAgICAgT19HeiwgICAgT19NLCAgICAgT19OT05F LCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQjYgKi8g IHsgVURfSW1vdnp4LCAgICAgICBPX0d2LCAgICBPX0ViLCAgICBPX05PTkUsICBQX2MyfFBfYXNv fFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEI3ICovICB7IFVEX0lt b3Z6eCwgICAgICAgT19HdiwgICAgT19FdywgICAgT19OT05FLCAgUF9jMnxQX2Fzb3xQX29zb3xQ X3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBCOCAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEI5ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog QkEgKi8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFC X18wRl9fT1BfQkFfX1JFRyB9LAogIC8qIEJCICovICB7IFVEX0lidGMsICAgICAgICAgT19Fdiwg ICAgT19HdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogQkMgKi8gIHsgVURfSWJzZiwgICAgICAgICBPX0d2LCAgICBPX0V2LCAgICBP X05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBC RCAqLyAgeyBVRF9JYnNyLCAgICAgICAgIE9fR3YsICAgIE9fRXYsICAgIE9fTk9ORSwgIFBfYXNv fFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEJFICovICB7IFVEX0lt b3ZzeCwgICAgICAgT19HdiwgICAgT19FYiwgICAgT19OT05FLCAgUF9jMnxQX2Fzb3xQX29zb3xQ X3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBCRiAqLyAgeyBVRF9JbW92c3gsICAg ICAgIE9fR3YsICAgIE9fRXcsICAgIE9fTk9ORSwgIFBfYzJ8UF9hc298UF9vc298UF9yZXh3fFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQzAgKi8gIHsgVURfSXhhZGQsICAgICAgICBPX0Vi LCAgICBPX0diLCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIEMxICovICB7IFVEX0l4YWRkLCAgICAgICAgT19FdiwgICAgT19HdiwgICAgT19OT05F LCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQzIgKi8g IHsgVURfSWNtcHBzLCAgICAgICBPX1YsICAgICBPX1csICAgICBPX0liLCAgICBQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEMzICovICB7IFVEX0ltb3ZudGksICAgICAgT19NLCAg ICAgT19HdncsICAgT19OT05FLCAgUF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogQzQgKi8gIHsgVURfSXBpbnNydywgICAgICBPX1AsICAgICBPX0V3LCAgICBPX0liLCAg ICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBDNSAqLyAg eyBVRF9JcGV4dHJ3LCAgICAgIE9fR2QsICAgIE9fUFIsICAgIE9fSWIsICAgIFBfYXNvfFBfb3Nv fFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEM2ICovICB7IFVEX0lzaHVmcHMs ICAgICAgT19WLCAgICAgT19XLCAgICAgT19JYiwgICAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3Jl eGIgfSwKICAvKiBDNyAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIElUQUJfXzBGX19PUF9DN19fUkVHIH0sCiAgLyogQzggKi8gIHsgVURfSWJzd2FwLCAg ICAgICBPX3JBWHI4LCBPX05PTkUsICBPX05PTkUsICBQX29zb3xQX3JleHd8UF9yZXhiIH0sCiAg LyogQzkgKi8gIHsgVURfSWJzd2FwLCAgICAgICBPX3JDWHI5LCBPX05PTkUsICBPX05PTkUsICBQ X29zb3xQX3JleHd8UF9yZXhiIH0sCiAgLyogQ0EgKi8gIHsgVURfSWJzd2FwLCAgICAgICBPX3JE WHIxMCwgT19OT05FLCAgT19OT05FLCBQX29zb3xQX3JleHd8UF9yZXhiIH0sCiAgLyogQ0IgKi8g IHsgVURfSWJzd2FwLCAgICAgICBPX3JCWHIxMSwgT19OT05FLCAgT19OT05FLCBQX29zb3xQX3Jl eHd8UF9yZXhiIH0sCiAgLyogQ0MgKi8gIHsgVURfSWJzd2FwLCAgICAgICBPX3JTUHIxMiwgT19O T05FLCAgT19OT05FLCBQX29zb3xQX3JleHd8UF9yZXhiIH0sCiAgLyogQ0QgKi8gIHsgVURfSWJz d2FwLCAgICAgICBPX3JCUHIxMywgT19OT05FLCAgT19OT05FLCBQX29zb3xQX3JleHd8UF9yZXhi IH0sCiAgLyogQ0UgKi8gIHsgVURfSWJzd2FwLCAgICAgICBPX3JTSXIxNCwgT19OT05FLCAgT19O T05FLCBQX29zb3xQX3JleHd8UF9yZXhiIH0sCiAgLyogQ0YgKi8gIHsgVURfSWJzd2FwLCAgICAg ICBPX3JESXIxNSwgT19OT05FLCAgT19OT05FLCBQX29zb3xQX3JleHd8UF9yZXhiIH0sCiAgLyog RDAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiBEMSAqLyAgeyBVRF9JcHNybHcsICAgICAgIE9fUCwgICAgIE9fUSwgICAgIE9f Tk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRDIgKi8gIHsgVURfSXBz cmxkLCAgICAgICBPX1AsICAgICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4 fFBfcmV4YiB9LAogIC8qIEQzICovICB7IFVEX0lwc3JscSwgICAgICAgT19QLCAgICAgT19RLCAg ICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBENCAqLyAgeyBV RF9JcGFkZHEsICAgICAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQ X3JleHh8UF9yZXhiIH0sCiAgLyogRDUgKi8gIHsgVURfSXBtdWxsdywgICAgICBPX1AsICAgICBP X1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEQ2ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogRDcgKi8gIHsgVURfSXBtb3Ztc2tiLCAgICBPX0dkLCAgICBPX1BSLCAgICBPX05PTkUs ICBQX29zb3xQX3JleHJ8UF9yZXhiIH0sCiAgLyogRDggKi8gIHsgVURfSXBzdWJ1c2IsICAgICBP X1AsICAgICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAog IC8qIEQ5ICovICB7IFVEX0lwc3VidXN3LCAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAg UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBEQSAqLyAgeyBVRF9JcG1pbnViLCAg ICAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCiAgLyogREIgKi8gIHsgVURfSXBhbmQsICAgICAgICBPX1AsICAgICBPX1EsICAgICBPX05P TkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIERDICovICB7IFVEX0lwYWRk dXNiLCAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKICAvKiBERCAqLyAgeyBVRF9JcGFkZHVzdywgICAgIE9fUCwgICAgIE9fUSwgICAg IE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogREUgKi8gIHsgVURf SXBtYXh1YiwgICAgICBPX1AsICAgICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIERGICovICB7IFVEX0lwYW5kbiwgICAgICAgT19QLCAgICAgT19R LCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBFMCAqLyAg eyBVRF9JcGF2Z2IsICAgICAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRTEgKi8gIHsgVURfSXBzcmF3LCAgICAgICBPX1AsICAg ICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEUy ICovICB7IFVEX0lwc3JhZCwgICAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBFMyAqLyAgeyBVRF9JcGF2Z3csICAgICAgIE9f UCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogRTQgKi8gIHsgVURfSXBtdWxodXcsICAgICBPX1AsICAgICBPX1EsICAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEU1ICovICB7IFVEX0lwbXVsaHcsICAg ICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiBFNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIEU3ICovICB7IFVEX0ltb3ZudHEsICAgICAgT19NLCAgICAgT19Q LCAgICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogRTggKi8gIHsgVURfSXBzdWJzYiwgICAgICBP X1AsICAgICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAog IC8qIEU5ICovICB7IFVEX0lwc3Vic3csICAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAg UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBFQSAqLyAgeyBVRF9JcG1pbnN3LCAg ICAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCiAgLyogRUIgKi8gIHsgVURfSXBvciwgICAgICAgICBPX1AsICAgICBPX1EsICAgICBPX05P TkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEVDICovICB7IFVEX0lwYWRk c2IsICAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKICAvKiBFRCAqLyAgeyBVRF9JcGFkZHN3LCAgICAgIE9fUCwgICAgIE9fUSwgICAg IE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRUUgKi8gIHsgVURf SXBtYXhzdywgICAgICBPX1AsICAgICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIEVGICovICB7IFVEX0lweG9yLCAgICAgICAgT19QLCAgICAgT19R LCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBGMCAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIEYxICovICB7IFVEX0lwc2xsdywgICAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAg UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBGMiAqLyAgeyBVRF9JcHNsbGQsICAg ICAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCiAgLyogRjMgKi8gIHsgVURfSXBzbGxxLCAgICAgICBPX1AsICAgICBPX1EsICAgICBPX05P TkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEY0ICovICB7IFVEX0lwbXVs dWRxLCAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKICAvKiBGNSAqLyAgeyBVRF9JcG1hZGR3ZCwgICAgIE9fUCwgICAgIE9fUSwgICAg IE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRjYgKi8gIHsgVURf SXBzYWRidywgICAgICBPX1AsICAgICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIEY3ICovICB7IFVEX0ltYXNrbW92cSwgICAgT19QLCAgICAgT19R LCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBGOCAqLyAg eyBVRF9JcHN1YmIsICAgICAgIE9fUCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRjkgKi8gIHsgVURfSXBzdWJ3LCAgICAgICBPX1AsICAg ICBPX1EsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEZB ICovICB7IFVEX0lwc3ViZCwgICAgICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBGQiAqLyAgeyBVRF9JcHN1YnEsICAgICAgIE9f UCwgICAgIE9fUSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogRkMgKi8gIHsgVURfSXBhZGRiLCAgICAgICBPX1AsICAgICBPX1EsICAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEZEICovICB7IFVEX0lwYWRkdywgICAg ICAgT19QLCAgICAgT19RLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiBGRSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIEZGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkg aXRhYl9fMGZfX29wXzAwX19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSXNsZHQsICAgICAg ICBPX0V2LCAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lzdHIsICAgICAgICAgT19FdiwgICAgT19OT05FLCAg T19OT05FLCAgUF9hc298UF9vc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMiAqLyAg eyBVRF9JbGxkdCwgICAgICAgIE9fRXcsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSWx0ciwgICAgICAgICBPX0V3LCAg ICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA0 ICovICB7IFVEX0l2ZXJyLCAgICAgICAgT19FdywgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNSAqLyAgeyBVRF9JdmVydywgICAgICAgIE9f RXcsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogMDYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJf XzBmX19vcF8wMV9fcmVnWzhdID0gewogIC8qIDAwICovICB7IFVEX0lncnBfbW9kLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMEZfX09QXzAxX19SRUdfX09QXzAwX19NT0Qg fSwKICAvKiAwMSAqLyAgeyBVRF9JZ3JwX21vZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIElUQUJfXzBGX19PUF8wMV9fUkVHX19PUF8wMV9fTU9EIH0sCiAgLyogMDIgKi8gIHsgVURf SWdycF9tb2QsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFf X1JFR19fT1BfMDJfX01PRCB9LAogIC8qIDAzICovICB7IFVEX0lncnBfbW9kLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMEZfX09QXzAxX19SRUdfX09QXzAzX19NT0QgfSwK ICAvKiAwNCAqLyAgeyBVRF9JZ3JwX21vZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IElUQUJfXzBGX19PUF8wMV9fUkVHX19PUF8wNF9fTU9EIH0sCiAgLyogMDUgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNiAq LyAgeyBVRF9JZ3JwX21vZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzBG X19PUF8wMV9fUkVHX19PUF8wNl9fTU9EIH0sCiAgLyogMDcgKi8gIHsgVURfSWdycF9tb2QsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDdf X01PRCB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzBmX19vcF8wMV9f cmVnX19vcF8wMF9fbW9kWzJdID0gewogIC8qIDAwICovICB7IFVEX0lzZ2R0LCAgICAgICAgT19N LCAgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiAwMSAqLyAgeyBVRF9JZ3JwX3JtLCAgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElU QUJfXzBGX19PUF8wMV9fUkVHX19PUF8wMF9fTU9EX19PUF8wMV9fUk0gfSwKfTsKCnN0YXRpYyBz dHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3BfMDBfX21vZF9fb3Bf MDFfX3JtWzhdID0gewogIC8qIDAwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsgVURfSWdycF92ZW5kb3IsICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDBfX01P RF9fT1BfMDFfX1JNX19PUF8wMV9fVkVORE9SIH0sCiAgLyogMDIgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMyAqLyAgeyBV RF9JZ3JwX3ZlbmRvciwgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzBGX19PUF8w MV9fUkVHX19PUF8wMF9fTU9EX19PUF8wMV9fUk1fX09QXzAzX19WRU5ET1IgfSwKICAvKiAwNCAq LyAgeyBVRF9JZ3JwX3ZlbmRvciwgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzBG X19PUF8wMV9fUkVHX19PUF8wMF9fTU9EX19PUF8wMV9fUk1fX09QXzA0X19WRU5ET1IgfSwKICAv KiAwNSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDA2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9l bnRyeSBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3BfMDBfX21vZF9fb3BfMDFfX3JtX19vcF8wMV9f dmVuZG9yWzJdID0gewogIC8qIDAwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsgVURfSXZtY2FsbCwgICAgICBP X05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRf aXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3BfMDBfX21vZF9fb3BfMDFfX3JtX19v cF8wM19fdmVuZG9yWzJdID0gewogIC8qIDAwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsgVURfSXZtcmVzdW1l LCAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKfTsKCnN0YXRpYyBzdHJ1 Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3BfMDBfX21vZF9fb3BfMDFf X3JtX19vcF8wNF9fdmVuZG9yWzJdID0gewogIC8qIDAwICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsgVURfSXZt eG9mZiwgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKfTsKCnN0YXRp YyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3BfMDFfX21vZFsy XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9Jc2lkdCwgICAgICAgIE9fTSwgICAgIE9fTk9ORSwgIE9f Tk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDEgKi8gIHsgVURfSWdy cF9ybSwgICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFfX1JF R19fT1BfMDFfX01PRF9fT1BfMDFfX1JNIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50 cnkgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAxX19tb2RfX29wXzAxX19ybVs4XSA9IHsKICAv KiAwMCAqLyAgeyBVRF9JbW9uaXRvciwgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDAxICovICB7IFVEX0ltd2FpdCwgICAgICAgT19OT05FLCAgT19OT05FLCAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogMDIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMyAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA0ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog MDUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDA3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50 cnkgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAyX19tb2RbMl0gPSB7CiAgLyogMDAgKi8gIHsg VURfSWxnZHQsICAgICAgICBPX00sICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8 UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50 cnkgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAzX19tb2RbMl0gPSB7CiAgLyogMDAgKi8gIHsg VURfSWxpZHQsICAgICAgICBPX00sICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8 UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lncnBfcm0sICAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMEZfX09QXzAxX19SRUdfX09QXzAzX19NT0RfX09QXzAx X19STSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzBmX19vcF8wMV9f cmVnX19vcF8wM19fbW9kX19vcF8wMV9fcm1bOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWdycF92 ZW5kb3IsICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFfX1JFR19f T1BfMDNfX01PRF9fT1BfMDFfX1JNX19PUF8wMF9fVkVORE9SIH0sCiAgLyogMDEgKi8gIHsgVURf SWdycF92ZW5kb3IsICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFf X1JFR19fT1BfMDNfX01PRF9fT1BfMDFfX1JNX19PUF8wMV9fVkVORE9SIH0sCiAgLyogMDIgKi8g IHsgVURfSWdycF92ZW5kb3IsICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9f T1BfMDFfX1JFR19fT1BfMDNfX01PRF9fT1BfMDFfX1JNX19PUF8wMl9fVkVORE9SIH0sCiAgLyog MDMgKi8gIHsgVURfSWdycF92ZW5kb3IsICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFC X18wRl9fT1BfMDFfX1JFR19fT1BfMDNfX01PRF9fT1BfMDFfX1JNX19PUF8wM19fVkVORE9SIH0s CiAgLyogMDQgKi8gIHsgVURfSWdycF92ZW5kb3IsICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDNfX01PRF9fT1BfMDFfX1JNX19PUF8wNF9fVkVO RE9SIH0sCiAgLyogMDUgKi8gIHsgVURfSWdycF92ZW5kb3IsICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDNfX01PRF9fT1BfMDFfX1JNX19PUF8w NV9fVkVORE9SIH0sCiAgLyogMDYgKi8gIHsgVURfSWdycF92ZW5kb3IsICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDNfX01PRF9fT1BfMDFfX1JN X19PUF8wNl9fVkVORE9SIH0sCiAgLyogMDcgKi8gIHsgVURfSWdycF92ZW5kb3IsICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDNfX01PRF9fT1Bf MDFfX1JNX19PUF8wN19fVkVORE9SIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkg aXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAzX19tb2RfX29wXzAxX19ybV9fb3BfMDBfX3ZlbmRv clsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9Jdm1ydW4sICAgICAgIE9fTk9ORSwgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJf ZW50cnkgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAzX19tb2RfX29wXzAxX19ybV9fb3BfMDFf X3ZlbmRvclsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9Jdm1tY2FsbCwgICAgIE9fTk9ORSwgIE9f Tk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVk X2l0YWJfZW50cnkgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAzX19tb2RfX29wXzAxX19ybV9f b3BfMDJfX3ZlbmRvclsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9Jdm1sb2FkLCAgICAgIE9fTk9O RSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3Ry dWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAzX19tb2RfX29wXzAx X19ybV9fb3BfMDNfX3ZlbmRvclsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9Jdm1zYXZlLCAgICAg IE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0 aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAzX19tb2Rf X29wXzAxX19ybV9fb3BfMDRfX3ZlbmRvclsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9Jc3RnaSwg ICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07 CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAz X19tb2RfX29wXzAxX19ybV9fb3BfMDVfX3ZlbmRvclsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9J Y2xnaSwgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAx ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wXzAxX19yZWdf X29wXzAzX19tb2RfX29wXzAxX19ybV9fb3BfMDZfX3ZlbmRvclsyXSA9IHsKICAvKiAwMCAqLyAg eyBVRF9Jc2tpbml0LCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wXzAx X19yZWdfX29wXzAzX19tb2RfX29wXzAxX19ybV9fb3BfMDdfX3ZlbmRvclsyXSA9IHsKICAvKiAw MCAqLyAgeyBVRF9JaW52bHBnYSwgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZf X29wXzAxX19yZWdfX29wXzA0X19tb2RbMl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSXNtc3csICAg ICAgICBPX00sICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZf X29wXzAxX19yZWdfX29wXzA2X19tb2RbMl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWxtc3csICAg ICAgICBPX0V3LCAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZf X29wXzAxX19yZWdfX29wXzA3X19tb2RbMl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWludmxwZywg ICAgICBPX00sICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDAxICovICB7IFVEX0lncnBfcm0sICAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgSVRBQl9fMEZfX09QXzAxX19SRUdfX09QXzA3X19NT0RfX09QXzAxX19STSB9LAp9OwoK c3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzBmX19vcF8wMV9fcmVnX19vcF8wN19f bW9kX19vcF8wMV9fcm1bOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSXN3YXBncywgICAgICBPX05P TkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9JZ3JwX3Zl bmRvciwgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzBGX19PUF8wMV9fUkVHX19P UF8wN19fTU9EX19PUF8wMV9fUk1fX09QXzAxX19WRU5ET1IgfSwKICAvKiAwMiAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAz ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMDQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAwNSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA2ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDcgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKfTsKCnN0YXRp YyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3BfMDdfX21vZF9f b3BfMDFfX3JtX19vcF8wMV9fdmVuZG9yWzJdID0gewogIC8qIDAwICovICB7IFVEX0lyZHRzY3As ICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKfTsK CnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfMGRfX3JlZ1s4XSA9IHsK ICAvKiAwMCAqLyAgeyBVRF9JcHJlZmV0Y2gsICAgIE9fTSwgICAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lw cmVmZXRjaCwgICAgT19NLCAgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXh3fFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDIgKi8gIHsgVURfSXByZWZldGNoLCAgICBPX00sICAg ICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiAwMyAqLyAgeyBVRF9JcHJlZmV0Y2gsICAgIE9fTSwgICAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA0ICovICB7IFVEX0lw cmVmZXRjaCwgICAgT19NLCAgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXh3fFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDUgKi8gIHsgVURfSXByZWZldGNoLCAgICBPX00sICAg ICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiAwNiAqLyAgeyBVRF9JcHJlZmV0Y2gsICAgIE9fTSwgICAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA3ICovICB7IFVEX0lw cmVmZXRjaCwgICAgT19NLCAgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXh3fFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9f MGZfX29wXzE4X19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSXByZWZldGNobnRhLCBPX00s ICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiAwMSAqLyAgeyBVRF9JcHJlZmV0Y2h0MCwgIE9fTSwgICAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVE X0lwcmVmZXRjaHQxLCAgT19NLCAgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXh3fFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSXByZWZldGNodDIsICBPX00s ICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiAwNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDA1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDYgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3RhdGlj IHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzBmX19vcF83MV9fcmVnWzhdID0gewogIC8qIDAw ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMDEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAwMiAqLyAgeyBVRF9JcHNybHcsICAgICAgIE9fUFIsICAgIE9f SWIsICAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAzICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDQgKi8gIHsgVURfSXBz cmF3LCAgICAgICBPX1BSLCAgICBPX0liLCAgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDA2ICovICB7IFVEX0lwc2xsdywgICAgICAgT19QUiwgICAgT19JYiwgICAgT19OT05F LCAgUF9ub25lIH0sCiAgLyogMDcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBp dGFiX18wZl9fb3BfNzJfX3JlZ1s4XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDIg Ki8gIHsgVURfSXBzcmxkLCAgICAgICBPX1BSLCAgICBPX0liLCAgICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAwMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDA0ICovICB7IFVEX0lwc3JhZCwgICAgICAgT19QUiwgICAgT19J YiwgICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JcHNs bGQsICAgICAgIE9fUFIsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA3ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s Cn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wXzczX19yZWdbOF0g PSB7CiAgLyogMDAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAyICovICB7IFVEX0lwc3JscSwgICAgICAg T19QUiwgICAgT19JYiwgICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDMgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNCAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDA1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogMDYgKi8gIHsgVURfSXBzbGxxLCAgICAgICBPX1BSLCAgICBPX0li LCAgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9p dGFiX2VudHJ5IGl0YWJfXzBmX19vcF9hZV9fcmVnWzhdID0gewogIC8qIDAwICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDEg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiAwMiAqLyAgeyBVRF9JbGRteGNzciwgICAgIE9fTWQsICAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAzICovICB7IFVE X0lzdG14Y3NyLCAgICAgT19NZCwgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298UF9yZXh3fFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNSAqLyAgeyBVRF9JZ3JwX21v ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzBGX19PUF9BRV9fUkVHX19P UF8wNV9fTU9EIH0sCiAgLyogMDYgKi8gIHsgVURfSWdycF9tb2QsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfQUVfX1JFR19fT1BfMDZfX01PRCB9LAogIC8qIDA3 ICovICB7IFVEX0lncnBfbW9kLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9f MEZfX09QX0FFX19SRUdfX09QXzA3X19NT0QgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9l bnRyeSBpdGFiX18wZl9fb3BfYWVfX3JlZ19fb3BfMDVfX21vZFsyXSA9IHsKICAvKiAwMCAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDAxICovICB7IFVEX0lncnBfcm0sICAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg SVRBQl9fMEZfX09QX0FFX19SRUdfX09QXzA1X19NT0RfX09QXzAxX19STSB9LAp9OwoKc3RhdGlj IHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzBmX19vcF9hZV9fcmVnX19vcF8wNV9fbW9kX19v cF8wMV9fcm1bOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWxmZW5jZSwgICAgICBPX05PTkUsICBP X05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9JbGZlbmNlLCAgICAg IE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAyICovICB7IFVEX0ls ZmVuY2UsICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDMg Ki8gIHsgVURfSWxmZW5jZSwgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAwNCAqLyAgeyBVRF9JbGZlbmNlLCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDA1ICovICB7IFVEX0lsZmVuY2UsICAgICAgT19OT05FLCAgT19O T05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDYgKi8gIHsgVURfSWxmZW5jZSwgICAgICBP X05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9JbGZl bmNlLCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAp9OwoKc3RhdGlj IHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzBmX19vcF9hZV9fcmVnX19vcF8wNl9fbW9kWzJd ID0gewogIC8qIDAwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsgVURfSWdycF9ybSwgICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBJVEFCX18wRl9fT1BfQUVfX1JFR19fT1BfMDZfX01PRF9fT1BfMDFf X1JNIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wX2FlX19y ZWdfX29wXzA2X19tb2RfX29wXzAxX19ybVs4XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JbWZlbmNl LCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7 IFVEX0ltZmVuY2UsICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMDIgKi8gIHsgVURfSW1mZW5jZSwgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiAwMyAqLyAgeyBVRF9JbWZlbmNlLCAgICAgIE9fTk9ORSwgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA0ICovICB7IFVEX0ltZmVuY2UsICAgICAgT19OT05F LCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSW1mZW5jZSwg ICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNiAqLyAgeyBV RF9JbWZlbmNlLCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDA3ICovICB7IFVEX0ltZmVuY2UsICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9u b25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wX2FlX19y ZWdfX29wXzA3X19tb2RbMl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWNsZmx1c2gsICAgICBPX00s ICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiAwMSAqLyAgeyBVRF9JZ3JwX3JtLCAgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIElUQUJfXzBGX19PUF9BRV9fUkVHX19PUF8wN19fTU9EX19PUF8wMV9fUk0gfSwKfTsKCnN0 YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfYWVfX3JlZ19fb3BfMDdfX21v ZF9fb3BfMDFfX3JtWzhdID0gewogIC8qIDAwICovICB7IFVEX0lzZmVuY2UsICAgICAgT19OT05F LCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsgVURfSXNmZW5jZSwg ICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwMiAqLyAgeyBV RF9Jc2ZlbmNlLCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDAzICovICB7IFVEX0lzZmVuY2UsICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9u b25lIH0sCiAgLyogMDQgKi8gIHsgVURfSXNmZW5jZSwgICAgICBPX05PTkUsICBPX05PTkUsICBP X05PTkUsICBQX25vbmUgfSwKICAvKiAwNSAqLyAgeyBVRF9Jc2ZlbmNlLCAgICAgIE9fTk9ORSwg IE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA2ICovICB7IFVEX0lzZmVuY2UsICAg ICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDcgKi8gIHsgVURf SXNmZW5jZSwgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKfTsKCnN0 YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfYmFfX3JlZ1s4XSA9IHsKICAv KiAwMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMyAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA0ICovICB7IFVE X0lidCwgICAgICAgICAgT19FdiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29z b3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNSAqLyAgeyBVRF9JYnRzLCAg ICAgICAgIE9fRXYsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3 fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDYgKi8gIHsgVURfSWJ0ciwgICAgICAgICBP X0V2LCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8 UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA3ICovICB7IFVEX0lidGMsICAgICAgICAgT19FdiwgICAg T19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18wZl9fb3BfYzdf X3JlZ1s4XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZ3JwX3ZlbmRvciwgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIElUQUJfXzBGX19PUF9DN19fUkVHX19PUF8wMF9fVkVORE9SIH0sCiAgLyog MDEgKi8gIHsgVURfSWNtcHhjaGc4YiwgICBPX00sICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fz b3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDMgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNCAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDA1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogMDYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9JZ3JwX3ZlbmRvciwgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzBGX19PUF9DN19fUkVHX19PUF8wN19fVkVO RE9SIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wX2M3X19y ZWdfX29wXzAwX192ZW5kb3JbMl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9Jdm1w dHJsZCwgICAgIE9fTXEsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8 UF9yZXhiIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wX2M3 X19yZWdfX29wXzA3X192ZW5kb3JbMl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9J dm1wdHJzdCwgICAgIE9fTXEsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29w X2Q5X19tb2RbMl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9JZ3JwX3g4NywgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzBGX19PUF9EOV9fTU9EX19PUF8wMV9f WDg3IH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMGZfX29wX2Q5X19t b2RfX29wXzAxX194ODdbNjRdID0gewogIC8qIDAwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMiAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDAzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogMDQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA2ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDcgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAwOCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDA5ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMEEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwQiAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDBDICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog MEQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiAwRSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDBGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMTAgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxMSAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDEy ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMTMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAxNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDE1ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMTYgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxNyAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDE4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogMTkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDFCICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUMgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiAxRCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDFFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyMCAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDIxICovICB7 IFVEX0lmYWJzLCAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMjIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiAyMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjUgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyNiAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDI3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMjggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAyOSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDJBICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMkIgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAy QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDJEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMkUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyRiAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDMwICovICB7IFVEX0lm MnhtMSwgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMzEg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiAzMiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDMzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzQgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzNSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM2ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMzcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAzOCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM5ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0EgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzQiAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDNDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogM0QgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzRSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNGICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3Ry dWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVbMjU2XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9J YWRkLCAgICAgICAgIE9fRWIsICAgIE9fR2IsICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCiAgLyogMDEgKi8gIHsgVURfSWFkZCwgICAgICAgICBPX0V2LCAgICBPX0d2 LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiAwMiAqLyAgeyBVRF9JYWRkLCAgICAgICAgIE9fR2IsICAgIE9fRWIsICAgIE9fTk9ORSwg IFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSWFkZCwgICAg ICAgICBPX0d2LCAgICBPX0V2LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNCAqLyAgeyBVRF9JYWRkLCAgICAgICAgIE9fQUwsICAg IE9fSWIsICAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA1ICovICB7IFVEX0lhZGQsICAgICAg ICAgT19yQVgsICAgT19JeiwgICAgT19OT05FLCAgUF9vc298UF9yZXh3IH0sCiAgLyogMDYgKi8g IHsgVURfSXB1c2gsICAgICAgICBPX0VTLCAgICBPX05PTkUsICBPX05PTkUsICBQX2ludjY0fFBf bm9uZSB9LAogIC8qIDA3ICovICB7IFVEX0lwb3AsICAgICAgICAgT19FUywgICAgT19OT05FLCAg T19OT05FLCAgUF9pbnY2NHxQX25vbmUgfSwKICAvKiAwOCAqLyAgeyBVRF9Jb3IsICAgICAgICAg IE9fRWIsICAgIE9fR2IsICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogMDkgKi8gIHsgVURfSW9yLCAgICAgICAgICBPX0V2LCAgICBPX0d2LCAgICBPX05PTkUs ICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwQSAqLyAg eyBVRF9Jb3IsICAgICAgICAgIE9fR2IsICAgIE9fRWIsICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMEIgKi8gIHsgVURfSW9yLCAgICAgICAgICBPX0d2LCAg ICBPX0V2LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3Jl eGIgfSwKICAvKiAwQyAqLyAgeyBVRF9Jb3IsICAgICAgICAgIE9fQUwsICAgIE9fSWIsICAgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDBEICovICB7IFVEX0lvciwgICAgICAgICAgT19yQVgsICAg T19JeiwgICAgT19OT05FLCAgUF9vc298UF9yZXh3IH0sCiAgLyogMEUgKi8gIHsgVURfSXB1c2gs ICAgICAgICBPX0NTLCAgICBPX05PTkUsICBPX05PTkUsICBQX2ludjY0fFBfbm9uZSB9LAogIC8q IDBGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMTAgKi8gIHsgVURfSWFkYywgICAgICAgICBPX0ViLCAgICBPX0diLCAgICBP X05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDExICovICB7IFVEX0lh ZGMsICAgICAgICAgT19FdiwgICAgT19HdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3 fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMTIgKi8gIHsgVURfSWFkYywgICAgICAgICBP X0diLCAgICBPX0ViLCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAog IC8qIDEzICovICB7IFVEX0lhZGMsICAgICAgICAgT19HdiwgICAgT19FdiwgICAgT19OT05FLCAg UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMTQgKi8gIHsg VURfSWFkYywgICAgICAgICBPX0FMLCAgICBPX0liLCAgICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAxNSAqLyAgeyBVRF9JYWRjLCAgICAgICAgIE9fckFYLCAgIE9fSXosICAgIE9fTk9ORSwgIFBf b3NvfFBfcmV4dyB9LAogIC8qIDE2ICovICB7IFVEX0lwdXNoLCAgICAgICAgT19TUywgICAgT19O T05FLCAgT19OT05FLCAgUF9pbnY2NHxQX25vbmUgfSwKICAvKiAxNyAqLyAgeyBVRF9JcG9wLCAg ICAgICAgIE9fU1MsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfaW52NjR8UF9ub25lIH0sCiAgLyog MTggKi8gIHsgVURfSXNiYiwgICAgICAgICBPX0ViLCAgICBPX0diLCAgICBPX05PTkUsICBQX2Fz b3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDE5ICovICB7IFVEX0lzYmIsICAgICAgICAg T19FdiwgICAgT19HdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCiAgLyogMUEgKi8gIHsgVURfSXNiYiwgICAgICAgICBPX0diLCAgICBPX0Vi LCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDFCICovICB7 IFVEX0lzYmIsICAgICAgICAgT19HdiwgICAgT19FdiwgICAgT19OT05FLCAgUF9hc298UF9vc298 UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMUMgKi8gIHsgVURfSXNiYiwgICAg ICAgICBPX0FMLCAgICBPX0liLCAgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxRCAqLyAgeyBV RF9Jc2JiLCAgICAgICAgIE9fckFYLCAgIE9fSXosICAgIE9fTk9ORSwgIFBfb3NvfFBfcmV4dyB9 LAogIC8qIDFFICovICB7IFVEX0lwdXNoLCAgICAgICAgT19EUywgICAgT19OT05FLCAgT19OT05F LCAgUF9pbnY2NHxQX25vbmUgfSwKICAvKiAxRiAqLyAgeyBVRF9JcG9wLCAgICAgICAgIE9fRFMs ICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfaW52NjR8UF9ub25lIH0sCiAgLyogMjAgKi8gIHsgVURf SWFuZCwgICAgICAgICBPX0ViLCAgICBPX0diLCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDIxICovICB7IFVEX0lhbmQsICAgICAgICAgT19FdiwgICAgT19H diwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogMjIgKi8gIHsgVURfSWFuZCwgICAgICAgICBPX0diLCAgICBPX0ViLCAgICBPX05PTkUs ICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDIzICovICB7IFVEX0lhbmQsICAg ICAgICAgT19HdiwgICAgT19FdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMjQgKi8gIHsgVURfSWFuZCwgICAgICAgICBPX0FMLCAg ICBPX0liLCAgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyNSAqLyAgeyBVRF9JYW5kLCAgICAg ICAgIE9fckFYLCAgIE9fSXosICAgIE9fTk9ORSwgIFBfb3NvfFBfcmV4dyB9LAogIC8qIDI2ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMjcgKi8gIHsgVURfSWRhYSwgICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUs ICBQX2ludjY0fFBfbm9uZSB9LAogIC8qIDI4ICovICB7IFVEX0lzdWIsICAgICAgICAgT19FYiwg ICAgT19HYiwgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAy OSAqLyAgeyBVRF9Jc3ViLCAgICAgICAgIE9fRXYsICAgIE9fR3YsICAgIE9fTk9ORSwgIFBfYXNv fFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDJBICovICB7IFVEX0lz dWIsICAgICAgICAgT19HYiwgICAgT19FYiwgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4 eHxQX3JleGIgfSwKICAvKiAyQiAqLyAgeyBVRF9Jc3ViLCAgICAgICAgIE9fR3YsICAgIE9fRXYs ICAgIE9fTk9ORSwgIFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAog IC8qIDJDICovICB7IFVEX0lzdWIsICAgICAgICAgT19BTCwgICAgT19JYiwgICAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogMkQgKi8gIHsgVURfSXN1YiwgICAgICAgICBPX3JBWCwgICBPX0l6LCAg ICBPX05PTkUsICBQX29zb3xQX3JleHcgfSwKICAvKiAyRSAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDJGICovICB7IFVEX0lk YXMsICAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9pbnY2NHxQX25vbmUgfSwK ICAvKiAzMCAqLyAgeyBVRF9JeG9yLCAgICAgICAgIE9fRWIsICAgIE9fR2IsICAgIE9fTk9ORSwg IFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMzEgKi8gIHsgVURfSXhvciwgICAg ICAgICBPX0V2LCAgICBPX0d2LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAzMiAqLyAgeyBVRF9JeG9yLCAgICAgICAgIE9fR2IsICAg IE9fRWIsICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMzMg Ki8gIHsgVURfSXhvciwgICAgICAgICBPX0d2LCAgICBPX0V2LCAgICBPX05PTkUsICBQX2Fzb3xQ X29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAzNCAqLyAgeyBVRF9JeG9y LCAgICAgICAgIE9fQUwsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDM1ICov ICB7IFVEX0l4b3IsICAgICAgICAgT19yQVgsICAgT19JeiwgICAgT19OT05FLCAgUF9vc298UF9y ZXh3IH0sCiAgLyogMzYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAzNyAqLyAgeyBVRF9JYWFhLCAgICAgICAgIE9fTk9ORSwg IE9fTk9ORSwgIE9fTk9ORSwgIFBfaW52NjR8UF9ub25lIH0sCiAgLyogMzggKi8gIHsgVURfSWNt cCwgICAgICAgICBPX0ViLCAgICBPX0diLCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4 fFBfcmV4YiB9LAogIC8qIDM5ICovICB7IFVEX0ljbXAsICAgICAgICAgT19FdiwgICAgT19Hdiwg ICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogM0EgKi8gIHsgVURfSWNtcCwgICAgICAgICBPX0diLCAgICBPX0ViLCAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDNCICovICB7IFVEX0ljbXAsICAgICAg ICAgT19HdiwgICAgT19FdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQ X3JleHh8UF9yZXhiIH0sCiAgLyogM0MgKi8gIHsgVURfSWNtcCwgICAgICAgICBPX0FMLCAgICBP X0liLCAgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzRCAqLyAgeyBVRF9JY21wLCAgICAgICAg IE9fckFYLCAgIE9fSXosICAgIE9fTk9ORSwgIFBfb3NvfFBfcmV4dyB9LAogIC8qIDNFICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogM0YgKi8gIHsgVURfSWFhcywgICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQ X2ludjY0fFBfbm9uZSB9LAogIC8qIDQwICovICB7IFVEX0lpbmMsICAgICAgICAgT19lQVgsICAg T19OT05FLCAgT19OT05FLCAgUF9vc28gfSwKICAvKiA0MSAqLyAgeyBVRF9JaW5jLCAgICAgICAg IE9fZUNYLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfb3NvIH0sCiAgLyogNDIgKi8gIHsgVURfSWlu YywgICAgICAgICBPX2VEWCwgICBPX05PTkUsICBPX05PTkUsICBQX29zbyB9LAogIC8qIDQzICov ICB7IFVEX0lpbmMsICAgICAgICAgT19lQlgsICAgT19OT05FLCAgT19OT05FLCAgUF9vc28gfSwK ICAvKiA0NCAqLyAgeyBVRF9JaW5jLCAgICAgICAgIE9fZVNQLCAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfb3NvIH0sCiAgLyogNDUgKi8gIHsgVURfSWluYywgICAgICAgICBPX2VCUCwgICBPX05PTkUs ICBPX05PTkUsICBQX29zbyB9LAogIC8qIDQ2ICovICB7IFVEX0lpbmMsICAgICAgICAgT19lU0ks ICAgT19OT05FLCAgT19OT05FLCAgUF9vc28gfSwKICAvKiA0NyAqLyAgeyBVRF9JaW5jLCAgICAg ICAgIE9fZURJLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfb3NvIH0sCiAgLyogNDggKi8gIHsgVURf SWRlYywgICAgICAgICBPX2VBWCwgICBPX05PTkUsICBPX05PTkUsICBQX29zbyB9LAogIC8qIDQ5 ICovICB7IFVEX0lkZWMsICAgICAgICAgT19lQ1gsICAgT19OT05FLCAgT19OT05FLCAgUF9vc28g fSwKICAvKiA0QSAqLyAgeyBVRF9JZGVjLCAgICAgICAgIE9fZURYLCAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfb3NvIH0sCiAgLyogNEIgKi8gIHsgVURfSWRlYywgICAgICAgICBPX2VCWCwgICBPX05P TkUsICBPX05PTkUsICBQX29zbyB9LAogIC8qIDRDICovICB7IFVEX0lkZWMsICAgICAgICAgT19l U1AsICAgT19OT05FLCAgT19OT05FLCAgUF9vc28gfSwKICAvKiA0RCAqLyAgeyBVRF9JZGVjLCAg ICAgICAgIE9fZUJQLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfb3NvIH0sCiAgLyogNEUgKi8gIHsg VURfSWRlYywgICAgICAgICBPX2VTSSwgICBPX05PTkUsICBPX05PTkUsICBQX29zbyB9LAogIC8q IDRGICovICB7IFVEX0lkZWMsICAgICAgICAgT19lREksICAgT19OT05FLCAgT19OT05FLCAgUF9v c28gfSwKICAvKiA1MCAqLyAgeyBVRF9JcHVzaCwgICAgICAgIE9fckFYcjgsIE9fTk9ORSwgIE9f Tk9ORSwgIFBfZGVmNjR8UF9kZXBNfFBfb3NvfFBfcmV4YiB9LAogIC8qIDUxICovICB7IFVEX0lw dXNoLCAgICAgICAgT19yQ1hyOSwgT19OT05FLCAgT19OT05FLCAgUF9kZWY2NHxQX2RlcE18UF9v c298UF9yZXhiIH0sCiAgLyogNTIgKi8gIHsgVURfSXB1c2gsICAgICAgICBPX3JEWHIxMCwgT19O T05FLCAgT19OT05FLCBQX2RlZjY0fFBfZGVwTXxQX29zb3xQX3JleGIgfSwKICAvKiA1MyAqLyAg eyBVRF9JcHVzaCwgICAgICAgIE9fckJYcjExLCBPX05PTkUsICBPX05PTkUsIFBfZGVmNjR8UF9k ZXBNfFBfb3NvfFBfcmV4YiB9LAogIC8qIDU0ICovICB7IFVEX0lwdXNoLCAgICAgICAgT19yU1By MTIsIE9fTk9ORSwgIE9fTk9ORSwgUF9kZWY2NHxQX2RlcE18UF9vc298UF9yZXhiIH0sCiAgLyog NTUgKi8gIHsgVURfSXB1c2gsICAgICAgICBPX3JCUHIxMywgT19OT05FLCAgT19OT05FLCBQX2Rl ZjY0fFBfZGVwTXxQX29zb3xQX3JleGIgfSwKICAvKiA1NiAqLyAgeyBVRF9JcHVzaCwgICAgICAg IE9fclNJcjE0LCBPX05PTkUsICBPX05PTkUsIFBfZGVmNjR8UF9kZXBNfFBfb3NvfFBfcmV4YiB9 LAogIC8qIDU3ICovICB7IFVEX0lwdXNoLCAgICAgICAgT19yRElyMTUsIE9fTk9ORSwgIE9fTk9O RSwgUF9kZWY2NHxQX2RlcE18UF9vc298UF9yZXhiIH0sCiAgLyogNTggKi8gIHsgVURfSXBvcCwg ICAgICAgICBPX3JBWHI4LCBPX05PTkUsICBPX05PTkUsICBQX2RlZjY0fFBfZGVwTXxQX29zb3xQ X3JleGIgfSwKICAvKiA1OSAqLyAgeyBVRF9JcG9wLCAgICAgICAgIE9fckNYcjksIE9fTk9ORSwg IE9fTk9ORSwgIFBfZGVmNjR8UF9kZXBNfFBfb3NvfFBfcmV4YiB9LAogIC8qIDVBICovICB7IFVE X0lwb3AsICAgICAgICAgT19yRFhyMTAsIE9fTk9ORSwgIE9fTk9ORSwgUF9kZWY2NHxQX2RlcE18 UF9vc298UF9yZXhiIH0sCiAgLyogNUIgKi8gIHsgVURfSXBvcCwgICAgICAgICBPX3JCWHIxMSwg T19OT05FLCAgT19OT05FLCBQX2RlZjY0fFBfZGVwTXxQX29zb3xQX3JleGIgfSwKICAvKiA1QyAq LyAgeyBVRF9JcG9wLCAgICAgICAgIE9fclNQcjEyLCBPX05PTkUsICBPX05PTkUsIFBfZGVmNjR8 UF9kZXBNfFBfb3NvfFBfcmV4YiB9LAogIC8qIDVEICovICB7IFVEX0lwb3AsICAgICAgICAgT19y QlByMTMsIE9fTk9ORSwgIE9fTk9ORSwgUF9kZWY2NHxQX2RlcE18UF9vc298UF9yZXhiIH0sCiAg LyogNUUgKi8gIHsgVURfSXBvcCwgICAgICAgICBPX3JTSXIxNCwgT19OT05FLCAgT19OT05FLCBQ X2RlZjY0fFBfZGVwTXxQX29zb3xQX3JleGIgfSwKICAvKiA1RiAqLyAgeyBVRF9JcG9wLCAgICAg ICAgIE9fckRJcjE1LCBPX05PTkUsICBPX05PTkUsIFBfZGVmNjR8UF9kZXBNfFBfb3NvfFBfcmV4 YiB9LAogIC8qIDYwICovICB7IFVEX0lncnBfb3NpemUsICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgSVRBQl9fMUJZVEVfX09QXzYwX19PU0laRSB9LAogIC8qIDYxICovICB7IFVEX0lncnBf b3NpemUsICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QXzYxX19P U0laRSB9LAogIC8qIDYyICovICB7IFVEX0lib3VuZCwgICAgICAgT19HdiwgICAgT19NLCAgICAg T19OT05FLCAgUF9pbnY2NHxQX2Fzb3xQX29zbyB9LAogIC8qIDYzICovICB7IFVEX0lncnBfbW9k ZSwgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QXzYzX19NT0RF IH0sCiAgLyogNjQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiA2NSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDY2ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNjcgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2OCAq LyAgeyBVRF9JcHVzaCwgICAgICAgIE9fSXosICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9v c28gfSwKICAvKiA2OSAqLyAgeyBVRF9JaW11bCwgICAgICAgIE9fR3YsICAgIE9fRXYsICAgIE9f SXosICAgIFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDZB ICovICB7IFVEX0lwdXNoLCAgICAgICAgT19JYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogNkIgKi8gIHsgVURfSWltdWwsICAgICAgICBPX0d2LCAgICBPX0V2LCAgICBPX0li LCAgICBQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA2QyAq LyAgeyBVRF9JaW5zYiwgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9 LAogIC8qIDZEICovICB7IFVEX0lncnBfb3NpemUsICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgSVRBQl9fMUJZVEVfX09QXzZEX19PU0laRSB9LAogIC8qIDZFICovICB7IFVEX0lvdXRzYiwg ICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogNkYgKi8gIHsg VURfSWdycF9vc2l6ZSwgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18xQllURV9f T1BfNkZfX09TSVpFIH0sCiAgLyogNzAgKi8gIHsgVURfSWpvLCAgICAgICAgICBPX0piLCAgICBP X05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiA3MSAqLyAgeyBVRF9Jam5vLCAgICAgICAg IE9fSmIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDcyICovICB7IFVEX0lq YiwgICAgICAgICAgT19KYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogNzMg Ki8gIHsgVURfSWphZSwgICAgICAgICBPX0piLCAgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUg fSwKICAvKiA3NCAqLyAgeyBVRF9JanosICAgICAgICAgIE9fSmIsICAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDc1ICovICB7IFVEX0lqbnosICAgICAgICAgT19KYiwgICAgT19O T05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogNzYgKi8gIHsgVURfSWpiZSwgICAgICAgICBP X0piLCAgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiA3NyAqLyAgeyBVRF9JamEs ICAgICAgICAgIE9fSmIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDc4ICov ICB7IFVEX0lqcywgICAgICAgICAgT19KYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogNzkgKi8gIHsgVURfSWpucywgICAgICAgICBPX0piLCAgICBPX05PTkUsICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiA3QSAqLyAgeyBVRF9JanAsICAgICAgICAgIE9fSmIsICAgIE9fTk9O RSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDdCICovICB7IFVEX0lqbnAsICAgICAgICAgT19K YiwgICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogN0MgKi8gIHsgVURfSWpsLCAg ICAgICAgICBPX0piLCAgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiA3RCAqLyAg eyBVRF9JamdlLCAgICAgICAgIE9fSmIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDdFICovICB7IFVEX0lqbGUsICAgICAgICAgT19KYiwgICAgT19OT05FLCAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogN0YgKi8gIHsgVURfSWpnLCAgICAgICAgICBPX0piLCAgICBPX05PTkUs ICBPX05PTkUsICBQX25vbmUgfSwKICAvKiA4MCAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF84MF9fUkVHIH0sCiAgLyogODEg Ki8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18x QllURV9fT1BfODFfX1JFRyB9LAogIC8qIDgyICovICB7IFVEX0lncnBfcmVnLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QXzgyX19SRUcgfSwKICAvKiA4MyAq LyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFC WVRFX19PUF84M19fUkVHIH0sCiAgLyogODQgKi8gIHsgVURfSXRlc3QsICAgICAgICBPX0ViLCAg ICBPX0diLCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDg1 ICovICB7IFVEX0l0ZXN0LCAgICAgICAgT19FdiwgICAgT19HdiwgICAgT19OT05FLCAgUF9hc298 UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogODYgKi8gIHsgVURfSXhj aGcsICAgICAgICBPX0ViLCAgICBPX0diLCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4 fFBfcmV4YiB9LAogIC8qIDg3ICovICB7IFVEX0l4Y2hnLCAgICAgICAgT19FdiwgICAgT19Hdiwg ICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogODggKi8gIHsgVURfSW1vdiwgICAgICAgICBPX0ViLCAgICBPX0diLCAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDg5ICovICB7IFVEX0ltb3YsICAgICAg ICAgT19FdiwgICAgT19HdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQ X3JleHh8UF9yZXhiIH0sCiAgLyogOEEgKi8gIHsgVURfSW1vdiwgICAgICAgICBPX0diLCAgICBP X0ViLCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDhCICov ICB7IFVEX0ltb3YsICAgICAgICAgT19HdiwgICAgT19FdiwgICAgT19OT05FLCAgUF9hc298UF9v c298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogOEMgKi8gIHsgVURfSW1vdiwg ICAgICAgICBPX0V2LCAgICBPX1MsICAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDhEICovICB7IFVEX0lsZWEsICAgICAgICAgT19HdiwgICAgT19N LCAgICAgT19OT05FLCAgUF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogOEUgKi8gIHsgVURfSW1vdiwgICAgICAgICBPX1MsICAgICBPX0V2LCAgICBPX05PTkUs ICBQX2Fzb3xQX29zb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDhGICovICB7IFVEX0ln cnBfcmVnLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QXzhG X19SRUcgfSwKICAvKiA5MCAqLyAgeyBVRF9JeGNoZywgICAgICAgIE9fckFYcjgsIE9fckFYLCAg IE9fTk9ORSwgIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiA5MSAqLyAgeyBVRF9JeGNoZywg ICAgICAgIE9fckNYcjksIE9fckFYLCAgIE9fTk9ORSwgIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwK ICAvKiA5MiAqLyAgeyBVRF9JeGNoZywgICAgICAgIE9fckRYcjEwLCBPX3JBWCwgICBPX05PTkUs IFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiA5MyAqLyAgeyBVRF9JeGNoZywgICAgICAgIE9f ckJYcjExLCBPX3JBWCwgICBPX05PTkUsIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiA5NCAq LyAgeyBVRF9JeGNoZywgICAgICAgIE9fclNQcjEyLCBPX3JBWCwgICBPX05PTkUsIFBfb3NvfFBf cmV4d3xQX3JleGIgfSwKICAvKiA5NSAqLyAgeyBVRF9JeGNoZywgICAgICAgIE9fckJQcjEzLCBP X3JBWCwgICBPX05PTkUsIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiA5NiAqLyAgeyBVRF9J eGNoZywgICAgICAgIE9fclNJcjE0LCBPX3JBWCwgICBPX05PTkUsIFBfb3NvfFBfcmV4d3xQX3Jl eGIgfSwKICAvKiA5NyAqLyAgeyBVRF9JeGNoZywgICAgICAgIE9fckRJcjE1LCBPX3JBWCwgICBP X05PTkUsIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiA5OCAqLyAgeyBVRF9JZ3JwX29zaXpl LCAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF85OF9fT1NJWkUg fSwKICAvKiA5OSAqLyAgeyBVRF9JZ3JwX29zaXplLCAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIElUQUJfXzFCWVRFX19PUF85OV9fT1NJWkUgfSwKICAvKiA5QSAqLyAgeyBVRF9JY2FsbCwg ICAgICAgIE9fQXAsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfaW52NjR8UF9vc28gfSwKICAvKiA5 QiAqLyAgeyBVRF9Jd2FpdCwgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIDlDICovICB7IFVEX0lncnBfbW9kZSwgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgSVRBQl9fMUJZVEVfX09QXzlDX19NT0RFIH0sCiAgLyogOUQgKi8gIHsgVURfSWdycF9t b2RlLCAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18xQllURV9fT1BfOURfX01P REUgfSwKICAvKiA5RSAqLyAgeyBVRF9Jc2FoZiwgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDlGICovICB7IFVEX0lsYWhmLCAgICAgICAgT19OT05FLCAg T19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogQTAgKi8gIHsgVURfSW1vdiwgICAgICAg ICBPX0FMLCAgICBPX09iLCAgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiBBMSAqLyAgeyBVRF9J bW92LCAgICAgICAgIE9fckFYLCAgIE9fT3YsICAgIE9fTk9ORSwgIFBfYXNvfFBfb3NvfFBfcmV4 dyB9LAogIC8qIEEyICovICB7IFVEX0ltb3YsICAgICAgICAgT19PYiwgICAgT19BTCwgICAgT19O T05FLCAgUF9ub25lIH0sCiAgLyogQTMgKi8gIHsgVURfSW1vdiwgICAgICAgICBPX092LCAgICBP X3JBWCwgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQX3JleHcgfSwKICAvKiBBNCAqLyAgeyBVRF9J bW92c2IsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfSW1wQWRkcnxQX25vbmUg fSwKICAvKiBBNSAqLyAgeyBVRF9JZ3JwX29zaXplLCAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIElUQUJfXzFCWVRFX19PUF9BNV9fT1NJWkUgfSwKICAvKiBBNiAqLyAgeyBVRF9JY21wc2Is ICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEE3ICovICB7 IFVEX0lncnBfb3NpemUsICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVf X09QX0E3X19PU0laRSB9LAogIC8qIEE4ICovICB7IFVEX0l0ZXN0LCAgICAgICAgT19BTCwgICAg T19JYiwgICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogQTkgKi8gIHsgVURfSXRlc3QsICAgICAg ICBPX3JBWCwgICBPX0l6LCAgICBPX05PTkUsICBQX29zb3xQX3JleHcgfSwKICAvKiBBQSAqLyAg eyBVRF9Jc3Rvc2IsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfSW1wQWRkcnxQ X25vbmUgfSwKICAvKiBBQiAqLyAgeyBVRF9JZ3JwX29zaXplLCAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9BQl9fT1NJWkUgfSwKICAvKiBBQyAqLyAgeyBVRF9J bG9kc2IsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfSW1wQWRkcnxQX25vbmUg fSwKICAvKiBBRCAqLyAgeyBVRF9JZ3JwX29zaXplLCAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIElUQUJfXzFCWVRFX19PUF9BRF9fT1NJWkUgfSwKICAvKiBBRSAqLyAgeyBVRF9Jc2Nhc2Is ICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEFGICovICB7 IFVEX0lncnBfb3NpemUsICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVf X09QX0FGX19PU0laRSB9LAogIC8qIEIwICovICB7IFVEX0ltb3YsICAgICAgICAgT19BTHI4Yiwg T19JYiwgICAgT19OT05FLCAgUF9yZXhiIH0sCiAgLyogQjEgKi8gIHsgVURfSW1vdiwgICAgICAg ICBPX0NMcjliLCBPX0liLCAgICBPX05PTkUsICBQX3JleGIgfSwKICAvKiBCMiAqLyAgeyBVRF9J bW92LCAgICAgICAgIE9fRExyMTBiLCBPX0liLCAgICBPX05PTkUsIFBfcmV4YiB9LAogIC8qIEIz ICovICB7IFVEX0ltb3YsICAgICAgICAgT19CTHIxMWIsIE9fSWIsICAgIE9fTk9ORSwgUF9yZXhi IH0sCiAgLyogQjQgKi8gIHsgVURfSW1vdiwgICAgICAgICBPX0FIcjEyYiwgT19JYiwgICAgT19O T05FLCBQX3JleGIgfSwKICAvKiBCNSAqLyAgeyBVRF9JbW92LCAgICAgICAgIE9fQ0hyMTNiLCBP X0liLCAgICBPX05PTkUsIFBfcmV4YiB9LAogIC8qIEI2ICovICB7IFVEX0ltb3YsICAgICAgICAg T19ESHIxNGIsIE9fSWIsICAgIE9fTk9ORSwgUF9yZXhiIH0sCiAgLyogQjcgKi8gIHsgVURfSW1v diwgICAgICAgICBPX0JIcjE1YiwgT19JYiwgICAgT19OT05FLCBQX3JleGIgfSwKICAvKiBCOCAq LyAgeyBVRF9JbW92LCAgICAgICAgIE9fckFYcjgsIE9fSXYsICAgIE9fTk9ORSwgIFBfb3NvfFBf cmV4d3xQX3JleGIgfSwKICAvKiBCOSAqLyAgeyBVRF9JbW92LCAgICAgICAgIE9fckNYcjksIE9f SXYsICAgIE9fTk9ORSwgIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiBCQSAqLyAgeyBVRF9J bW92LCAgICAgICAgIE9fckRYcjEwLCBPX0l2LCAgICBPX05PTkUsIFBfb3NvfFBfcmV4d3xQX3Jl eGIgfSwKICAvKiBCQiAqLyAgeyBVRF9JbW92LCAgICAgICAgIE9fckJYcjExLCBPX0l2LCAgICBP X05PTkUsIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiBCQyAqLyAgeyBVRF9JbW92LCAgICAg ICAgIE9fclNQcjEyLCBPX0l2LCAgICBPX05PTkUsIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAv KiBCRCAqLyAgeyBVRF9JbW92LCAgICAgICAgIE9fckJQcjEzLCBPX0l2LCAgICBPX05PTkUsIFBf b3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiBCRSAqLyAgeyBVRF9JbW92LCAgICAgICAgIE9fclNJ cjE0LCBPX0l2LCAgICBPX05PTkUsIFBfb3NvfFBfcmV4d3xQX3JleGIgfSwKICAvKiBCRiAqLyAg eyBVRF9JbW92LCAgICAgICAgIE9fckRJcjE1LCBPX0l2LCAgICBPX05PTkUsIFBfb3NvfFBfcmV4 d3xQX3JleGIgfSwKICAvKiBDMCAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9DMF9fUkVHIH0sCiAgLyogQzEgKi8gIHsgVURf SWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18xQllURV9fT1Bf QzFfX1JFRyB9LAogIC8qIEMyICovICB7IFVEX0lyZXQsICAgICAgICAgT19JdywgICAgT19OT05F LCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogQzMgKi8gIHsgVURfSXJldCwgICAgICAgICBPX05P TkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiBDNCAqLyAgeyBVRF9JbGVzLCAg ICAgICAgIE9fR3YsICAgIE9fTSwgICAgIE9fTk9ORSwgIFBfaW52NjR8UF9hc298UF9vc28gfSwK ICAvKiBDNSAqLyAgeyBVRF9JbGRzLCAgICAgICAgIE9fR3YsICAgIE9fTSwgICAgIE9fTk9ORSwg IFBfaW52NjR8UF9hc298UF9vc28gfSwKICAvKiBDNiAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9DNl9fUkVHIH0sCiAgLyog QzcgKi8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFC X18xQllURV9fT1BfQzdfX1JFRyB9LAogIC8qIEM4ICovICB7IFVEX0llbnRlciwgICAgICAgT19J dywgICAgT19JYiwgICAgT19OT05FLCAgUF9kZWY2NHxQX2RlcE18UF9ub25lIH0sCiAgLyogQzkg Ki8gIHsgVURfSWxlYXZlLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUg fSwKICAvKiBDQSAqLyAgeyBVRF9JcmV0ZiwgICAgICAgIE9fSXcsICAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIENCICovICB7IFVEX0lyZXRmLCAgICAgICAgT19OT05FLCAgT19O T05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogQ0MgKi8gIHsgVURfSWludDMsICAgICAgICBP X05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiBDRCAqLyAgeyBVRF9JaW50 LCAgICAgICAgIE9fSWIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIENFICov ICB7IFVEX0lpbnRvLCAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9pbnY2NHxQ X25vbmUgfSwKICAvKiBDRiAqLyAgeyBVRF9JZ3JwX29zaXplLCAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9DRl9fT1NJWkUgfSwKICAvKiBEMCAqLyAgeyBVRF9J Z3JwX3JlZywgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9E MF9fUkVHIH0sCiAgLyogRDEgKi8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBJVEFCX18xQllURV9fT1BfRDFfX1JFRyB9LAogIC8qIEQyICovICB7IFVEX0ln cnBfcmVnLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QX0Qy X19SRUcgfSwKICAvKiBEMyAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9EM19fUkVHIH0sCiAgLyogRDQgKi8gIHsgVURfSWFh bSwgICAgICAgICBPX0liLCAgICBPX05PTkUsICBPX05PTkUsICBQX2ludjY0fFBfbm9uZSB9LAog IC8qIEQ1ICovICB7IFVEX0lhYWQsICAgICAgICAgT19JYiwgICAgT19OT05FLCAgT19OT05FLCAg UF9pbnY2NHxQX25vbmUgfSwKICAvKiBENiAqLyAgeyBVRF9Jc2FsYywgICAgICAgIE9fTk9ORSwg IE9fTk9ORSwgIE9fTk9ORSwgIFBfaW52NjR8UF9ub25lIH0sCiAgLyogRDcgKi8gIHsgVURfSXhs YXRiLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX3JleHcgfSwKICAvKiBEOCAq LyAgeyBVRF9JZ3JwX21vZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFC WVRFX19PUF9EOF9fTU9EIH0sCiAgLyogRDkgKi8gIHsgVURfSWdycF9tb2QsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18xQllURV9fT1BfRDlfX01PRCB9LAogIC8qIERBICov ICB7IFVEX0lncnBfbW9kLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZ VEVfX09QX0RBX19NT0QgfSwKICAvKiBEQiAqLyAgeyBVRF9JZ3JwX21vZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9EQl9fTU9EIH0sCiAgLyogREMgKi8g IHsgVURfSWdycF9tb2QsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18xQllU RV9fT1BfRENfX01PRCB9LAogIC8qIEREICovICB7IFVEX0lncnBfbW9kLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QX0REX19NT0QgfSwKICAvKiBERSAqLyAg eyBVRF9JZ3JwX21vZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRF X19PUF9ERV9fTU9EIH0sCiAgLyogREYgKi8gIHsgVURfSWdycF9tb2QsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBJVEFCX18xQllURV9fT1BfREZfX01PRCB9LAogIC8qIEUwICovICB7 IFVEX0lsb29wbnosICAgICAgT19KYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogRTEgKi8gIHsgVURfSWxvb3BlLCAgICAgICBPX0piLCAgICBPX05PTkUsICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiBFMiAqLyAgeyBVRF9JbG9vcCwgICAgICAgIE9fSmIsICAgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEUzICovICB7IFVEX0lncnBfYXNpemUsICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QX0UzX19BU0laRSB9LAogIC8qIEU0 ICovICB7IFVEX0lpbiwgICAgICAgICAgT19BTCwgICAgT19JYiwgICAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogRTUgKi8gIHsgVURfSWluLCAgICAgICAgICBPX2VBWCwgICBPX0liLCAgICBPX05P TkUsICBQX29zbyB9LAogIC8qIEU2ICovICB7IFVEX0lvdXQsICAgICAgICAgT19JYiwgICAgT19B TCwgICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogRTcgKi8gIHsgVURfSW91dCwgICAgICAgICBP X0liLCAgICBPX2VBWCwgICBPX05PTkUsICBQX29zbyB9LAogIC8qIEU4ICovICB7IFVEX0ljYWxs LCAgICAgICAgT19KeiwgICAgT19OT05FLCAgT19OT05FLCAgUF9kZWY2NHxQX29zbyB9LAogIC8q IEU5ICovICB7IFVEX0lqbXAsICAgICAgICAgT19KeiwgICAgT19OT05FLCAgT19OT05FLCAgUF9k ZWY2NHxQX2RlcE18UF9vc28gfSwKICAvKiBFQSAqLyAgeyBVRF9Jam1wLCAgICAgICAgIE9fQXAs ICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfaW52NjR8UF9ub25lIH0sCiAgLyogRUIgKi8gIHsgVURf SWptcCwgICAgICAgICBPX0piLCAgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiBF QyAqLyAgeyBVRF9JaW4sICAgICAgICAgIE9fQUwsICAgIE9fRFgsICAgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIEVEICovICB7IFVEX0lpbiwgICAgICAgICAgT19lQVgsICAgT19EWCwgICAgT19O T05FLCAgUF9vc28gfSwKICAvKiBFRSAqLyAgeyBVRF9Jb3V0LCAgICAgICAgIE9fRFgsICAgIE9f QUwsICAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEVGICovICB7IFVEX0lvdXQsICAgICAgICAg T19EWCwgICAgT19lQVgsICAgT19OT05FLCAgUF9vc28gfSwKICAvKiBGMCAqLyAgeyBVRF9JbG9j aywgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEYxICov ICB7IFVEX0lpbnQxLCAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogRjIgKi8gIHsgVURfSXJlcG5lLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiBGMyAqLyAgeyBVRF9JcmVwLCAgICAgICAgIE9fTk9ORSwgIE9fTk9O RSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEY0ICovICB7IFVEX0lobHQsICAgICAgICAgT19O T05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogRjUgKi8gIHsgVURfSWNtYywg ICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiBGNiAqLyAg eyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRF X19PUF9GNl9fUkVHIH0sCiAgLyogRjcgKi8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBJVEFCX18xQllURV9fT1BfRjdfX1JFRyB9LAogIC8qIEY4ICovICB7 IFVEX0ljbGMsICAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogRjkgKi8gIHsgVURfSXN0YywgICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiBGQSAqLyAgeyBVRF9JY2xpLCAgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIEZCICovICB7IFVEX0lzdGksICAgICAgICAgT19OT05F LCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogRkMgKi8gIHsgVURfSWNsZCwgICAg ICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiBGRCAqLyAgeyBV RF9Jc3RkLCAgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IEZFICovICB7IFVEX0lncnBfcmVnLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRB Ql9fMUJZVEVfX09QX0ZFX19SRUcgfSwKICAvKiBGRiAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9GRl9fUkVHIH0sCn07Cgpz dGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wXzYwX19vc2l6ZVszXSA9 IHsKICAvKiAwMCAqLyAgeyBVRF9JcHVzaGEsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9O RSwgIFBfaW52NjR8UF9vc28gfSwKICAvKiAwMSAqLyAgeyBVRF9JcHVzaGFkLCAgICAgIE9fTk9O RSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfaW52NjR8UF9vc28gfSwKICAvKiAwMiAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3Rh dGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF82MV9fb3NpemVbM10gPSB7 CiAgLyogMDAgKi8gIHsgVURfSXBvcGEsICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUs ICBQX2ludjY0fFBfb3NvIH0sCiAgLyogMDEgKi8gIHsgVURfSXBvcGFkLCAgICAgICBPX05PTkUs ICBPX05PTkUsICBPX05PTkUsICBQX2ludjY0fFBfb3NvIH0sCiAgLyogMDIgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKfTsKCnN0YXRp YyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfNjNfX21vZGVbM10gPSB7CiAg LyogMDAgKi8gIHsgVURfSWFycGwsICAgICAgICBPX0V3LCAgICBPX0d3LCAgICBPX05PTkUsICBQ X2ludjY0fFBfYXNvIH0sCiAgLyogMDEgKi8gIHsgVURfSWFycGwsICAgICAgICBPX0V3LCAgICBP X0d3LCAgICBPX05PTkUsICBQX2ludjY0fFBfYXNvIH0sCiAgLyogMDIgKi8gIHsgVURfSW1vdnN4 ZCwgICAgICBPX0d2LCAgICBPX0VkLCAgICBPX05PTkUsICBQX2MyfFBfYXNvfFBfb3NvfFBfcmV4 d3xQX3JleHh8UF9yZXhyfFBfcmV4YiB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5 IGl0YWJfXzFieXRlX19vcF82ZF9fb3NpemVbM10gPSB7CiAgLyogMDAgKi8gIHsgVURfSWluc3cs ICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX29zbyB9LAogIC8qIDAxICovICB7 IFVEX0lpbnNkLCAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9vc28gfSwKICAv KiAwMiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF82 Zl9fb3NpemVbM10gPSB7CiAgLyogMDAgKi8gIHsgVURfSW91dHN3LCAgICAgICBPX05PTkUsICBP X05PTkUsICBPX05PTkUsICBQX29zbyB9LAogIC8qIDAxICovICB7IFVEX0lvdXRzZCwgICAgICAg T19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9vc28gfSwKICAvKiAwMiAqLyAgeyBVRF9Jb3V0 c3EsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfb3NvIH0sCn07CgpzdGF0aWMg c3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wXzgwX19yZWdbOF0gPSB7CiAgLyog MDAgKi8gIHsgVURfSWFkZCwgICAgICAgICBPX0ViLCAgICBPX0liLCAgICBPX05PTkUsICBQX2Mx fFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDEgKi8gIHsgVURfSW9yLCAgICAg ICAgICBPX0ViLCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8 UF9yZXhiIH0sCiAgLyogMDIgKi8gIHsgVURfSWFkYywgICAgICAgICBPX0ViLCAgICBPX0liLCAg ICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8g IHsgVURfSXNiYiwgICAgICAgICBPX0ViLCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNv fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDQgKi8gIHsgVURfSWFuZCwgICAgICAgICBP X0ViLCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4 fFBfcmV4YiB9LAogIC8qIDA1ICovICB7IFVEX0lzdWIsICAgICAgICAgT19FYiwgICAgT19JYiwg ICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA2ICov ICB7IFVEX0l4b3IsICAgICAgICAgT19FYiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fz b3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA3ICovICB7IFVEX0ljbXAsICAgICAgICAg T19FYiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF84MV9f cmVnWzhdID0gewogIC8qIDAwICovICB7IFVEX0lhZGQsICAgICAgICAgT19FdiwgICAgT19Jeiwg ICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiAwMSAqLyAgeyBVRF9Jb3IsICAgICAgICAgIE9fRXYsICAgIE9fSXosICAgIE9fTk9O RSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyog MDIgKi8gIHsgVURfSWFkYywgICAgICAgICBPX0V2LCAgICBPX0l6LCAgICBPX05PTkUsICBQX2Mx fFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAzICovICB7 IFVEX0lzYmIsICAgICAgICAgT19FdiwgICAgT19JeiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQ X29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNCAqLyAgeyBVRF9JYW5k LCAgICAgICAgIE9fRXYsICAgIE9fSXosICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9y ZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDUgKi8gIHsgVURfSXN1YiwgICAgICAg ICBPX0V2LCAgICBPX0l6LCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA2ICovICB7IFVEX0l4b3IsICAgICAgICAgT19Fdiwg ICAgT19JeiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4 eHxQX3JleGIgfSwKICAvKiAwNyAqLyAgeyBVRF9JY21wLCAgICAgICAgIE9fRXYsICAgIE9fSXos ICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wXzgyX19y ZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWFkZCwgICAgICAgICBPX0ViLCAgICBPX0liLCAg ICBPX05PTkUsICBQX2MxfFBfaW52NjR8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiAwMSAqLyAgeyBVRF9Jb3IsICAgICAgICAgIE9fRWIsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBf YzF8UF9pbnY2NHxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVE X0lhZGMsICAgICAgICAgT19FYiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2ludjY0fFBf YXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSXNiYiwgICAgICAg ICBPX0ViLCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfaW52NjR8UF9hc298UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiAwNCAqLyAgeyBVRF9JYW5kLCAgICAgICAgIE9fRWIsICAgIE9f SWIsICAgIE9fTk9ORSwgIFBfYzF8UF9pbnY2NHxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIDA1ICovICB7IFVEX0lzdWIsICAgICAgICAgT19FYiwgICAgT19JYiwgICAgT19OT05F LCAgUF9jMXxQX2ludjY0fFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDYgKi8g IHsgVURfSXhvciwgICAgICAgICBPX0ViLCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfaW52 NjR8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNyAqLyAgeyBVRF9JY21wLCAg ICAgICAgIE9fRWIsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfYzF8UF9pbnY2NHxQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJf XzFieXRlX19vcF84M19fcmVnWzhdID0gewogIC8qIDAwICovICB7IFVEX0lhZGQsICAgICAgICAg T19FdiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMSAqLyAgeyBVRF9Jb3IsICAgICAgICAgIE9fRXYsICAg IE9fSWIsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8 UF9yZXhiIH0sCiAgLyogMDIgKi8gIHsgVURfSWFkYywgICAgICAgICBPX0V2LCAgICBPX0liLCAg ICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIDAzICovICB7IFVEX0lzYmIsICAgICAgICAgT19FdiwgICAgT19JYiwgICAgT19OT05F LCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAw NCAqLyAgeyBVRF9JYW5kLCAgICAgICAgIE9fRXYsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfYzF8 UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDUgKi8gIHsg VURfSXN1YiwgICAgICAgICBPX0V2LCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBf b3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA2ICovICB7IFVEX0l4b3Is ICAgICAgICAgT19FdiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3Jl eHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNyAqLyAgeyBVRF9JY21wLCAgICAgICAg IE9fRXYsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9f MWJ5dGVfX29wXzhmX19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSXBvcCwgICAgICAgICBP X0V2LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfZGVmNjR8UF9kZXBNfFBfYXNvfFBfb3Nv fFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDIgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAwMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDA0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA3ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07Cgpz dGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wXzk4X19vc2l6ZVszXSA9 IHsKICAvKiAwMCAqLyAgeyBVRF9JY2J3LCAgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9O RSwgIFBfb3NvfFBfcmV4dyB9LAogIC8qIDAxICovICB7IFVEX0ljd2RlLCAgICAgICAgT19OT05F LCAgT19OT05FLCAgT19OT05FLCAgUF9vc298UF9yZXh3IH0sCiAgLyogMDIgKi8gIHsgVURfSWNk cWUsICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX29zb3xQX3JleHcgfSwKfTsK CnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfOTlfX29zaXplWzNd ID0gewogIC8qIDAwICovICB7IFVEX0ljd2QsICAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19O T05FLCAgUF9vc298UF9yZXh3IH0sCiAgLyogMDEgKi8gIHsgVURfSWNkcSwgICAgICAgICBPX05P TkUsICBPX05PTkUsICBPX05PTkUsICBQX29zb3xQX3JleHcgfSwKICAvKiAwMiAqLyAgeyBVRF9J Y3FvLCAgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfb3NvfFBfcmV4dyB9LAp9 OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF85Y19fbW9kZVsz XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZ3JwX29zaXplLCAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIElUQUJfXzFCWVRFX19PUF85Q19fTU9ERV9fT1BfMDBfX09TSVpFIH0sCiAgLyogMDEg Ki8gIHsgVURfSWdycF9vc2l6ZSwgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18x QllURV9fT1BfOUNfX01PREVfX09QXzAxX19PU0laRSB9LAogIC8qIDAyICovICB7IFVEX0lwdXNo ZnEsICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9kZWY2NHxQX29zb3xQX3JleHcg fSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfOWNfX21v ZGVfX29wXzAwX19vc2l6ZVszXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JcHVzaGZ3LCAgICAgIE9f Tk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfZGVmNjR8UF9vc28gfSwKICAvKiAwMSAqLyAgeyBV RF9JcHVzaGZkLCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfZGVmNjR8UF9vc28g fSwKICAvKiAwMiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRl X19vcF85Y19fbW9kZV9fb3BfMDFfX29zaXplWzNdID0gewogIC8qIDAwICovICB7IFVEX0lwdXNo ZncsICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9kZWY2NHxQX29zbyB9LAogIC8q IDAxICovICB7IFVEX0lwdXNoZmQsICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9k ZWY2NHxQX29zbyB9LAogIC8qIDAyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkg aXRhYl9fMWJ5dGVfX29wXzlkX19tb2RlWzNdID0gewogIC8qIDAwICovICB7IFVEX0lncnBfb3Np emUsICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QXzlEX19NT0RF X19PUF8wMF9fT1NJWkUgfSwKICAvKiAwMSAqLyAgeyBVRF9JZ3JwX29zaXplLCAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF85RF9fTU9ERV9fT1BfMDFfX09TSVpF IH0sCiAgLyogMDIgKi8gIHsgVURfSXBvcGZxLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05P TkUsICBQX2RlZjY0fFBfZGVwTXxQX29zbyB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2Vu dHJ5IGl0YWJfXzFieXRlX19vcF85ZF9fbW9kZV9fb3BfMDBfX29zaXplWzNdID0gewogIC8qIDAw ICovICB7IFVEX0lwb3BmdywgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9kZWY2 NHxQX2RlcE18UF9vc28gfSwKICAvKiAwMSAqLyAgeyBVRF9JcG9wZmQsICAgICAgIE9fTk9ORSwg IE9fTk9ORSwgIE9fTk9ORSwgIFBfZGVmNjR8UF9kZXBNfFBfb3NvIH0sCiAgLyogMDIgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKfTsK CnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfOWRfX21vZGVfX29w XzAxX19vc2l6ZVszXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JcG9wZncsICAgICAgIE9fTk9ORSwg IE9fTk9ORSwgIE9fTk9ORSwgIFBfZGVmNjR8UF9kZXBNfFBfb3NvIH0sCiAgLyogMDEgKi8gIHsg VURfSXBvcGZkLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX2RlZjY0fFBfZGVw TXxQX29zbyB9LAogIC8qIDAyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRh Yl9fMWJ5dGVfX29wX2E1X19vc2l6ZVszXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JbW92c3csICAg ICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfSW1wQWRkcnxQX29zb3xQX3JleHcgfSwK ICAvKiAwMSAqLyAgeyBVRF9JbW92c2QsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwg IFBfSW1wQWRkcnxQX29zb3xQX3JleHcgfSwKICAvKiAwMiAqLyAgeyBVRF9JbW92c3EsICAgICAg IE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfSW1wQWRkcnxQX29zb3xQX3JleHcgfSwKfTsK CnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfYTdfX29zaXplWzNd ID0gewogIC8qIDAwICovICB7IFVEX0ljbXBzdywgICAgICAgT19OT05FLCAgT19OT05FLCAgT19O T05FLCAgUF9vc298UF9yZXh3IH0sCiAgLyogMDEgKi8gIHsgVURfSWNtcHNkLCAgICAgICBPX05P TkUsICBPX05PTkUsICBPX05PTkUsICBQX29zb3xQX3JleHcgfSwKICAvKiAwMiAqLyAgeyBVRF9J Y21wc3EsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfb3NvfFBfcmV4dyB9LAp9 OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9hYl9fb3NpemVb M10gPSB7CiAgLyogMDAgKi8gIHsgVURfSXN0b3N3LCAgICAgICBPX05PTkUsICBPX05PTkUsICBP X05PTkUsICBQX0ltcEFkZHJ8UF9vc298UF9yZXh3IH0sCiAgLyogMDEgKi8gIHsgVURfSXN0b3Nk LCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX0ltcEFkZHJ8UF9vc298UF9yZXh3 IH0sCiAgLyogMDIgKi8gIHsgVURfSXN0b3NxLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05P TkUsICBQX0ltcEFkZHJ8UF9vc298UF9yZXh3IH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJf ZW50cnkgaXRhYl9fMWJ5dGVfX29wX2FkX19vc2l6ZVszXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9J bG9kc3csICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfSW1wQWRkcnxQX29zb3xQ X3JleHcgfSwKICAvKiAwMSAqLyAgeyBVRF9JbG9kc2QsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwg IE9fTk9ORSwgIFBfSW1wQWRkcnxQX29zb3xQX3JleHcgfSwKICAvKiAwMiAqLyAgeyBVRF9JbG9k c3EsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfSW1wQWRkcnxQX29zb3xQX3Jl eHcgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfYWVf X21vZFsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9BRV9fTU9EX19PUF8wMF9fUkVHIH0sCiAgLyog MDEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfYWVf X21vZF9fb3BfMDBfX3JlZ1s4XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZnhzYXZlLCAgICAgIE9f TSwgICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDAxICovICB7IFVEX0lmeHJzdG9yLCAgICAgT19NLCAgICAgT19OT05FLCAgT19O T05FLCAgUF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDIgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAwMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDA0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA3ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07Cgpz dGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wX2FmX19vc2l6ZVszXSA9 IHsKICAvKiAwMCAqLyAgeyBVRF9Jc2Nhc3csICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9O RSwgIFBfb3NvfFBfcmV4dyB9LAogIC8qIDAxICovICB7IFVEX0lzY2FzZCwgICAgICAgT19OT05F LCAgT19OT05FLCAgT19OT05FLCAgUF9vc298UF9yZXh3IH0sCiAgLyogMDIgKi8gIHsgVURfSXNj YXNxLCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX29zb3xQX3JleHcgfSwKfTsK CnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfYzBfX3JlZ1s4XSA9 IHsKICAvKiAwMCAqLyAgeyBVRF9Jcm9sLCAgICAgICAgIE9fRWIsICAgIE9fSWIsICAgIE9fTk9O RSwgIFBfYzF8UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDEgKi8g IHsgVURfSXJvciwgICAgICAgICBPX0ViLCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNv fFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVEX0lyY2wsICAg ICAgICAgT19FYiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMyAqLyAgeyBVRF9JcmNyLCAgICAgICAgIE9fRWIsICAg IE9fSWIsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCiAgLyogMDQgKi8gIHsgVURfSXNobCwgICAgICAgICBPX0ViLCAgICBPX0liLCAgICBPX05P TkUsICBQX2MxfFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA1ICov ICB7IFVEX0lzaHIsICAgICAgICAgT19FYiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fz b3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNiAqLyAgeyBVRF9Jc2hsLCAg ICAgICAgIE9fRWIsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXh3fFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDcgKi8gIHsgVURfSXNhciwgICAgICAgICBPX0ViLCAg ICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9jMV9f cmVnWzhdID0gewogIC8qIDAwICovICB7IFVEX0lyb2wsICAgICAgICAgT19FdiwgICAgT19JYiwg ICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiAwMSAqLyAgeyBVRF9Jcm9yLCAgICAgICAgIE9fRXYsICAgIE9fSWIsICAgIE9fTk9O RSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyog MDIgKi8gIHsgVURfSXJjbCwgICAgICAgICBPX0V2LCAgICBPX0liLCAgICBPX05PTkUsICBQX2Mx fFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAzICovICB7 IFVEX0lyY3IsICAgICAgICAgT19FdiwgICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQ X29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNCAqLyAgeyBVRF9Jc2hs LCAgICAgICAgIE9fRXYsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9y ZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDUgKi8gIHsgVURfSXNociwgICAgICAg ICBPX0V2LCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA2ICovICB7IFVEX0lzaGwsICAgICAgICAgT19Fdiwg ICAgT19JYiwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4 eHxQX3JleGIgfSwKICAvKiAwNyAqLyAgeyBVRF9Jc2FyLCAgICAgICAgIE9fRXYsICAgIE9fSWIs ICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wX2M2X19y ZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSW1vdiwgICAgICAgICBPX0ViLCAgICBPX0liLCAg ICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8q IDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMDIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAwMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA0ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAw NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDA3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5 dGVfX29wX2M3X19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSW1vdiwgICAgICAgICBPX0V2 LCAgICBPX0l6LCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDIgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMyAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA0ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMDUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0 YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wX2NmX19vc2l6ZVszXSA9IHsKICAvKiAwMCAqLyAgeyBV RF9JaXJldHcsICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfb3NvfFBfcmV4dyB9 LAogIC8qIDAxICovICB7IFVEX0lpcmV0ZCwgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05F LCAgUF9vc298UF9yZXh3IH0sCiAgLyogMDIgKi8gIHsgVURfSWlyZXRxLCAgICAgICBPX05PTkUs ICBPX05PTkUsICBPX05PTkUsICBQX29zb3xQX3JleHcgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRf aXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfZDBfX3JlZ1s4XSA9IHsKICAvKiAwMCAqLyAgeyBV RF9Jcm9sLCAgICAgICAgIE9fRWIsICAgIE9fSTEsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9y ZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDEgKi8gIHsgVURfSXJvciwgICAgICAg ICBPX0ViLCAgICBPX0kxLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVEX0lyY2wsICAgICAgICAgT19FYiwgICAgT19J MSwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiAwMyAqLyAgeyBVRF9JcmNyLCAgICAgICAgIE9fRWIsICAgIE9fSTEsICAgIE9fTk9ORSwg IFBfYzF8UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDQgKi8gIHsg VURfSXNobCwgICAgICAgICBPX0ViLCAgICBPX0kxLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBf cmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA1ICovICB7IFVEX0lzaHIsICAgICAg ICAgT19FYiwgICAgT19JMSwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiAwNiAqLyAgeyBVRF9Jc2hsLCAgICAgICAgIE9fRWIsICAgIE9f STEsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogMDcgKi8gIHsgVURfSXNhciwgICAgICAgICBPX0ViLCAgICBPX0kxLCAgICBPX05PTkUs ICBQX2MxfFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAp9OwoKc3RhdGljIHN0 cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9kMV9fcmVnWzhdID0gewogIC8qIDAw ICovICB7IFVEX0lyb2wsICAgICAgICAgT19FdiwgICAgT19JMSwgICAgT19OT05FLCAgUF9jMXxQ X2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMSAqLyAgeyBV RF9Jcm9yLCAgICAgICAgIE9fRXYsICAgIE9fSTEsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9v c298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDIgKi8gIHsgVURfSXJjbCwg ICAgICAgICBPX0V2LCAgICBPX0kxLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4 d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAzICovICB7IFVEX0lyY3IsICAgICAgICAg T19FdiwgICAgT19JMSwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNCAqLyAgeyBVRF9Jc2hsLCAgICAgICAgIE9fRXYsICAg IE9fSTEsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8 UF9yZXhiIH0sCiAgLyogMDUgKi8gIHsgVURfSXNociwgICAgICAgICBPX0V2LCAgICBPX0kxLCAg ICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIDA2ICovICB7IFVEX0lzaGwsICAgICAgICAgT19FdiwgICAgT19JMSwgICAgT19OT05F LCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAw NyAqLyAgeyBVRF9Jc2FyLCAgICAgICAgIE9fRXYsICAgIE9fSTEsICAgIE9fTk9ORSwgIFBfYzF8 UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCn07CgpzdGF0aWMgc3Ry dWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wX2QyX19yZWdbOF0gPSB7CiAgLyogMDAg Ki8gIHsgVURfSXJvbCwgICAgICAgICBPX0ViLCAgICBPX0NMLCAgICBPX05PTkUsICBQX2MxfFBf YXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lyb3Is ICAgICAgICAgT19FYiwgICAgT19DTCwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8UF9y ZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMiAqLyAgeyBVRF9JcmNsLCAgICAgICAgIE9fRWIs ICAgIE9fQ0wsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSXJjciwgICAgICAgICBPX0ViLCAgICBPX0NMLCAgICBP X05PTkUsICBQX2MxfFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA0 ICovICB7IFVEX0lzaGwsICAgICAgICAgT19FYiwgICAgT19DTCwgICAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNSAqLyAgeyBVRF9Jc2hyLCAgICAgICAgIE9f RWIsICAgIE9fQ0wsICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDA2ICovICB7IFVEX0lzaGwsICAgICAgICAgT19FYiwgICAgT19DTCwgICAgT19O T05FLCAgUF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDcgKi8gIHsg VURfSXNhciwgICAgICAgICBPX0ViLCAgICBPX0NMLCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHd8 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBp dGFiX18xYnl0ZV9fb3BfZDNfX3JlZ1s4XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9Jcm9sLCAgICAg ICAgIE9fRXYsICAgIE9fQ0wsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDEgKi8gIHsgVURfSXJvciwgICAgICAgICBPX0V2 LCAgICBPX0NMLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVEX0lyY2wsICAgICAgICAgT19FdiwgICAgT19D TCwgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3Jl eGIgfSwKICAvKiAwMyAqLyAgeyBVRF9JcmNyLCAgICAgICAgIE9fRXYsICAgIE9fQ0wsICAgIE9f Tk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogMDQgKi8gIHsgVURfSXNobCwgICAgICAgICBPX0V2LCAgICBPX0NMLCAgICBPX05PTkUsICBQ X2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA1ICov ICB7IFVEX0lzaHIsICAgICAgICAgT19FdiwgICAgT19DTCwgICAgT19OT05FLCAgUF9jMXxQX2Fz b3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNiAqLyAgeyBVRF9J c2hsLCAgICAgICAgIE9fRXYsICAgIE9fQ0wsICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298 UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDcgKi8gIHsgVURfSXNhciwgICAg ICAgICBPX0V2LCAgICBPX0NMLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0 YWJfXzFieXRlX19vcF9kOF9fbW9kWzJdID0gewogIC8qIDAwICovICB7IFVEX0lncnBfcmVnLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09QX0Q4X19NT0RfX09Q XzAwX19SRUcgfSwKICAvKiAwMSAqLyAgeyBVRF9JZ3JwX3g4NywgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9EOF9fTU9EX19PUF8wMV9fWDg3IH0sCn07Cgpz dGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wX2Q4X19tb2RfX29wXzAw X19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWZhZGQsICAgICAgICBPX01kLCAgICBPX05P TkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDEg Ki8gIHsgVURfSWZtdWwsICAgICAgICBPX01kLCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBf YXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDIgKi8gIHsgVURfSWZjb20sICAgICAg ICBPX01kLCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSWZjb21wLCAgICAgICBPX01kLCAgICBPX05PTkUsICBP X05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDQgKi8gIHsg VURfSWZzdWIsICAgICAgICBPX01kLCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDUgKi8gIHsgVURfSWZzdWJyLCAgICAgICBPX01k LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogMDYgKi8gIHsgVURfSWZkaXYsICAgICAgICBPX01kLCAgICBPX05PTkUsICBPX05PTkUs ICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDcgKi8gIHsgVURfSWZk aXZyLCAgICAgICBPX01kLCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQ X3JleHh8UF9yZXhiIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5 dGVfX29wX2Q4X19tb2RfX29wXzAxX194ODdbNjRdID0gewogIC8qIDAwICovICB7IFVEX0lmYWRk LCAgICAgICAgT19TVDAsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDEgKi8g IHsgVURfSWZhZGQsICAgICAgICBPX1NUMCwgICBPX1NUMSwgICBPX05PTkUsICBQX25vbmUgfSwK ICAvKiAwMiAqLyAgeyBVRF9JZmFkZCwgICAgICAgIE9fU1QwLCAgIE9fU1QyLCAgIE9fTk9ORSwg IFBfbm9uZSB9LAogIC8qIDAzICovICB7IFVEX0lmYWRkLCAgICAgICAgT19TVDAsICAgT19TVDMs ICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDQgKi8gIHsgVURfSWZhZGQsICAgICAgICBPX1NU MCwgICBPX1NUNCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNSAqLyAgeyBVRF9JZmFkZCwg ICAgICAgIE9fU1QwLCAgIE9fU1Q1LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA2ICovICB7 IFVEX0lmYWRkLCAgICAgICAgT19TVDAsICAgT19TVDYsICAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMDcgKi8gIHsgVURfSWZhZGQsICAgICAgICBPX1NUMCwgICBPX1NUNywgICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiAwOCAqLyAgeyBVRF9JZm11bCwgICAgICAgIE9fU1QwLCAgIE9fU1QwLCAg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA5ICovICB7IFVEX0lmbXVsLCAgICAgICAgT19TVDAs ICAgT19TVDEsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEEgKi8gIHsgVURfSWZtdWwsICAg ICAgICBPX1NUMCwgICBPX1NUMiwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwQiAqLyAgeyBV RF9JZm11bCwgICAgICAgIE9fU1QwLCAgIE9fU1QzLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDBDICovICB7IFVEX0lmbXVsLCAgICAgICAgT19TVDAsICAgT19TVDQsICAgT19OT05FLCAgUF9u b25lIH0sCiAgLyogMEQgKi8gIHsgVURfSWZtdWwsICAgICAgICBPX1NUMCwgICBPX1NUNSwgICBP X05PTkUsICBQX25vbmUgfSwKICAvKiAwRSAqLyAgeyBVRF9JZm11bCwgICAgICAgIE9fU1QwLCAg IE9fU1Q2LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBGICovICB7IFVEX0lmbXVsLCAgICAg ICAgT19TVDAsICAgT19TVDcsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTAgKi8gIHsgVURf SWZjb20sICAgICAgICBPX1NUMCwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAx MSAqLyAgeyBVRF9JZmNvbSwgICAgICAgIE9fU1QwLCAgIE9fU1QxLCAgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIDEyICovICB7IFVEX0lmY29tLCAgICAgICAgT19TVDAsICAgT19TVDIsICAgT19O T05FLCAgUF9ub25lIH0sCiAgLyogMTMgKi8gIHsgVURfSWZjb20sICAgICAgICBPX1NUMCwgICBP X1NUMywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxNCAqLyAgeyBVRF9JZmNvbSwgICAgICAg IE9fU1QwLCAgIE9fU1Q0LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDE1ICovICB7IFVEX0lm Y29tLCAgICAgICAgT19TVDAsICAgT19TVDUsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTYg Ki8gIHsgVURfSWZjb20sICAgICAgICBPX1NUMCwgICBPX1NUNiwgICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAxNyAqLyAgeyBVRF9JZmNvbSwgICAgICAgIE9fU1QwLCAgIE9fU1Q3LCAgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDE4ICovICB7IFVEX0lmY29tcCwgICAgICAgT19TVDAsICAgT19T VDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTkgKi8gIHsgVURfSWZjb21wLCAgICAgICBP X1NUMCwgICBPX1NUMSwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxQSAqLyAgeyBVRF9JZmNv bXAsICAgICAgIE9fU1QwLCAgIE9fU1QyLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFCICov ICB7IFVEX0lmY29tcCwgICAgICAgT19TVDAsICAgT19TVDMsICAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogMUMgKi8gIHsgVURfSWZjb21wLCAgICAgICBPX1NUMCwgICBPX1NUNCwgICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiAxRCAqLyAgeyBVRF9JZmNvbXAsICAgICAgIE9fU1QwLCAgIE9fU1Q1 LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFFICovICB7IFVEX0lmY29tcCwgICAgICAgT19T VDAsICAgT19TVDYsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMUYgKi8gIHsgVURfSWZjb21w LCAgICAgICBPX1NUMCwgICBPX1NUNywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyMCAqLyAg eyBVRF9JZnN1YiwgICAgICAgIE9fU1QwLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDIxICovICB7IFVEX0lmc3ViLCAgICAgICAgT19TVDAsICAgT19TVDEsICAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogMjIgKi8gIHsgVURfSWZzdWIsICAgICAgICBPX1NUMCwgICBPX1NUMiwg ICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyMyAqLyAgeyBVRF9JZnN1YiwgICAgICAgIE9fU1Qw LCAgIE9fU1QzLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDI0ICovICB7IFVEX0lmc3ViLCAg ICAgICAgT19TVDAsICAgT19TVDQsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjUgKi8gIHsg VURfSWZzdWIsICAgICAgICBPX1NUMCwgICBPX1NUNSwgICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAyNiAqLyAgeyBVRF9JZnN1YiwgICAgICAgIE9fU1QwLCAgIE9fU1Q2LCAgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDI3ICovICB7IFVEX0lmc3ViLCAgICAgICAgT19TVDAsICAgT19TVDcsICAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogMjggKi8gIHsgVURfSWZzdWJyLCAgICAgICBPX1NUMCwg ICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyOSAqLyAgeyBVRF9JZnN1YnIsICAg ICAgIE9fU1QwLCAgIE9fU1QxLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDJBICovICB7IFVE X0lmc3ViciwgICAgICAgT19TVDAsICAgT19TVDIsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyog MkIgKi8gIHsgVURfSWZzdWJyLCAgICAgICBPX1NUMCwgICBPX1NUMywgICBPX05PTkUsICBQX25v bmUgfSwKICAvKiAyQyAqLyAgeyBVRF9JZnN1YnIsICAgICAgIE9fU1QwLCAgIE9fU1Q0LCAgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDJEICovICB7IFVEX0lmc3ViciwgICAgICAgT19TVDAsICAg T19TVDUsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkUgKi8gIHsgVURfSWZzdWJyLCAgICAg ICBPX1NUMCwgICBPX1NUNiwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyRiAqLyAgeyBVRF9J ZnN1YnIsICAgICAgIE9fU1QwLCAgIE9fU1Q3LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDMw ICovICB7IFVEX0lmZGl2LCAgICAgICAgT19TVDAsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogMzEgKi8gIHsgVURfSWZkaXYsICAgICAgICBPX1NUMCwgICBPX1NUMSwgICBPX05P TkUsICBQX25vbmUgfSwKICAvKiAzMiAqLyAgeyBVRF9JZmRpdiwgICAgICAgIE9fU1QwLCAgIE9f U1QyLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDMzICovICB7IFVEX0lmZGl2LCAgICAgICAg T19TVDAsICAgT19TVDMsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMzQgKi8gIHsgVURfSWZk aXYsICAgICAgICBPX1NUMCwgICBPX1NUNCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzNSAq LyAgeyBVRF9JZmRpdiwgICAgICAgIE9fU1QwLCAgIE9fU1Q1LCAgIE9fTk9ORSwgIFBfbm9uZSB9 LAogIC8qIDM2ICovICB7IFVEX0lmZGl2LCAgICAgICAgT19TVDAsICAgT19TVDYsICAgT19OT05F LCAgUF9ub25lIH0sCiAgLyogMzcgKi8gIHsgVURfSWZkaXYsICAgICAgICBPX1NUMCwgICBPX1NU NywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzOCAqLyAgeyBVRF9JZmRpdnIsICAgICAgIE9f U1QwLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDM5ICovICB7IFVEX0lmZGl2 ciwgICAgICAgT19TVDAsICAgT19TVDEsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogM0EgKi8g IHsgVURfSWZkaXZyLCAgICAgICBPX1NUMCwgICBPX1NUMiwgICBPX05PTkUsICBQX25vbmUgfSwK ICAvKiAzQiAqLyAgeyBVRF9JZmRpdnIsICAgICAgIE9fU1QwLCAgIE9fU1QzLCAgIE9fTk9ORSwg IFBfbm9uZSB9LAogIC8qIDNDICovICB7IFVEX0lmZGl2ciwgICAgICAgT19TVDAsICAgT19TVDQs ICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogM0QgKi8gIHsgVURfSWZkaXZyLCAgICAgICBPX1NU MCwgICBPX1NUNSwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzRSAqLyAgeyBVRF9JZmRpdnIs ICAgICAgIE9fU1QwLCAgIE9fU1Q2LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDNGICovICB7 IFVEX0lmZGl2ciwgICAgICAgT19TVDAsICAgT19TVDcsICAgT19OT05FLCAgUF9ub25lIH0sCn07 CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wX2Q5X19tb2RbMl0g PSB7CiAgLyogMDAgKi8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBJVEFCX18xQllURV9fT1BfRDlfX01PRF9fT1BfMDBfX1JFRyB9LAogIC8qIDAxICovICB7 IFVEX0lncnBfeDg3LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVf X09QX0Q5X19NT0RfX09QXzAxX19YODcgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRy eSBpdGFiX18xYnl0ZV9fb3BfZDlfX21vZF9fb3BfMDBfX3JlZ1s4XSA9IHsKICAvKiAwMCAqLyAg eyBVRF9JZmxkLCAgICAgICAgIE9fTWQsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAyICovICB7IFVEX0lmc3Qs ICAgICAgICAgT19NZCwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDAzICovICB7IFVEX0lmc3RwLCAgICAgICAgT19NZCwgICAgT19O T05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA0 ICovICB7IFVEX0lmbGRlbnYsICAgICAgT19NLCAgICAgT19OT05FLCAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNSAqLyAgeyBVRF9JZmxkY3csICAgICAgIE9f TXcsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiAwNiAqLyAgeyBVRF9JZm5zdGVudiwgICAgIE9fTSwgICAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDcgKi8gIHsgVURfSWZuc3Rj dywgICAgICBPX013LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVf X29wX2Q5X19tb2RfX29wXzAxX194ODdbNjRdID0gewogIC8qIDAwICovICB7IFVEX0lmbGQsICAg ICAgICAgT19TVDAsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsg VURfSWZsZCwgICAgICAgICBPX1NUMCwgICBPX1NUMSwgICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAwMiAqLyAgeyBVRF9JZmxkLCAgICAgICAgIE9fU1QwLCAgIE9fU1QyLCAgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDAzICovICB7IFVEX0lmbGQsICAgICAgICAgT19TVDAsICAgT19TVDMsICAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogMDQgKi8gIHsgVURfSWZsZCwgICAgICAgICBPX1NUMCwg ICBPX1NUNCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNSAqLyAgeyBVRF9JZmxkLCAgICAg ICAgIE9fU1QwLCAgIE9fU1Q1LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA2ICovICB7IFVE X0lmbGQsICAgICAgICAgT19TVDAsICAgT19TVDYsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyog MDcgKi8gIHsgVURfSWZsZCwgICAgICAgICBPX1NUMCwgICBPX1NUNywgICBPX05PTkUsICBQX25v bmUgfSwKICAvKiAwOCAqLyAgeyBVRF9JZnhjaCwgICAgICAgIE9fU1QwLCAgIE9fU1QwLCAgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDA5ICovICB7IFVEX0lmeGNoLCAgICAgICAgT19TVDAsICAg T19TVDEsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEEgKi8gIHsgVURfSWZ4Y2gsICAgICAg ICBPX1NUMCwgICBPX1NUMiwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwQiAqLyAgeyBVRF9J ZnhjaCwgICAgICAgIE9fU1QwLCAgIE9fU1QzLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBD ICovICB7IFVEX0lmeGNoLCAgICAgICAgT19TVDAsICAgT19TVDQsICAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogMEQgKi8gIHsgVURfSWZ4Y2gsICAgICAgICBPX1NUMCwgICBPX1NUNSwgICBPX05P TkUsICBQX25vbmUgfSwKICAvKiAwRSAqLyAgeyBVRF9JZnhjaCwgICAgICAgIE9fU1QwLCAgIE9f U1Q2LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBGICovICB7IFVEX0lmeGNoLCAgICAgICAg T19TVDAsICAgT19TVDcsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTAgKi8gIHsgVURfSWZu b3AsICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxMSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDEyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogMTMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDE1ICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMTYgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiAxNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDE4ICovICB7IFVEX0lmc3RwMSwgICAgICAgT19TVDAsICAgT19OT05F LCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTkgKi8gIHsgVURfSWZzdHAxLCAgICAgICBPX1NU MSwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxQSAqLyAgeyBVRF9JZnN0cDEs ICAgICAgIE9fU1QyLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFCICovICB7 IFVEX0lmc3RwMSwgICAgICAgT19TVDMsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMUMgKi8gIHsgVURfSWZzdHAxLCAgICAgICBPX1NUNCwgICBPX05PTkUsICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiAxRCAqLyAgeyBVRF9JZnN0cDEsICAgICAgIE9fU1Q1LCAgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFFICovICB7IFVEX0lmc3RwMSwgICAgICAgT19TVDYs ICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMUYgKi8gIHsgVURfSWZzdHAxLCAg ICAgICBPX1NUNywgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyMCAqLyAgeyBV RF9JZmNocywgICAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDIxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMjIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAyMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI0ICovICB7IFVEX0lmdHN0LCAgICAg ICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjUgKi8gIHsgVURf SWZ4YW0sICAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAy NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDI3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMjggKi8gIHsgVURfSWZsZDEsICAgICAgICBPX05PTkUsICBP X05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyOSAqLyAgeyBVRF9JZmxkbDJ0LCAgICAg IE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDJBICovICB7IFVEX0lm bGRsMmUsICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkIg Ki8gIHsgVURfSWZsZGxwaSwgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAyQyAqLyAgeyBVRF9JZmxkbGcyLCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDJEICovICB7IFVEX0lmbGRsbjIsICAgICAgT19OT05FLCAgT19O T05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkUgKi8gIHsgVURfSWZsZHosICAgICAgICBP X05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyRiAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDMwICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMzEgKi8gIHsgVURfSWZ5bDJ4LCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiAzMiAqLyAgeyBVRF9JZnB0YW4sICAgICAgIE9fTk9ORSwgIE9fTk9O RSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDMzICovICB7IFVEX0lmcGF0YW4sICAgICAgT19O T05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMzQgKi8gIHsgVURfSWZweHRy YWN0LCAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzNSAqLyAg eyBVRF9JZnByZW0xLCAgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDM2ICovICB7IFVEX0lmZGVjc3RwLCAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogMzcgKi8gIHsgVURfSWZuY3N0cCwgICAgICBPX05PTkUsICBPX05PTkUs ICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzOCAqLyAgeyBVRF9JZnByZW0sICAgICAgIE9fTk9O RSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDM5ICovICB7IFVEX0lmeWwyeHAx LCAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogM0EgKi8gIHsg VURfSWZzcXJ0LCAgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAzQiAqLyAgeyBVRF9JZnNpbmNvcywgICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDNDICovICB7IFVEX0lmcm5kaW50LCAgICAgT19OT05FLCAgT19OT05FLCAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogM0QgKi8gIHsgVURfSWZzY2FsZSwgICAgICBPX05PTkUs ICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzRSAqLyAgeyBVRF9JZnNpbiwgICAg ICAgIE9fTk9ORSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDNGICovICB7IFVE X0lmY29zLCAgICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCn07Cgpz dGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29wX2RhX19tb2RbMl0gPSB7 CiAgLyogMDAgKi8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBJVEFCX18xQllURV9fT1BfREFfX01PRF9fT1BfMDBfX1JFRyB9LAogIC8qIDAxICovICB7IFVE X0lncnBfeDg3LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVfX09Q X0RBX19NT0RfX09QXzAxX19YODcgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBp dGFiX18xYnl0ZV9fb3BfZGFfX21vZF9fb3BfMDBfX3JlZ1s4XSA9IHsKICAvKiAwMCAqLyAgeyBV RF9JZmlhZGQsICAgICAgIE9fTWQsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9y ZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMSAqLyAgeyBVRF9JZmltdWwsICAgICAgIE9fTWQs ICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiAwMiAqLyAgeyBVRF9JZmljb20sICAgICAgIE9fTWQsICAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMyAqLyAgeyBVRF9JZmlj b21wLCAgICAgIE9fTWQsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiAwNCAqLyAgeyBVRF9JZmlzdWIsICAgICAgIE9fTWQsICAgIE9f Tk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAw NSAqLyAgeyBVRF9JZmlzdWJyLCAgICAgIE9fTWQsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8 UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNiAqLyAgeyBVRF9JZmlkaXYsICAg ICAgIE9fTWQsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKICAvKiAwNyAqLyAgeyBVRF9JZmlkaXZyLCAgICAgIE9fTWQsICAgIE9fTk9ORSwg IE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKfTsKCnN0YXRpYyBz dHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfZGFfX21vZF9fb3BfMDFfX3g4N1s2 NF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWZjbW92YiwgICAgICBPX1NUMCwgICBPX1NUMCwgICBP X05PTkUsICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9JZmNtb3ZiLCAgICAgIE9fU1QwLCAg IE9fU1QxLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAyICovICB7IFVEX0lmY21vdmIsICAg ICAgT19TVDAsICAgT19TVDIsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDMgKi8gIHsgVURf SWZjbW92YiwgICAgICBPX1NUMCwgICBPX1NUMywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAw NCAqLyAgeyBVRF9JZmNtb3ZiLCAgICAgIE9fU1QwLCAgIE9fU1Q0LCAgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIDA1ICovICB7IFVEX0lmY21vdmIsICAgICAgT19TVDAsICAgT19TVDUsICAgT19O T05FLCAgUF9ub25lIH0sCiAgLyogMDYgKi8gIHsgVURfSWZjbW92YiwgICAgICBPX1NUMCwgICBP X1NUNiwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9JZmNtb3ZiLCAgICAg IE9fU1QwLCAgIE9fU1Q3LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA4ICovICB7IFVEX0lm Y21vdmUsICAgICAgT19TVDAsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDkg Ki8gIHsgVURfSWZjbW92ZSwgICAgICBPX1NUMCwgICBPX1NUMSwgICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAwQSAqLyAgeyBVRF9JZmNtb3ZlLCAgICAgIE9fU1QwLCAgIE9fU1QyLCAgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDBCICovICB7IFVEX0lmY21vdmUsICAgICAgT19TVDAsICAgT19T VDMsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEMgKi8gIHsgVURfSWZjbW92ZSwgICAgICBP X1NUMCwgICBPX1NUNCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwRCAqLyAgeyBVRF9JZmNt b3ZlLCAgICAgIE9fU1QwLCAgIE9fU1Q1LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBFICov ICB7IFVEX0lmY21vdmUsICAgICAgT19TVDAsICAgT19TVDYsICAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogMEYgKi8gIHsgVURfSWZjbW92ZSwgICAgICBPX1NUMCwgICBPX1NUNywgICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiAxMCAqLyAgeyBVRF9JZmNtb3ZiZSwgICAgIE9fU1QwLCAgIE9fU1Qw LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDExICovICB7IFVEX0lmY21vdmJlLCAgICAgT19T VDAsICAgT19TVDEsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTIgKi8gIHsgVURfSWZjbW92 YmUsICAgICBPX1NUMCwgICBPX1NUMiwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxMyAqLyAg eyBVRF9JZmNtb3ZiZSwgICAgIE9fU1QwLCAgIE9fU1QzLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDE0ICovICB7IFVEX0lmY21vdmJlLCAgICAgT19TVDAsICAgT19TVDQsICAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogMTUgKi8gIHsgVURfSWZjbW92YmUsICAgICBPX1NUMCwgICBPX1NUNSwg ICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxNiAqLyAgeyBVRF9JZmNtb3ZiZSwgICAgIE9fU1Qw LCAgIE9fU1Q2LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDE3ICovICB7IFVEX0lmY21vdmJl LCAgICAgT19TVDAsICAgT19TVDcsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTggKi8gIHsg VURfSWZjbW92dSwgICAgICBPX1NUMCwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAxOSAqLyAgeyBVRF9JZmNtb3Z1LCAgICAgIE9fU1QwLCAgIE9fU1QxLCAgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDFBICovICB7IFVEX0lmY21vdnUsICAgICAgT19TVDAsICAgT19TVDIsICAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogMUIgKi8gIHsgVURfSWZjbW92dSwgICAgICBPX1NUMCwg ICBPX1NUMywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxQyAqLyAgeyBVRF9JZmNtb3Z1LCAg ICAgIE9fU1QwLCAgIE9fU1Q0LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFEICovICB7IFVE X0lmY21vdnUsICAgICAgT19TVDAsICAgT19TVDUsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyog MUUgKi8gIHsgVURfSWZjbW92dSwgICAgICBPX1NUMCwgICBPX1NUNiwgICBPX05PTkUsICBQX25v bmUgfSwKICAvKiAxRiAqLyAgeyBVRF9JZmNtb3Z1LCAgICAgIE9fU1QwLCAgIE9fU1Q3LCAgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDIwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjEgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyMiAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDIz ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMjQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAyNSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI2ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjcgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyOCAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDI5ICovICB7IFVEX0lmdWNvbXBwLCAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05F LCAgUF9ub25lIH0sCiAgLyogMkEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyQiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDJDICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMkQgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiAyRSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDJGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzMSAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDMyICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogMzMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiAzNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzYgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzNyAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDM4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMzkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAzQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNCICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0MgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAz RCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDNFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogM0YgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRy eSBpdGFiX18xYnl0ZV9fb3BfZGJfX21vZFsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZ3JwX3Jl ZywgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9EQl9fTU9E X19PUF8wMF9fUkVHIH0sCiAgLyogMDEgKi8gIHsgVURfSWdycF94ODcsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBJVEFCX18xQllURV9fT1BfREJfX01PRF9fT1BfMDFfX1g4NyB9LAp9 OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9kYl9fbW9kX19v cF8wMF9fcmVnWzhdID0gewogIC8qIDAwICovICB7IFVEX0lmaWxkLCAgICAgICAgT19NZCwgICAg T19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8q IDAxICovICB7IFVEX0lmaXN0dHAsICAgICAgT19NZCwgICAgT19OT05FLCAgT19OT05FLCAgUF9j MXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVEX0lmaXN0LCAg ICAgICAgT19NZCwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4 fFBfcmV4YiB9LAogIC8qIDAzICovICB7IFVEX0lmaXN0cCwgICAgICAgT19NZCwgICAgT19OT05F LCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA0ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMDUgKi8gIHsgVURfSWZsZCwgICAgICAgICBPX010LCAgICBPX05PTkUsICBPX05PTkUs ICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDYgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNyAq LyAgeyBVRF9JZnN0cCwgICAgICAgIE9fTXQsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9h c298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRy eSBpdGFiX18xYnl0ZV9fb3BfZGJfX21vZF9fb3BfMDFfX3g4N1s2NF0gPSB7CiAgLyogMDAgKi8g IHsgVURfSWZjbW92bmIsICAgICBPX1NUMCwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwK ICAvKiAwMSAqLyAgeyBVRF9JZmNtb3ZuYiwgICAgIE9fU1QwLCAgIE9fU1QxLCAgIE9fTk9ORSwg IFBfbm9uZSB9LAogIC8qIDAyICovICB7IFVEX0lmY21vdm5iLCAgICAgT19TVDAsICAgT19TVDIs ICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDMgKi8gIHsgVURfSWZjbW92bmIsICAgICBPX1NU MCwgICBPX1NUMywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNCAqLyAgeyBVRF9JZmNtb3Zu YiwgICAgIE9fU1QwLCAgIE9fU1Q0LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA1ICovICB7 IFVEX0lmY21vdm5iLCAgICAgT19TVDAsICAgT19TVDUsICAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMDYgKi8gIHsgVURfSWZjbW92bmIsICAgICBPX1NUMCwgICBPX1NUNiwgICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9JZmNtb3ZuYiwgICAgIE9fU1QwLCAgIE9fU1Q3LCAg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA4ICovICB7IFVEX0lmY21vdm5lLCAgICAgT19TVDAs ICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDkgKi8gIHsgVURfSWZjbW92bmUs ICAgICBPX1NUMCwgICBPX1NUMSwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwQSAqLyAgeyBV RF9JZmNtb3ZuZSwgICAgIE9fU1QwLCAgIE9fU1QyLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDBCICovICB7IFVEX0lmY21vdm5lLCAgICAgT19TVDAsICAgT19TVDMsICAgT19OT05FLCAgUF9u b25lIH0sCiAgLyogMEMgKi8gIHsgVURfSWZjbW92bmUsICAgICBPX1NUMCwgICBPX1NUNCwgICBP X05PTkUsICBQX25vbmUgfSwKICAvKiAwRCAqLyAgeyBVRF9JZmNtb3ZuZSwgICAgIE9fU1QwLCAg IE9fU1Q1LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBFICovICB7IFVEX0lmY21vdm5lLCAg ICAgT19TVDAsICAgT19TVDYsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEYgKi8gIHsgVURf SWZjbW92bmUsICAgICBPX1NUMCwgICBPX1NUNywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAx MCAqLyAgeyBVRF9JZmNtb3ZuYmUsICAgIE9fU1QwLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIDExICovICB7IFVEX0lmY21vdm5iZSwgICAgT19TVDAsICAgT19TVDEsICAgT19O T05FLCAgUF9ub25lIH0sCiAgLyogMTIgKi8gIHsgVURfSWZjbW92bmJlLCAgICBPX1NUMCwgICBP X1NUMiwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxMyAqLyAgeyBVRF9JZmNtb3ZuYmUsICAg IE9fU1QwLCAgIE9fU1QzLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDE0ICovICB7IFVEX0lm Y21vdm5iZSwgICAgT19TVDAsICAgT19TVDQsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTUg Ki8gIHsgVURfSWZjbW92bmJlLCAgICBPX1NUMCwgICBPX1NUNSwgICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAxNiAqLyAgeyBVRF9JZmNtb3ZuYmUsICAgIE9fU1QwLCAgIE9fU1Q2LCAgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDE3ICovICB7IFVEX0lmY21vdm5iZSwgICAgT19TVDAsICAgT19T VDcsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTggKi8gIHsgVURfSWZjbW92bnUsICAgICBP X1NUMCwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxOSAqLyAgeyBVRF9JZmNt b3ZudSwgICAgIE9fU1QwLCAgIE9fU1QxLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFBICov ICB7IFVEX0lmY21vdm51LCAgICAgT19TVDAsICAgT19TVDIsICAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogMUIgKi8gIHsgVURfSWZjbW92bnUsICAgICBPX1NUMCwgICBPX1NUMywgICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiAxQyAqLyAgeyBVRF9JZmNtb3ZudSwgICAgIE9fU1QwLCAgIE9fU1Q0 LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFEICovICB7IFVEX0lmY21vdm51LCAgICAgT19T VDAsICAgT19TVDUsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMUUgKi8gIHsgVURfSWZjbW92 bnUsICAgICBPX1NUMCwgICBPX1NUNiwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxRiAqLyAg eyBVRF9JZmNtb3ZudSwgICAgIE9fU1QwLCAgIE9fU1Q3LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDIwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogMjEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyMiAqLyAgeyBVRF9JZmNsZXgsICAgICAgIE9fTk9O RSwgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDIzICovICB7IFVEX0lmbmluaXQs ICAgICAgT19OT05FLCAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjQgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAyNSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDI2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyOCAqLyAgeyBVRF9JZnVjb21pLCAg ICAgIE9fU1QwLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDI5ICovICB7IFVE X0lmdWNvbWksICAgICAgT19TVDAsICAgT19TVDEsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyog MkEgKi8gIHsgVURfSWZ1Y29taSwgICAgICBPX1NUMCwgICBPX1NUMiwgICBPX05PTkUsICBQX25v bmUgfSwKICAvKiAyQiAqLyAgeyBVRF9JZnVjb21pLCAgICAgIE9fU1QwLCAgIE9fU1QzLCAgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDJDICovICB7IFVEX0lmdWNvbWksICAgICAgT19TVDAsICAg T19TVDQsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkQgKi8gIHsgVURfSWZ1Y29taSwgICAg ICBPX1NUMCwgICBPX1NUNSwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyRSAqLyAgeyBVRF9J ZnVjb21pLCAgICAgIE9fU1QwLCAgIE9fU1Q2LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDJG ICovICB7IFVEX0lmdWNvbWksICAgICAgT19TVDAsICAgT19TVDcsICAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogMzAgKi8gIHsgVURfSWZjb21pLCAgICAgICBPX1NUMCwgICBPX1NUMCwgICBPX05P TkUsICBQX25vbmUgfSwKICAvKiAzMSAqLyAgeyBVRF9JZmNvbWksICAgICAgIE9fU1QwLCAgIE9f U1QxLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDMyICovICB7IFVEX0lmY29taSwgICAgICAg T19TVDAsICAgT19TVDIsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMzMgKi8gIHsgVURfSWZj b21pLCAgICAgICBPX1NUMCwgICBPX1NUMywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzNCAq LyAgeyBVRF9JZmNvbWksICAgICAgIE9fU1QwLCAgIE9fU1Q0LCAgIE9fTk9ORSwgIFBfbm9uZSB9 LAogIC8qIDM1ICovICB7IFVEX0lmY29taSwgICAgICAgT19TVDAsICAgT19TVDUsICAgT19OT05F LCAgUF9ub25lIH0sCiAgLyogMzYgKi8gIHsgVURfSWZjb21pLCAgICAgICBPX1NUMCwgICBPX1NU NiwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzNyAqLyAgeyBVRF9JZmNvbWksICAgICAgIE9f U1QwLCAgIE9fU1Q3LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDM4ICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzkgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiAzQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDNCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0MgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzRCAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNFICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogM0YgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3Bf ZGNfX21vZFsyXSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZ3JwX3JlZywgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9EQ19fTU9EX19PUF8wMF9fUkVHIH0sCiAg LyogMDEgKi8gIHsgVURfSWdycF94ODcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJ VEFCX18xQllURV9fT1BfRENfX01PRF9fT1BfMDFfX1g4NyB9LAp9OwoKc3RhdGljIHN0cnVjdCB1 ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9kY19fbW9kX19vcF8wMF9fcmVnWzhdID0gewog IC8qIDAwICovICB7IFVEX0lmYWRkLCAgICAgICAgT19NcSwgICAgT19OT05FLCAgT19OT05FLCAg UF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lmbXVs LCAgICAgICAgT19NcSwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVEX0lmY29tLCAgICAgICAgT19NcSwgICAgT19O T05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDAz ICovICB7IFVEX0lmY29tcCwgICAgICAgT19NcSwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA0ICovICB7IFVEX0lmc3ViLCAgICAg ICAgT19NcSwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIDA1ICovICB7IFVEX0lmc3ViciwgICAgICAgT19NcSwgICAgT19OT05FLCAg T19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA2ICovICB7 IFVEX0lmZGl2LCAgICAgICAgT19NcSwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA3ICovICB7IFVEX0lmZGl2ciwgICAgICAgT19N cSwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9kY19fbW9k X19vcF8wMV9feDg3WzY0XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZmFkZCwgICAgICAgIE9fU1Qw LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lmYWRkLCAg ICAgICAgT19TVDEsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDIgKi8gIHsg VURfSWZhZGQsICAgICAgICBPX1NUMiwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAwMyAqLyAgeyBVRF9JZmFkZCwgICAgICAgIE9fU1QzLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDA0ICovICB7IFVEX0lmYWRkLCAgICAgICAgT19TVDQsICAgT19TVDAsICAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSWZhZGQsICAgICAgICBPX1NUNSwg ICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JZmFkZCwgICAg ICAgIE9fU1Q2LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA3ICovICB7IFVE X0lmYWRkLCAgICAgICAgT19TVDcsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyog MDggKi8gIHsgVURfSWZtdWwsICAgICAgICBPX1NUMCwgICBPX1NUMCwgICBPX05PTkUsICBQX25v bmUgfSwKICAvKiAwOSAqLyAgeyBVRF9JZm11bCwgICAgICAgIE9fU1QxLCAgIE9fU1QwLCAgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDBBICovICB7IFVEX0lmbXVsLCAgICAgICAgT19TVDIsICAg T19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEIgKi8gIHsgVURfSWZtdWwsICAgICAg ICBPX1NUMywgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwQyAqLyAgeyBVRF9J Zm11bCwgICAgICAgIE9fU1Q0LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBE ICovICB7IFVEX0lmbXVsLCAgICAgICAgT19TVDUsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogMEUgKi8gIHsgVURfSWZtdWwsICAgICAgICBPX1NUNiwgICBPX1NUMCwgICBPX05P TkUsICBQX25vbmUgfSwKICAvKiAwRiAqLyAgeyBVRF9JZm11bCwgICAgICAgIE9fU1Q3LCAgIE9f U1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDEwICovICB7IFVEX0lmY29tMiwgICAgICAg T19TVDAsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTEgKi8gIHsgVURfSWZj b20yLCAgICAgICBPX1NUMSwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxMiAq LyAgeyBVRF9JZmNvbTIsICAgICAgIE9fU1QyLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9 LAogIC8qIDEzICovICB7IFVEX0lmY29tMiwgICAgICAgT19TVDMsICAgT19OT05FLCAgT19OT05F LCAgUF9ub25lIH0sCiAgLyogMTQgKi8gIHsgVURfSWZjb20yLCAgICAgICBPX1NUNCwgICBPX05P TkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxNSAqLyAgeyBVRF9JZmNvbTIsICAgICAgIE9f U1Q1LCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDE2ICovICB7IFVEX0lmY29t MiwgICAgICAgT19TVDYsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTcgKi8g IHsgVURfSWZjb20yLCAgICAgICBPX1NUNywgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwK ICAvKiAxOCAqLyAgeyBVRF9JZmNvbXAzLCAgICAgIE9fU1QwLCAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfbm9uZSB9LAogIC8qIDE5ICovICB7IFVEX0lmY29tcDMsICAgICAgT19TVDEsICAgT19OT05F LCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMUEgKi8gIHsgVURfSWZjb21wMywgICAgICBPX1NU MiwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxQiAqLyAgeyBVRF9JZmNvbXAz LCAgICAgIE9fU1QzLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFDICovICB7 IFVEX0lmY29tcDMsICAgICAgT19TVDQsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMUQgKi8gIHsgVURfSWZjb21wMywgICAgICBPX1NUNSwgICBPX05PTkUsICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiAxRSAqLyAgeyBVRF9JZmNvbXAzLCAgICAgIE9fU1Q2LCAgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFGICovICB7IFVEX0lmY29tcDMsICAgICAgT19TVDcs ICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjAgKi8gIHsgVURfSWZzdWJyLCAg ICAgICBPX1NUMCwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyMSAqLyAgeyBV RF9JZnN1YnIsICAgICAgIE9fU1QxLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDIyICovICB7IFVEX0lmc3ViciwgICAgICAgT19TVDIsICAgT19TVDAsICAgT19OT05FLCAgUF9u b25lIH0sCiAgLyogMjMgKi8gIHsgVURfSWZzdWJyLCAgICAgICBPX1NUMywgICBPX1NUMCwgICBP X05PTkUsICBQX25vbmUgfSwKICAvKiAyNCAqLyAgeyBVRF9JZnN1YnIsICAgICAgIE9fU1Q0LCAg IE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDI1ICovICB7IFVEX0lmc3ViciwgICAg ICAgT19TVDUsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjYgKi8gIHsgVURf SWZzdWJyLCAgICAgICBPX1NUNiwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAy NyAqLyAgeyBVRF9JZnN1YnIsICAgICAgIE9fU1Q3LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIDI4ICovICB7IFVEX0lmc3ViLCAgICAgICAgT19TVDAsICAgT19TVDAsICAgT19O T05FLCAgUF9ub25lIH0sCiAgLyogMjkgKi8gIHsgVURfSWZzdWIsICAgICAgICBPX1NUMSwgICBP X1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyQSAqLyAgeyBVRF9JZnN1YiwgICAgICAg IE9fU1QyLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDJCICovICB7IFVEX0lm c3ViLCAgICAgICAgT19TVDMsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkMg Ki8gIHsgVURfSWZzdWIsICAgICAgICBPX1NUNCwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAyRCAqLyAgeyBVRF9JZnN1YiwgICAgICAgIE9fU1Q1LCAgIE9fU1QwLCAgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDJFICovICB7IFVEX0lmc3ViLCAgICAgICAgT19TVDYsICAgT19T VDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkYgKi8gIHsgVURfSWZzdWIsICAgICAgICBP X1NUNywgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzMCAqLyAgeyBVRF9JZmRp dnIsICAgICAgIE9fU1QwLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDMxICov ICB7IFVEX0lmZGl2ciwgICAgICAgT19TVDEsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogMzIgKi8gIHsgVURfSWZkaXZyLCAgICAgICBPX1NUMiwgICBPX1NUMCwgICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiAzMyAqLyAgeyBVRF9JZmRpdnIsICAgICAgIE9fU1QzLCAgIE9fU1Qw LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDM0ICovICB7IFVEX0lmZGl2ciwgICAgICAgT19T VDQsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMzUgKi8gIHsgVURfSWZkaXZy LCAgICAgICBPX1NUNSwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzNiAqLyAg eyBVRF9JZmRpdnIsICAgICAgIE9fU1Q2LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDM3ICovICB7IFVEX0lmZGl2ciwgICAgICAgT19TVDcsICAgT19TVDAsICAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogMzggKi8gIHsgVURfSWZkaXYsICAgICAgICBPX1NUMCwgICBPX1NUMCwg ICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzOSAqLyAgeyBVRF9JZmRpdiwgICAgICAgIE9fU1Qx LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDNBICovICB7IFVEX0lmZGl2LCAg ICAgICAgT19TVDIsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogM0IgKi8gIHsg VURfSWZkaXYsICAgICAgICBPX1NUMywgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAzQyAqLyAgeyBVRF9JZmRpdiwgICAgICAgIE9fU1Q0LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDNEICovICB7IFVEX0lmZGl2LCAgICAgICAgT19TVDUsICAgT19TVDAsICAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogM0UgKi8gIHsgVURfSWZkaXYsICAgICAgICBPX1NUNiwg ICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzRiAqLyAgeyBVRF9JZmRpdiwgICAg ICAgIE9fU1Q3LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVj dCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9kZF9fbW9kWzJdID0gewogIC8qIDAwICov ICB7IFVEX0lncnBfcmVnLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZ VEVfX09QX0REX19NT0RfX09QXzAwX19SRUcgfSwKICAvKiAwMSAqLyAgeyBVRF9JZ3JwX3g4Nywg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9ERF9fTU9EX19P UF8wMV9fWDg3IH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVf X29wX2RkX19tb2RfX29wXzAwX19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWZsZCwgICAg ICAgICBPX01xLCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8 UF9yZXhiIH0sCiAgLyogMDEgKi8gIHsgVURfSWZpc3R0cCwgICAgICBPX01xLCAgICBPX05PTkUs ICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDIgKi8g IHsgVURfSWZzdCwgICAgICAgICBPX01xLCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNv fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSWZzdHAsICAgICAgICBP X01xLCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCiAgLyogMDQgKi8gIHsgVURfSWZyc3RvciwgICAgICBPX00sICAgICBPX05PTkUsICBPX05P TkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA1ICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDYgKi8g IHsgVURfSWZuc2F2ZSwgICAgICBPX00sICAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA3ICovICB7IFVEX0lmbnN0c3csICAgICAgT19Ndywg ICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAp9 OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9kZF9fbW9kX19v cF8wMV9feDg3WzY0XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZmZyZWUsICAgICAgIE9fU1QwLCAg IE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lmZnJlZSwgICAg ICAgT19TVDEsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDIgKi8gIHsgVURf SWZmcmVlLCAgICAgICBPX1NUMiwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAw MyAqLyAgeyBVRF9JZmZyZWUsICAgICAgIE9fU1QzLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIDA0ICovICB7IFVEX0lmZnJlZSwgICAgICAgT19TVDQsICAgT19OT05FLCAgT19O T05FLCAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSWZmcmVlLCAgICAgICBPX1NUNSwgICBP X05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JZmZyZWUsICAgICAg IE9fU1Q2LCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA3ICovICB7IFVEX0lm ZnJlZSwgICAgICAgT19TVDcsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDgg Ki8gIHsgVURfSWZ4Y2g0LCAgICAgICBPX1NUMCwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAwOSAqLyAgeyBVRF9JZnhjaDQsICAgICAgIE9fU1QxLCAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDBBICovICB7IFVEX0lmeGNoNCwgICAgICAgT19TVDIsICAgT19O T05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEIgKi8gIHsgVURfSWZ4Y2g0LCAgICAgICBP X1NUMywgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwQyAqLyAgeyBVRF9JZnhj aDQsICAgICAgIE9fU1Q0LCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBEICov ICB7IFVEX0lmeGNoNCwgICAgICAgT19TVDUsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogMEUgKi8gIHsgVURfSWZ4Y2g0LCAgICAgICBPX1NUNiwgICBPX05PTkUsICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiAwRiAqLyAgeyBVRF9JZnhjaDQsICAgICAgIE9fU1Q3LCAgIE9fTk9O RSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDEwICovICB7IFVEX0lmc3QsICAgICAgICAgT19T VDAsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTEgKi8gIHsgVURfSWZzdCwg ICAgICAgICBPX1NUMSwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxMiAqLyAg eyBVRF9JZnN0LCAgICAgICAgIE9fU1QyLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDEzICovICB7IFVEX0lmc3QsICAgICAgICAgT19TVDMsICAgT19OT05FLCAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogMTQgKi8gIHsgVURfSWZzdCwgICAgICAgICBPX1NUNCwgICBPX05PTkUs ICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxNSAqLyAgeyBVRF9JZnN0LCAgICAgICAgIE9fU1Q1 LCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDE2ICovICB7IFVEX0lmc3QsICAg ICAgICAgT19TVDYsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTcgKi8gIHsg VURfSWZzdCwgICAgICAgICBPX1NUNywgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAxOCAqLyAgeyBVRF9JZnN0cCwgICAgICAgIE9fU1QwLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDE5ICovICB7IFVEX0lmc3RwLCAgICAgICAgT19TVDEsICAgT19OT05FLCAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogMUEgKi8gIHsgVURfSWZzdHAsICAgICAgICBPX1NUMiwg ICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxQiAqLyAgeyBVRF9JZnN0cCwgICAg ICAgIE9fU1QzLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFDICovICB7IFVE X0lmc3RwLCAgICAgICAgT19TVDQsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyog MUQgKi8gIHsgVURfSWZzdHAsICAgICAgICBPX1NUNSwgICBPX05PTkUsICBPX05PTkUsICBQX25v bmUgfSwKICAvKiAxRSAqLyAgeyBVRF9JZnN0cCwgICAgICAgIE9fU1Q2LCAgIE9fTk9ORSwgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDFGICovICB7IFVEX0lmc3RwLCAgICAgICAgT19TVDcsICAg T19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjAgKi8gIHsgVURfSWZ1Y29tLCAgICAg ICBPX1NUMCwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyMSAqLyAgeyBVRF9J ZnVjb20sICAgICAgIE9fU1QxLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDIy ICovICB7IFVEX0lmdWNvbSwgICAgICAgT19TVDIsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogMjMgKi8gIHsgVURfSWZ1Y29tLCAgICAgICBPX1NUMywgICBPX05PTkUsICBPX05P TkUsICBQX25vbmUgfSwKICAvKiAyNCAqLyAgeyBVRF9JZnVjb20sICAgICAgIE9fU1Q0LCAgIE9f Tk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDI1ICovICB7IFVEX0lmdWNvbSwgICAgICAg T19TVDUsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjYgKi8gIHsgVURfSWZ1 Y29tLCAgICAgICBPX1NUNiwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyNyAq LyAgeyBVRF9JZnVjb20sICAgICAgIE9fU1Q3LCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9 LAogIC8qIDI4ICovICB7IFVEX0lmdWNvbXAsICAgICAgT19TVDAsICAgT19OT05FLCAgT19OT05F LCAgUF9ub25lIH0sCiAgLyogMjkgKi8gIHsgVURfSWZ1Y29tcCwgICAgICBPX1NUMSwgICBPX05P TkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyQSAqLyAgeyBVRF9JZnVjb21wLCAgICAgIE9f U1QyLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDJCICovICB7IFVEX0lmdWNv bXAsICAgICAgT19TVDMsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkMgKi8g IHsgVURfSWZ1Y29tcCwgICAgICBPX1NUNCwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwK ICAvKiAyRCAqLyAgeyBVRF9JZnVjb21wLCAgICAgIE9fU1Q1LCAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfbm9uZSB9LAogIC8qIDJFICovICB7IFVEX0lmdWNvbXAsICAgICAgT19TVDYsICAgT19OT05F LCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkYgKi8gIHsgVURfSWZ1Y29tcCwgICAgICBPX1NU NywgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzMCAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDMxICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogMzIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiAzMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzUgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzNiAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDM3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMzggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAzOSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNBICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0IgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAz QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDNEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogM0UgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzRiAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1 ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9kZV9fbW9kWzJdID0gewogIC8qIDAwICovICB7 IFVEX0lncnBfcmVnLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fMUJZVEVf X09QX0RFX19NT0RfX09QXzAwX19SRUcgfSwKICAvKiAwMSAqLyAgeyBVRF9JZ3JwX3g4NywgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfXzFCWVRFX19PUF9ERV9fTU9EX19PUF8w MV9fWDg3IH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29w X2RlX19tb2RfX29wXzAwX19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWZpYWRkLCAgICAg ICBPX013LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogMDEgKi8gIHsgVURfSWZpbXVsLCAgICAgICBPX013LCAgICBPX05PTkUsICBP X05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDIgKi8gIHsg VURfSWZpY29tLCAgICAgICBPX013LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSWZpY29tcCwgICAgICBPX013 LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogMDQgKi8gIHsgVURfSWZpc3ViLCAgICAgICBPX013LCAgICBPX05PTkUsICBPX05PTkUs ICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDUgKi8gIHsgVURfSWZp c3ViciwgICAgICBPX013LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQ X3JleHh8UF9yZXhiIH0sCiAgLyogMDYgKi8gIHsgVURfSWZpZGl2LCAgICAgICBPX013LCAgICBP X05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyog MDcgKi8gIHsgVURfSWZpZGl2ciwgICAgICBPX013LCAgICBPX05PTkUsICBPX05PTkUsICBQX2Mx fFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJf ZW50cnkgaXRhYl9fMWJ5dGVfX29wX2RlX19tb2RfX29wXzAxX194ODdbNjRdID0gewogIC8qIDAw ICovICB7IFVEX0lmYWRkcCwgICAgICAgT19TVDAsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogMDEgKi8gIHsgVURfSWZhZGRwLCAgICAgICBPX1NUMSwgICBPX1NUMCwgICBPX05P TkUsICBQX25vbmUgfSwKICAvKiAwMiAqLyAgeyBVRF9JZmFkZHAsICAgICAgIE9fU1QyLCAgIE9f U1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAzICovICB7IFVEX0lmYWRkcCwgICAgICAg T19TVDMsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDQgKi8gIHsgVURfSWZh ZGRwLCAgICAgICBPX1NUNCwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNSAq LyAgeyBVRF9JZmFkZHAsICAgICAgIE9fU1Q1LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9 LAogIC8qIDA2ICovICB7IFVEX0lmYWRkcCwgICAgICAgT19TVDYsICAgT19TVDAsICAgT19OT05F LCAgUF9ub25lIH0sCiAgLyogMDcgKi8gIHsgVURfSWZhZGRwLCAgICAgICBPX1NUNywgICBPX1NU MCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwOCAqLyAgeyBVRF9JZm11bHAsICAgICAgIE9f U1QwLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA5ICovICB7IFVEX0lmbXVs cCwgICAgICAgT19TVDEsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEEgKi8g IHsgVURfSWZtdWxwLCAgICAgICBPX1NUMiwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwK ICAvKiAwQiAqLyAgeyBVRF9JZm11bHAsICAgICAgIE9fU1QzLCAgIE9fU1QwLCAgIE9fTk9ORSwg IFBfbm9uZSB9LAogIC8qIDBDICovICB7IFVEX0lmbXVscCwgICAgICAgT19TVDQsICAgT19TVDAs ICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEQgKi8gIHsgVURfSWZtdWxwLCAgICAgICBPX1NU NSwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwRSAqLyAgeyBVRF9JZm11bHAs ICAgICAgIE9fU1Q2LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBGICovICB7 IFVEX0lmbXVscCwgICAgICAgT19TVDcsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMTAgKi8gIHsgVURfSWZjb21wNSwgICAgICBPX1NUMCwgICBPX05PTkUsICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiAxMSAqLyAgeyBVRF9JZmNvbXA1LCAgICAgIE9fU1QxLCAgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDEyICovICB7IFVEX0lmY29tcDUsICAgICAgT19TVDIs ICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTMgKi8gIHsgVURfSWZjb21wNSwg ICAgICBPX1NUMywgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxNCAqLyAgeyBV RF9JZmNvbXA1LCAgICAgIE9fU1Q0LCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDE1ICovICB7IFVEX0lmY29tcDUsICAgICAgT19TVDUsICAgT19OT05FLCAgT19OT05FLCAgUF9u b25lIH0sCiAgLyogMTYgKi8gIHsgVURfSWZjb21wNSwgICAgICBPX1NUNiwgICBPX05PTkUsICBP X05PTkUsICBQX25vbmUgfSwKICAvKiAxNyAqLyAgeyBVRF9JZmNvbXA1LCAgICAgIE9fU1Q3LCAg IE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDE4ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMTkgKi8gIHsgVURf SWZjb21wcCwgICAgICBPX05PTkUsICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAx QSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDFCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMUMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxRCAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDFFICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUYg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiAyMCAqLyAgeyBVRF9JZnN1YnJwLCAgICAgIE9fU1QwLCAgIE9fU1QwLCAgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDIxICovICB7IFVEX0lmc3VicnAsICAgICAgT19TVDEsICAgT19T VDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjIgKi8gIHsgVURfSWZzdWJycCwgICAgICBP X1NUMiwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyMyAqLyAgeyBVRF9JZnN1 YnJwLCAgICAgIE9fU1QzLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDI0ICov ICB7IFVEX0lmc3VicnAsICAgICAgT19TVDQsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0s CiAgLyogMjUgKi8gIHsgVURfSWZzdWJycCwgICAgICBPX1NUNSwgICBPX1NUMCwgICBPX05PTkUs ICBQX25vbmUgfSwKICAvKiAyNiAqLyAgeyBVRF9JZnN1YnJwLCAgICAgIE9fU1Q2LCAgIE9fU1Qw LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDI3ICovICB7IFVEX0lmc3VicnAsICAgICAgT19T VDcsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjggKi8gIHsgVURfSWZzdWJw LCAgICAgICBPX1NUMCwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyOSAqLyAg eyBVRF9JZnN1YnAsICAgICAgIE9fU1QxLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAog IC8qIDJBICovICB7IFVEX0lmc3VicCwgICAgICAgT19TVDIsICAgT19TVDAsICAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogMkIgKi8gIHsgVURfSWZzdWJwLCAgICAgICBPX1NUMywgICBPX1NUMCwg ICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyQyAqLyAgeyBVRF9JZnN1YnAsICAgICAgIE9fU1Q0 LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDJEICovICB7IFVEX0lmc3VicCwg ICAgICAgT19TVDUsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkUgKi8gIHsg VURfSWZzdWJwLCAgICAgICBPX1NUNiwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAyRiAqLyAgeyBVRF9JZnN1YnAsICAgICAgIE9fU1Q3LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDMwICovICB7IFVEX0lmZGl2cnAsICAgICAgT19TVDAsICAgT19TVDAsICAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogMzEgKi8gIHsgVURfSWZkaXZycCwgICAgICBPX1NUMSwg ICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzMiAqLyAgeyBVRF9JZmRpdnJwLCAg ICAgIE9fU1QyLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDMzICovICB7IFVE X0lmZGl2cnAsICAgICAgT19TVDMsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyog MzQgKi8gIHsgVURfSWZkaXZycCwgICAgICBPX1NUNCwgICBPX1NUMCwgICBPX05PTkUsICBQX25v bmUgfSwKICAvKiAzNSAqLyAgeyBVRF9JZmRpdnJwLCAgICAgIE9fU1Q1LCAgIE9fU1QwLCAgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDM2ICovICB7IFVEX0lmZGl2cnAsICAgICAgT19TVDYsICAg T19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMzcgKi8gIHsgVURfSWZkaXZycCwgICAg ICBPX1NUNywgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzOCAqLyAgeyBVRF9J ZmRpdnAsICAgICAgIE9fU1QwLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDM5 ICovICB7IFVEX0lmZGl2cCwgICAgICAgT19TVDEsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogM0EgKi8gIHsgVURfSWZkaXZwLCAgICAgICBPX1NUMiwgICBPX1NUMCwgICBPX05P TkUsICBQX25vbmUgfSwKICAvKiAzQiAqLyAgeyBVRF9JZmRpdnAsICAgICAgIE9fU1QzLCAgIE9f U1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDNDICovICB7IFVEX0lmZGl2cCwgICAgICAg T19TVDQsICAgT19TVDAsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogM0QgKi8gIHsgVURfSWZk aXZwLCAgICAgICBPX1NUNSwgICBPX1NUMCwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzRSAq LyAgeyBVRF9JZmRpdnAsICAgICAgIE9fU1Q2LCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9 LAogIC8qIDNGICovICB7IFVEX0lmZGl2cCwgICAgICAgT19TVDcsICAgT19TVDAsICAgT19OT05F LCAgUF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVf X29wX2RmX19tb2RbMl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBJVEFCX18xQllURV9fT1BfREZfX01PRF9fT1BfMDBfX1JFRyB9 LAogIC8qIDAxICovICB7IFVEX0lncnBfeDg3LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgSVRBQl9fMUJZVEVfX09QX0RGX19NT0RfX09QXzAxX19YODcgfSwKfTsKCnN0YXRpYyBzdHJ1 Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX18xYnl0ZV9fb3BfZGZfX21vZF9fb3BfMDBfX3JlZ1s4XSA9 IHsKICAvKiAwMCAqLyAgeyBVRF9JZmlsZCwgICAgICAgIE9fTXcsICAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMSAqLyAgeyBVRF9J ZmlzdHRwLCAgICAgIE9fTXcsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAwMiAqLyAgeyBVRF9JZmlzdCwgICAgICAgIE9fTXcsICAg IE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiAwMyAqLyAgeyBVRF9JZmlzdHAsICAgICAgIE9fTXcsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBf YzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNCAqLyAgeyBVRF9JZmJsZCwg ICAgICAgIE9fTXQsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogMDUgKi8gIHsgVURfSWZpbGQsICAgICAgICBPX01xLCAgICBPX05PTkUsICBP X05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDYgKi8gIHsg VURfSWZic3RwLCAgICAgICBPX010LCAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8 UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA3ICovICB7IFVEX0lmaXN0cCwgICAgICAgT19NcSwgICAg T19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAp9OwoK c3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9kZl9fbW9kX19vcF8w MV9feDg3WzY0XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JZmZyZWVwLCAgICAgIE9fU1QwLCAgIE9f Tk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lmZnJlZXAsICAgICAg T19TVDEsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDIgKi8gIHsgVURfSWZm cmVlcCwgICAgICBPX1NUMiwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwMyAq LyAgeyBVRF9JZmZyZWVwLCAgICAgIE9fU1QzLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9 LAogIC8qIDA0ICovICB7IFVEX0lmZnJlZXAsICAgICAgT19TVDQsICAgT19OT05FLCAgT19OT05F LCAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSWZmcmVlcCwgICAgICBPX1NUNSwgICBPX05P TkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JZmZyZWVwLCAgICAgIE9f U1Q2LCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDA3ICovICB7IFVEX0lmZnJl ZXAsICAgICAgT19TVDcsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMDggKi8g IHsgVURfSWZ4Y2g3LCAgICAgICBPX1NUMCwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwK ICAvKiAwOSAqLyAgeyBVRF9JZnhjaDcsICAgICAgIE9fU1QxLCAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfbm9uZSB9LAogIC8qIDBBICovICB7IFVEX0lmeGNoNywgICAgICAgT19TVDIsICAgT19OT05F LCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMEIgKi8gIHsgVURfSWZ4Y2g3LCAgICAgICBPX1NU MywgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAwQyAqLyAgeyBVRF9JZnhjaDcs ICAgICAgIE9fU1Q0LCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDBEICovICB7 IFVEX0lmeGNoNywgICAgICAgT19TVDUsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogMEUgKi8gIHsgVURfSWZ4Y2g3LCAgICAgICBPX1NUNiwgICBPX05PTkUsICBPX05PTkUsICBQ X25vbmUgfSwKICAvKiAwRiAqLyAgeyBVRF9JZnhjaDcsICAgICAgIE9fU1Q3LCAgIE9fTk9ORSwg IE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDEwICovICB7IFVEX0lmc3RwOCwgICAgICAgT19TVDAs ICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTEgKi8gIHsgVURfSWZzdHA4LCAg ICAgICBPX1NUMSwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxMiAqLyAgeyBV RF9JZnN0cDgsICAgICAgIE9fU1QyLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8q IDEzICovICB7IFVEX0lmc3RwOCwgICAgICAgT19TVDMsICAgT19OT05FLCAgT19OT05FLCAgUF9u b25lIH0sCiAgLyogMTQgKi8gIHsgVURfSWZzdHA4LCAgICAgICBPX1NUNCwgICBPX05PTkUsICBP X05PTkUsICBQX25vbmUgfSwKICAvKiAxNSAqLyAgeyBVRF9JZnN0cDgsICAgICAgIE9fU1Q1LCAg IE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDE2ICovICB7IFVEX0lmc3RwOCwgICAg ICAgT19TVDYsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMTcgKi8gIHsgVURf SWZzdHA4LCAgICAgICBPX1NUNywgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAx OCAqLyAgeyBVRF9JZnN0cDksICAgICAgIE9fU1QwLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9u ZSB9LAogIC8qIDE5ICovICB7IFVEX0lmc3RwOSwgICAgICAgT19TVDEsICAgT19OT05FLCAgT19O T05FLCAgUF9ub25lIH0sCiAgLyogMUEgKi8gIHsgVURfSWZzdHA5LCAgICAgICBPX1NUMiwgICBP X05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAxQiAqLyAgeyBVRF9JZnN0cDksICAgICAg IE9fU1QzLCAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDFDICovICB7IFVEX0lm c3RwOSwgICAgICAgT19TVDQsICAgT19OT05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMUQg Ki8gIHsgVURfSWZzdHA5LCAgICAgICBPX1NUNSwgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUg fSwKICAvKiAxRSAqLyAgeyBVRF9JZnN0cDksICAgICAgIE9fU1Q2LCAgIE9fTk9ORSwgIE9fTk9O RSwgIFBfbm9uZSB9LAogIC8qIDFGICovICB7IFVEX0lmc3RwOSwgICAgICAgT19TVDcsICAgT19O T05FLCAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMjAgKi8gIHsgVURfSWZuc3RzdywgICAgICBP X0FYLCAgICBPX05PTkUsICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyMSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDIyICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMjMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAyNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjYgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyNyAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDI4ICovICB7IFVEX0lmdWNvbWlwLCAgICAgT19TVDAsICAgT19TVDAsICAgT19OT05FLCAg UF9ub25lIH0sCiAgLyogMjkgKi8gIHsgVURfSWZ1Y29taXAsICAgICBPX1NUMCwgICBPX1NUMSwg ICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAyQSAqLyAgeyBVRF9JZnVjb21pcCwgICAgIE9fU1Qw LCAgIE9fU1QyLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDJCICovICB7IFVEX0lmdWNvbWlw LCAgICAgT19TVDAsICAgT19TVDMsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMkMgKi8gIHsg VURfSWZ1Y29taXAsICAgICBPX1NUMCwgICBPX1NUNCwgICBPX05PTkUsICBQX25vbmUgfSwKICAv KiAyRCAqLyAgeyBVRF9JZnVjb21pcCwgICAgIE9fU1QwLCAgIE9fU1Q1LCAgIE9fTk9ORSwgIFBf bm9uZSB9LAogIC8qIDJFICovICB7IFVEX0lmdWNvbWlwLCAgICAgT19TVDAsICAgT19TVDYsICAg T19OT05FLCAgUF9ub25lIH0sCiAgLyogMkYgKi8gIHsgVURfSWZ1Y29taXAsICAgICBPX1NUMCwg ICBPX1NUNywgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzMCAqLyAgeyBVRF9JZmNvbWlwLCAg ICAgIE9fU1QwLCAgIE9fU1QwLCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDMxICovICB7IFVE X0lmY29taXAsICAgICAgT19TVDAsICAgT19TVDEsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyog MzIgKi8gIHsgVURfSWZjb21pcCwgICAgICBPX1NUMCwgICBPX1NUMiwgICBPX05PTkUsICBQX25v bmUgfSwKICAvKiAzMyAqLyAgeyBVRF9JZmNvbWlwLCAgICAgIE9fU1QwLCAgIE9fU1QzLCAgIE9f Tk9ORSwgIFBfbm9uZSB9LAogIC8qIDM0ICovICB7IFVEX0lmY29taXAsICAgICAgT19TVDAsICAg T19TVDQsICAgT19OT05FLCAgUF9ub25lIH0sCiAgLyogMzUgKi8gIHsgVURfSWZjb21pcCwgICAg ICBPX1NUMCwgICBPX1NUNSwgICBPX05PTkUsICBQX25vbmUgfSwKICAvKiAzNiAqLyAgeyBVRF9J ZmNvbWlwLCAgICAgIE9fU1QwLCAgIE9fU1Q2LCAgIE9fTk9ORSwgIFBfbm9uZSB9LAogIC8qIDM3 ICovICB7IFVEX0lmY29taXAsICAgICAgT19TVDAsICAgT19TVDcsICAgT19OT05FLCAgUF9ub25l IH0sCiAgLyogMzggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAzOSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNBICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0IgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzQyAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDNEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogM0UgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzRiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9p dGFiX2VudHJ5IGl0YWJfXzFieXRlX19vcF9lM19fYXNpemVbM10gPSB7CiAgLyogMDAgKi8gIHsg VURfSWpjeHosICAgICAgICBPX0piLCAgICBPX05PTkUsICBPX05PTkUsICBQX2FzbyB9LAogIC8q IDAxICovICB7IFVEX0lqZWN4eiwgICAgICAgT19KYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9h c28gfSwKICAvKiAwMiAqLyAgeyBVRF9JanJjeHosICAgICAgIE9fSmIsICAgIE9fTk9ORSwgIE9f Tk9ORSwgIFBfYXNvIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5 dGVfX29wX2Y2X19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSXRlc3QsICAgICAgICBPX0Vi LCAgICBPX0liLCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIDAxICovICB7IFVEX0l0ZXN0LCAgICAgICAgT19FYiwgICAgT19JYiwgICAg T19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAw MiAqLyAgeyBVRF9Jbm90LCAgICAgICAgIE9fRWIsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8 UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSW5l ZywgICAgICAgICBPX0ViLCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4d3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA0ICovICB7IFVEX0ltdWwsICAgICAgICAgT19F YiwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKICAvKiAwNSAqLyAgeyBVRF9JaW11bCwgICAgICAgIE9fRWIsICAgIE9fTk9ORSwg IE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyog MDYgKi8gIHsgVURfSWRpdiwgICAgICAgICBPX0ViLCAgICBPX05PTkUsICBPX05PTkUsICBQX2Mx fFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA3ICovICB7IFVEX0lp ZGl2LCAgICAgICAgT19FYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBp dGFiX18xYnl0ZV9fb3BfZjdfX3JlZ1s4XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9JdGVzdCwgICAg ICAgIE9fRXYsICAgIE9fSXosICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDEgKi8gIHsgVURfSXRlc3QsICAgICAgICBPX0V2 LCAgICBPX0l6LCAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDAyICovICB7IFVEX0lub3QsICAgICAgICAgT19FdiwgICAgT19O T05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3Jl eGIgfSwKICAvKiAwMyAqLyAgeyBVRF9JbmVnLCAgICAgICAgIE9fRXYsICAgIE9fTk9ORSwgIE9f Tk9ORSwgIFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogMDQgKi8gIHsgVURfSW11bCwgICAgICAgICBPX0V2LCAgICBPX05PTkUsICBPX05PTkUsICBQ X2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDA1ICov ICB7IFVEX0lpbXVsLCAgICAgICAgT19FdiwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fz b3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNiAqLyAgeyBVRF9J ZGl2LCAgICAgICAgIE9fRXYsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9vc298 UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDcgKi8gIHsgVURfSWlkaXYsICAg ICAgICBPX0V2LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0 YWJfXzFieXRlX19vcF9mZV9fcmVnWzhdID0gewogIC8qIDAwICovICB7IFVEX0lpbmMsICAgICAg ICAgT19FYiwgICAgT19OT05FLCAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiAwMSAqLyAgeyBVRF9JZGVjLCAgICAgICAgIE9fRWIsICAgIE9f Tk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogMDIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAwMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNiAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDA3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCn07CgpzdGF0aWMgc3RydWN0IHVkX2l0YWJfZW50cnkgaXRhYl9fMWJ5dGVfX29w X2ZmX19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWluYywgICAgICAgICBPX0V2LCAgICBP X05PTkUsICBPX05PTkUsICBQX2MxfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIDAxICovICB7IFVEX0lkZWMsICAgICAgICAgT19FdiwgICAgT19OT05FLCAg T19OT05FLCAgUF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiAwMiAqLyAgeyBVRF9JY2FsbCwgICAgICAgIE9fRXYsICAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfYzF8UF9kZWY2NHxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiAwMyAqLyAgeyBVRF9JY2FsbCwgICAgICAgIE9fRXAsICAgIE9fTk9ORSwgIE9fTk9ORSwg IFBfYzF8UF9hc298UF9vc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMDQg Ki8gIHsgVURfSWptcCwgICAgICAgICBPX0V2LCAgICBPX05PTkUsICBPX05PTkUsICBQX2MxfFBf ZGVmNjR8UF9kZXBNfFBfYXNvfFBfb3NvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAog IC8qIDA1ICovICB7IFVEX0lqbXAsICAgICAgICAgT19FcCwgICAgT19OT05FLCAgT19OT05FLCAg UF9jMXxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNiAq LyAgeyBVRF9JcHVzaCwgICAgICAgIE9fRXYsICAgIE9fTk9ORSwgIE9fTk9ORSwgIFBfYzF8UF9k ZWY2NHxQX2Fzb3xQX29zb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAwNyAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfXzNkbm93WzI1Nl0gPSB7CiAg LyogMDAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDMgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNCAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDA1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMDYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAwNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA4ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDkgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAw QSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDBCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMEMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwRCAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDBFICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMEYg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiAxMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDExICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMTIgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxMyAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDE0ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMTUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAxNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDE3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMTggKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxOSAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDFBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogMUIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDFEICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUUgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAxRiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDIwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyMiAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDIzICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog MjQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiAyNSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDI2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjcgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyOCAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI5 ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMkEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAyQiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDJDICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMkQgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyRSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDJGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogMzAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDMyICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzMgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiAzNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDM1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzNyAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM4ICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogMzkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiAzQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0MgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzRCAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDNFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogM0YgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiA0MCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDQxICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNDIgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0 MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDQ0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogNDUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0NiAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDQ3ICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNDgg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiA0OSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDRBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNEIgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0QyAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDREICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogNEUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiA0RiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDUwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNTEgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA1MiAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDUzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogNTQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiA1NSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDU2ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNTcgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA1OCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDU5ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogNUEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA1QiAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDVDICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog NUQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiA1RSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDVGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNjAgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2MSAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDYy ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogNjMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiA2NCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDY1ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNjYgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2NyAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDY4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogNjkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2QSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDZCICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNkMgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiA2RCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDZFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNkYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3MCAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDcxICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogNzIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiA3MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDc0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNzUgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3NiAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDc3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogNzggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiA3OSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDdBICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogN0IgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3 QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDdEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogN0UgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3RiAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDgwICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogODEg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiA4MiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDgzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogODQgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4NSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDg2ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogODcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiA4OCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDg5ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOEEgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4QiAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDhDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogOEQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4RSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDhGICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOTAgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA5MSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDkyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogOTMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5NCAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDk1ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog OTYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiA5NyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDk4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOTkgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5QSAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDlC ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogOUMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiA5RCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDlFICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOUYgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBMCAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIEExICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogQTIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEE0ICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQTUgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiBBNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIEE3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQTggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBOSAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEFBICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogQUIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiBBQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEFEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQUUgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBRiAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IEIwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogQjEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiBCMiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEIzICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQjQgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBC NSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIEI2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogQjcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCOCAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEI5ICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQkEg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiBCQiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIEJDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQkQgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCRSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEJGICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogQzAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiBDMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEMyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQzMgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDNCAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIEM1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogQzYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEM4ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQzkgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiBDQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIENCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogQ0MgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDRCAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIENFICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog Q0YgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiBEMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIEQxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRDIgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBEMyAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEQ0 ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogRDUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiBENiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEQ3ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRDggKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBEOSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIERBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogREIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBEQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEREICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogREUgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiBERiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIEUwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRTEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBFMiAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEUzICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogRTQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiBFNSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEU2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRTcgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBFOCAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IEU5ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogRUEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiBFQiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEVDICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRUQgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBF RSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIEVGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogRjAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBGMSAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEYyICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRjMg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiBGNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIEY1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRjYgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBGNyAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEY4ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogRjkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiBGQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEZCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRkMgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBGRCAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIEZFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogRkYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFi X19wZnhfc3NlNjZfXzBmWzI1Nl0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAyICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMDMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAwNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDYgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNyAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDA4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogMDkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDBCICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMEMgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAwRCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDBFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMEYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxMCAqLyAgeyBVRF9JbW92dXBkLCAg ICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhi IH0sCiAgLyogMTEgKi8gIHsgVURfSW1vdnVwZCwgICAgICBPX1csICAgICBPX1YsICAgICBPX05P TkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDEyICovICB7IFVEX0ltb3Zs cGQsICAgICAgT19WLCAgICAgT19NLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKICAvKiAxMyAqLyAgeyBVRF9JbW92bHBkLCAgICAgIE9fTSwgICAgIE9fViwgICAg IE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMTQgKi8gIHsgVURf SXVucGNrbHBkLCAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDE1ICovICB7IFVEX0l1bnBja2hwZCwgICAgT19WLCAgICAgT19X LCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAxNiAqLyAg eyBVRF9JbW92aHBkLCAgICAgIE9fViwgICAgIE9fTSwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMTcgKi8gIHsgVURfSW1vdmhwZCwgICAgICBPX00sICAg ICBPX1YsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDE4 ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMTkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAxQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDFCICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUMgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxRCAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDFFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogMUYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDIxICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjIgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiAyMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDI0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyNiAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI3ICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogMjggKi8gIHsgVURfSW1vdmFwZCwgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDI5ICovICB7IFVEX0ltb3ZhcGQsICAg ICAgT19XLCAgICAgT19WLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiAyQSAqLyAgeyBVRF9JY3Z0cGkycGQsICAgIE9fViwgICAgIE9fUSwgICAgIE9fTk9O RSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMkIgKi8gIHsgVURfSW1vdm50 cGQsICAgICBPX00sICAgICBPX1YsICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIDJDICovICB7IFVEX0ljdnR0cGQycGksICAgT19QLCAgICAgT19XLCAgICAg T19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAyRCAqLyAgeyBVRF9J Y3Z0cGQycGksICAgIE9fUCwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCiAgLyogMkUgKi8gIHsgVURfSXVjb21pc2QsICAgICBPX1YsICAgICBPX1cs ICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDJGICovICB7 IFVEX0ljb21pc2QsICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAzMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDMxICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzIgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAz MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDM0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMzUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzNiAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM3ICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzgg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiAzOSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDNBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0IgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzQyAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNEICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogM0UgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAzRiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDQwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNDEgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0MiAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDQzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogNDQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0NSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDQ2ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNDcgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA0OCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDQ5ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogNEEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0QiAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDRDICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog NEQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiA0RSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDRGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNTAgKi8gIHsgVURfSW1vdm1za3BkLCAg ICBPX0dkLCAgICBPX1ZSLCAgICBPX05PTkUsICBQX29zb3xQX3JleHJ8UF9yZXhiIH0sCiAgLyog NTEgKi8gIHsgVURfSXNxcnRwZCwgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fz b3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDUyICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNTMgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA1NCAq LyAgeyBVRF9JYW5kcGQsICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNTUgKi8gIHsgVURfSWFuZG5wZCwgICAgICBPX1Ys ICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8q IDU2ICovICB7IFVEX0lvcnBkLCAgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9h c298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA1NyAqLyAgeyBVRF9JeG9ycGQsICAgICAg IE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0s CiAgLyogNTggKi8gIHsgVURfSWFkZHBkLCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUs ICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDU5ICovICB7IFVEX0ltdWxwZCwg ICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3Jl eGIgfSwKICAvKiA1QSAqLyAgeyBVRF9JY3Z0cGQycHMsICAgIE9fViwgICAgIE9fVywgICAgIE9f Tk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNUIgKi8gIHsgVURfSWN2 dHBzMmRxLCAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4 fFBfcmV4YiB9LAogIC8qIDVDICovICB7IFVEX0lzdWJwZCwgICAgICAgT19WLCAgICAgT19XLCAg ICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA1RCAqLyAgeyBV RF9JbWlucGQsICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQ X3JleHh8UF9yZXhiIH0sCiAgLyogNUUgKi8gIHsgVURfSWRpdnBkLCAgICAgICBPX1YsICAgICBP X1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDVGICov ICB7IFVEX0ltYXhwZCwgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9y ZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA2MCAqLyAgeyBVRF9JcHVucGNrbGJ3LCAgIE9fViwg ICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyog NjEgKi8gIHsgVURfSXB1bnBja2x3ZCwgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fz b3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDYyICovICB7IFVEX0lwdW5wY2tsZHEsICAg T19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiA2MyAqLyAgeyBVRF9JcGFja3Nzd2IsICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwg IFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNjQgKi8gIHsgVURfSXBjbXBndGIs ICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDY1ICovICB7IFVEX0lwY21wZ3R3LCAgICAgT19WLCAgICAgT19XLCAgICAgT19O T05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA2NiAqLyAgeyBVRF9JcGNt cGd0ZCwgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8 UF9yZXhiIH0sCiAgLyogNjcgKi8gIHsgVURfSXBhY2t1c3diLCAgICBPX1YsICAgICBPX1csICAg ICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDY4ICovICB7IFVE X0lwdW5wY2toYncsICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiA2OSAqLyAgeyBVRF9JcHVucGNraHdkLCAgIE9fViwgICAgIE9f VywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNkEgKi8g IHsgVURfSXB1bnBja2hkcSwgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDZCICovICB7IFVEX0lwYWNrc3NkdywgICAgT19WLCAg ICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA2 QyAqLyAgeyBVRF9JcHVucGNrbHFkcSwgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNv fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNkQgKi8gIHsgVURfSXB1bnBja2hxZHEsICBP X1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAog IC8qIDZFICovICB7IFVEX0ltb3ZkLCAgICAgICAgT19WLCAgICAgT19FeCwgICAgT19OT05FLCAg UF9jMnxQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA2RiAqLyAgeyBV RF9JbW92cWEsICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQ X3JleHh8UF9yZXhiIH0sCiAgLyogNzAgKi8gIHsgVURfSXBzaHVmZCwgICAgICBPX1YsICAgICBP X1csICAgICBPX0liLCAgICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDcxICov ICB7IFVEX0lncnBfcmVnLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fUEZY X1NTRTY2X18wRl9fT1BfNzFfX1JFRyB9LAogIC8qIDcyICovICB7IFVEX0lncnBfcmVnLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgSVRBQl9fUEZYX1NTRTY2X18wRl9fT1BfNzJfX1JF RyB9LAogIC8qIDczICovICB7IFVEX0lncnBfcmVnLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgSVRBQl9fUEZYX1NTRTY2X18wRl9fT1BfNzNfX1JFRyB9LAogIC8qIDc0ICovICB7IFVE X0lwY21wZXFiLCAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBf cmV4eHxQX3JleGIgfSwKICAvKiA3NSAqLyAgeyBVRF9JcGNtcGVxdywgICAgIE9fViwgICAgIE9f VywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNzYgKi8g IHsgVURfSXBjbXBlcWQsICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDc3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNzggKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3OSAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDdBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogN0IgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiA3QyAqLyAgeyBVRF9JaGFkZHBkLCAgICAgIE9fViwgICAg IE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogN0Qg Ki8gIHsgVURfSWhzdWJwZCwgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDdFICovICB7IFVEX0ltb3ZkLCAgICAgICAgT19F eCwgICAgT19WLCAgICAgT19OT05FLCAgUF9jMXxQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQ X3JleGIgfSwKICAvKiA3RiAqLyAgeyBVRF9JbW92ZHFhLCAgICAgIE9fVywgICAgIE9fViwgICAg IE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogODAgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4 MSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDgyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogODMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4NCAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDg1ICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogODYg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiA4NyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDg4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogODkgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4QSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDhCICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogOEMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiA4RCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDhFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOEYgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5MCAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDkxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogOTIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDk0ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOTUgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA5NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDk3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogOTggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5OSAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDlBICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog OUIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiA5QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDlEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOUUgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5RiAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEEw ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogQTEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiBBMiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEEzICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQTQgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBNSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIEE2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogQTcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBOCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEE5ICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQUEgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiBBQiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIEFDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQUQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBRSAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEFGICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogQjAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiBCMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEIyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQjMgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCNCAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IEI1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogQjYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiBCNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEI4ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQjkgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBC QSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIEJCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogQkMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCRCAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEJFICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQkYg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiBDMCAqLyAgeyBVRF9JeGFkZCwgICAgICAgIE9fRWIsICAgIE9fR2IsICAgIE9fTk9O RSwgIFBfYXNvfFBfcmV4d3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEMxICovICB7IFVE X0l4YWRkLCAgICAgICAgT19FdiwgICAgT19HdiwgICAgT19OT05FLCAgUF9hc298UF9vc298UF9y ZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQzIgKi8gIHsgVURfSWNtcHBkLCAgICAg ICBPX1YsICAgICBPX1csICAgICBPX0liLCAgICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIEMzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogQzQgKi8gIHsgVURfSXBpbnNydywgICAgICBPX1YsICAgICBPX0V3 LCAgICBPX0liLCAgICBQX2Fzb3xQX3JleHd8UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBD NSAqLyAgeyBVRF9JcGV4dHJ3LCAgICAgIE9fR2QsICAgIE9fVlIsICAgIE9fSWIsICAgIFBfYXNv fFBfcmV4cnxQX3JleGIgfSwKICAvKiBDNiAqLyAgeyBVRF9Jc2h1ZnBkLCAgICAgIE9fViwgICAg IE9fVywgICAgIE9fSWIsICAgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQzcg Ki8gIHsgVURfSWdycF9yZWcsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBJVEFCX19Q RlhfU1NFNjZfXzBGX19PUF9DN19fUkVHIH0sCiAgLyogQzggKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDOSAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIENB ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogQ0IgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiBDQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIENEICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQ0UgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDRiAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIEQwICovICB7IFVEX0lhZGRzdWJwZCwgICAgT19WLCAgICAgT19XLCAgICAgT19OT05F LCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBEMSAqLyAgeyBVRF9JcHNybHcs ICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogRDIgKi8gIHsgVURfSXBzcmxkLCAgICAgICBPX1YsICAgICBPX1csICAgICBP X05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEQzICovICB7IFVEX0lw c3JscSwgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4 eHxQX3JleGIgfSwKICAvKiBENCAqLyAgeyBVRF9JcGFkZHEsICAgICAgIE9fViwgICAgIE9fVywg ICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRDUgKi8gIHsg VURfSXBtdWxsdywgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8 UF9yZXh4fFBfcmV4YiB9LAogIC8qIEQ2ICovICB7IFVEX0ltb3ZxLCAgICAgICAgT19XLCAgICAg T19WLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBENyAq LyAgeyBVRF9JcG1vdm1za2IsICAgIE9fR2QsICAgIE9fVlIsICAgIE9fTk9ORSwgIFBfcmV4cnxQ X3JleGIgfSwKICAvKiBEOCAqLyAgeyBVRF9JcHN1YnVzYiwgICAgIE9fViwgICAgIE9fVywgICAg IE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRDkgKi8gIHsgVURf SXBzdWJ1c3csICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIERBICovICB7IFVEX0lwbWludWIsICAgICAgT19WLCAgICAgT19X LCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBEQiAqLyAg eyBVRF9JcGFuZCwgICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogREMgKi8gIHsgVURfSXBzdWJ1c2IsICAgICBPX1YsICAg ICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIERE ICovICB7IFVEX0lwdW5wY2toYncsICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBERSAqLyAgeyBVRF9JcG1heHViLCAgICAgIE9f ViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogREYgKi8gIHsgVURfSXBhbmRuLCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEUwICovICB7IFVEX0lwYXZnYiwgICAg ICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiBFMSAqLyAgeyBVRF9JcHNyYXcsICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9O RSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRTIgKi8gIHsgVURfSXBzcmFk LCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIEUzICovICB7IFVEX0lwYXZndywgICAgICAgT19WLCAgICAgT19XLCAgICAg T19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBFNCAqLyAgeyBVRF9J cG11bGh1dywgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCiAgLyogRTUgKi8gIHsgVURfSXBtdWxodywgICAgICBPX1YsICAgICBPX1cs ICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEU2ICovICB7 IFVEX0ljdnR0cGQyZHEsICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9ub25lIH0sCiAg LyogRTcgKi8gIHsgVURfSW1vdm50ZHEsICAgICBPX00sICAgICBPX1YsICAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEU4ICovICB7IFVEX0lwc3Vic2IsICAg ICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiBFOSAqLyAgeyBVRF9JcHN1YnN3LCAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9O RSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRUEgKi8gIHsgVURfSXBtaW5z dywgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIEVCICovICB7IFVEX0lwb3IsICAgICAgICAgT19WLCAgICAgT19XLCAgICAg T19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBFQyAqLyAgeyBVRF9J cGFkZHNiLCAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCiAgLyogRUQgKi8gIHsgVURfSXBhZGRzdywgICAgICBPX1YsICAgICBPX1cs ICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEVFICovICB7 IFVEX0lwbWF4c3csICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiBFRiAqLyAgeyBVRF9JcHhvciwgICAgICAgIE9fViwgICAg IE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRjAg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiBGMSAqLyAgeyBVRF9JcHNsbHcsICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9O RSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRjIgKi8gIHsgVURfSXBzbGxk LCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIEYzICovICB7IFVEX0lwc2xscSwgICAgICAgT19WLCAgICAgT19XLCAgICAg T19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBGNCAqLyAgeyBVRF9J cG11bHVkcSwgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3Jl eHh8UF9yZXhiIH0sCiAgLyogRjUgKi8gIHsgVURfSXBtYWRkd2QsICAgICBPX1YsICAgICBPX1cs ICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEY2ICovICB7 IFVEX0lwc2FkYncsICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiBGNyAqLyAgeyBVRF9JbWFza21vdnEsICAgIE9fViwgICAg IE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRjgg Ki8gIHsgVURfSXBzdWJiLCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEY5ICovICB7IFVEX0lwc3VidywgICAgICAgT19W LCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiBGQSAqLyAgeyBVRF9JcHN1YmQsICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBf YXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRkIgKi8gIHsgVURfSXBzdWJxLCAgICAg ICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIEZDICovICB7IFVEX0lwYWRkYiwgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05F LCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBGRCAqLyAgeyBVRF9JcGFkZHcs ICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogRkUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiBGRiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2Vu dHJ5IGl0YWJfX3BmeF9zc2U2Nl9fMGZfX29wXzcxX19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAwMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDAyICovICB7IFVEX0lwc3JsdywgICAgICAgT19WUiwgICAgT19JYiwgICAg T19OT05FLCAgUF9yZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNCAqLyAgeyBVRF9JcHNyYXcsICAg ICAgIE9fVlIsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfcmV4YiB9LAogIC8qIDA1ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog MDYgKi8gIHsgVURfSXBzbGx3LCAgICAgICBPX1ZSLCAgICBPX0liLCAgICBPX05PTkUsICBQX3Jl eGIgfSwKICAvKiAwNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfX3Bm eF9zc2U2Nl9fMGZfX29wXzcyX19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDAyICovICB7IFVEX0lwc3JsZCwgICAgICAgT19WUiwgICAgT19JYiwgICAgT19OT05FLCAgUF9y ZXhiIH0sCiAgLyogMDMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAwNCAqLyAgeyBVRF9JcHNyYWQsICAgICAgIE9fVlIsICAg IE9fSWIsICAgIE9fTk9ORSwgIFBfcmV4YiB9LAogIC8qIDA1ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDYgKi8gIHsgVURf SXBzbGxkLCAgICAgICBPX1ZSLCAgICBPX0liLCAgICBPX05PTkUsICBQX3JleGIgfSwKICAvKiAw NyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfX3BmeF9zc2U2Nl9fMGZf X29wXzczX19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMSAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAyICovICB7IFVE X0lwc3JscSwgICAgICAgT19WUiwgICAgT19JYiwgICAgT19OT05FLCAgUF9yZXhiIH0sCiAgLyog MDMgKi8gIHsgVURfSXBzcmxkcSwgICAgICBPX1ZSLCAgICBPX0liLCAgICBPX05PTkUsICBQX3Jl eGIgfSwKICAvKiAwNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDA1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDYgKi8gIHsgVURfSXBzbGxxLCAgICAg ICBPX1ZSLCAgICBPX0liLCAgICBPX05PTkUsICBQX3JleGIgfSwKICAvKiAwNyAqLyAgeyBVRF9J cHNsbGRxLCAgICAgIE9fVlIsICAgIE9fSWIsICAgIE9fTk9ORSwgIFBfcmV4YiB9LAp9OwoKc3Rh dGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfX3BmeF9zc2U2Nl9fMGZfX29wX2M3X19yZWdb OF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWdycF92ZW5kb3IsICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBJVEFCX19QRlhfU1NFNjZfXzBGX19PUF9DN19fUkVHX19PUF8wMF9fVkVORE9SIH0s CiAgLyogMDEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAwMiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDQgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNSAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDA2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogMDcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKfTsKCnN0YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFi X19wZnhfc3NlNjZfXzBmX19vcF9jN19fcmVnX19vcF8wMF9fdmVuZG9yWzJdID0gewogIC8qIDAw ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMDEgKi8gIHsgVURfSXZtY2xlYXIsICAgICBPX01xLCAgICBPX05PTkUsICBPX05P TkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9p dGFiX2VudHJ5IGl0YWJfX3BmeF9zc2VmMl9fMGZbMjU2XSA9IHsKICAvKiAwMCAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDAx ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMDIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAwMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA0ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDUgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNiAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDA3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogMDggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwOSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDBBICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMEIgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiAwQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDBEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMEUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwRiAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDEwICovICB7 IFVEX0ltb3ZzZCwgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiAxMSAqLyAgeyBVRF9JbW92c2QsICAgICAgIE9fVywgICAg IE9fViwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMTIg Ki8gIHsgVURfSW1vdmRkdXAsICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDEzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMTQgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxNSAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDE2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogMTcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxOCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDE5ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUEgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAxQiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDFDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxRSAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDFGICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog MjAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiAyMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDIyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjMgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyNCAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI1 ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMjYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAyNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI4ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjkgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyQSAq LyAgeyBVRF9JY3Z0c2kyc2QsICAgIE9fViwgICAgIE9fRXgsICAgIE9fTk9ORSwgIFBfYzJ8UF9h c298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMkIgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyQyAqLyAg eyBVRF9JY3Z0dHNkMnNpLCAgIE9fR3Z3LCAgIE9fVywgICAgIE9fTk9ORSwgIFBfYzF8UF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAyRCAqLyAgeyBVRF9JY3Z0c2Qyc2ksICAgIE9f R3Z3LCAgIE9fVywgICAgIE9fTk9ORSwgIFBfYzF8UF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiAyRSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDJGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzAgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzMSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDMyICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogMzMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiAzNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzYgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzNyAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDM4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogMzkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNCICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0MgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAzRCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDNFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0YgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0MCAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDQxICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog NDIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiA0MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDQ0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNDUgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0NiAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDQ3 ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogNDggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiA0OSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDRBICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNEIgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0QyAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDREICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogNEUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0RiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDUwICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNTEgKi8g IHsgVURfSXNxcnRzZCwgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDUyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNTMgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA1NCAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDU1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogNTYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiA1NyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDU4ICovICB7IFVEX0lhZGRzZCwgICAg ICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiA1OSAqLyAgeyBVRF9JbXVsc2QsICAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9O RSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNUEgKi8gIHsgVURfSWN2dHNk MnNzLCAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIDVCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogNUMgKi8gIHsgVURfSXN1YnNkLCAgICAgICBPX1YsICAg ICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDVE ICovICB7IFVEX0ltaW5zZCwgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA1RSAqLyAgeyBVRF9JZGl2c2QsICAgICAgIE9f ViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogNUYgKi8gIHsgVURfSW1heHNkLCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDYwICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNjEgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2 MiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDYzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogNjQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2NSAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDY2ICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNjcg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiA2OCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDY5ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNkEgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2QiAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDZDICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogNkQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiA2RSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDZGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNzAgKi8gIHsgVURfSXBzaHVm bHcsICAgICBPX1YsICAgICBPX1csICAgICBPX0liLCAgICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAogIC8qIDcxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogNzIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3MyAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDc0ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog NzUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiA3NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDc3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNzggKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3OSAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDdB ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogN0IgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiA3QyAqLyAgeyBVRF9JaGFkZHBzLCAgICAgIE9fViwgICAgIE9f VywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogN0QgKi8g IHsgVURfSWhzdWJwcywgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3Jl eHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDdFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogN0YgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4MCAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDgxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogODIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiA4MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDg0ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogODUgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4 NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDg3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogODggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4OSAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDhBICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOEIg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiA4QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDhEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOEUgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4RiAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDkwICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogOTEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiA5MiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDkzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOTQgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5NSAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDk2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogOTcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5OCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDk5ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOUEgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA5QiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDlDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogOUQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5RSAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDlGICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog QTAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiBBMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIEEyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQTMgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBNCAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEE1 ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogQTYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiBBNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEE4ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQTkgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBQSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIEFCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogQUMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBRCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEFFICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQUYgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiBCMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIEIxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQjIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCMyAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEI0ICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogQjUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiBCNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEI3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQjggKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCOSAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IEJBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogQkIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiBCQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEJEICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQkUgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBC RiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIEMwICovICB7IFVEX0l4YWRkLCAgICAgICAgT19FYiwgICAgT19HYiwgICAgT19O T05FLCAgUF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQzEgKi8gIHsg VURfSXhhZGQsICAgICAgICBPX0V2LCAgICBPX0d2LCAgICBPX05PTkUsICBQX2Fzb3xQX29zb3xQ X3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIEMyICovICB7IFVEX0ljbXBzZCwgICAgICAgT19W LCAgICAgT19XLCAgICAgT19JYiwgICAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAv KiBDMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIEM0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogQzUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDNiAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEM3ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog QzggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiBDOSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIENBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQ0IgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDQyAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIENE ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogQ0UgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiBDRiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEQwICovICB7IFVEX0lhZGRzdWJwcywgICAg T19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwK ICAvKiBEMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIEQyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRDMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBENCAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEQ1ICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogRDYgKi8gIHsgVURfSW1vdmRxMnEsICAgICBPX1AsICAgICBPX1ZSLCAgICBPX05PTkUsICBQ X2Fzb3xQX3JleGIgfSwKICAvKiBENyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEQ4ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRDkgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBEQSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIERCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogREMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBERCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIERFICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogREYgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiBFMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIEUxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRTIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBFMyAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEU0ICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogRTUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiBFNiAqLyAgeyBVRF9JY3Z0cGQyZHEsICAgIE9fViwgICAgIE9fVywgICAg IE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogRTcgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBF OCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIEU5ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogRUEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBFQiAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEVDICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRUQg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiBFRSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIEVGICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRjAgKi8gIHsgVURfSWxkZHF1LCAgICAgICBP X1YsICAgICBPX00sICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAog IC8qIEYxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogRjIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiBGMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEY0ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRjUgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiBGNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIEY3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogRjggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBGOSAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEZBICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog RkIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiBGQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIEZEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRkUgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBGRiAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3Rh dGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0YWJfX3BmeF9zc2VmM19fMGZbMjU2XSA9IHsKICAv KiAwMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDAxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMyAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA0ICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog MDUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiAwNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDA3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDggKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwOSAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDBB ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMEIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAwQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDBEICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMEUgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwRiAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDEwICovICB7IFVEX0ltb3ZzcywgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05F LCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAxMSAqLyAgeyBVRF9JbW92c3Ms ICAgICAgIE9fVywgICAgIE9fViwgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9y ZXhiIH0sCiAgLyogMTIgKi8gIHsgVURfSW1vdnNsZHVwLCAgICBPX1YsICAgICBPX1csICAgICBP X05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDEzICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMTQg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiAxNSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDE2ICovICB7IFVEX0ltb3ZzaGR1cCwgICAgT19WLCAgICAgT19X LCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiAxNyAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDE4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogMTkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiAxQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDFCICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUMgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiAxRCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDFFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogMUYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyMCAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDIxICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog MjIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiAyMyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDI0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMjUgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyNiAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDI3 ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogMjggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiAyOSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDJBICovICB7IFVEX0ljdnRzaTJzcywgICAg T19WLCAgICAgT19FeCwgICAgT19OT05FLCAgUF9jMnxQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDJCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMkMgKi8gIHsgVURfSWN2dHRzczJzaSwgICBPX0d2dywgICBP X1csICAgICBPX05PTkUsICBQX2MxfFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyog MkQgKi8gIHsgVURfSWN2dHNzMnNpLCAgICBPX0d2dywgICBPX1csICAgICBPX05PTkUsICBQX2Mx fFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogMkUgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAyRiAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IDMwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogMzEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiAzMiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDMzICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMzQgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAz NSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIDM2ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogMzcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzOCAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDM5ICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0Eg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiAzQiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDNDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogM0QgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAzRSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDNGICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogNDAgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiA0MSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDQyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNDMgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0NCAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDQ1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogNDYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0NyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDQ4ICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNDkgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA0QSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDRCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogNEMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA0RCAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDRFICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog NEYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiA1MCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDUxICovICB7IFVEX0lzcXJ0c3MsICAgICAgT19WLCAgICAg T19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA1MiAq LyAgeyBVRF9JcnNxcnRzcywgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBf cmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNTMgKi8gIHsgVURfSXJjcHNzLCAgICAgICBPX1Ys ICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8q IDU0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogNTUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiA1NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDU3ICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNTggKi8gIHsgVURf SWFkZHNzLCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9y ZXh4fFBfcmV4YiB9LAogIC8qIDU5ICovICB7IFVEX0ltdWxzcywgICAgICAgT19WLCAgICAgT19X LCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA1QSAqLyAg eyBVRF9JY3Z0c3Myc2QsICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4 cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNUIgKi8gIHsgVURfSWN2dHRwczJkcSwgICBPX1YsICAg ICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDVD ICovICB7IFVEX0lzdWJzcywgICAgICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298 UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA1RCAqLyAgeyBVRF9JbWluc3MsICAgICAgIE9f ViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAg LyogNUUgKi8gIHsgVURfSWRpdnNzLCAgICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQ X2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9LAogIC8qIDVGICovICB7IFVEX0ltYXhzcywgICAg ICAgT19WLCAgICAgT19XLCAgICAgT19OT05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIg fSwKICAvKiA2MCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIDYxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNjIgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2MyAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDY0ICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogNjUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiA2NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDY3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNjggKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2OSAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDZBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogNkIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiA2QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDZEICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNkUgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA2RiAqLyAgeyBVRF9JbW92ZHF1LCAgICAgIE9fViwgICAgIE9fVywgICAgIE9fTk9ORSwgIFBf YXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogNzAgKi8gIHsgVURfSXBzaHVmaHcsICAg ICBPX1YsICAgICBPX1csICAgICBPX0liLCAgICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4YiB9 LAogIC8qIDcxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogNzIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDc0ICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNzUgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiA3NiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIDc3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogNzggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA3OSAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDdBICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogN0IgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiA3QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDdEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogN0UgKi8gIHsgVURfSW1vdnEsICAg ICAgICBPX1YsICAgICBPX1csICAgICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBfcmV4 YiB9LAogIC8qIDdGICovICB7IFVEX0ltb3ZkcXUsICAgICAgT19XLCAgICAgT19WLCAgICAgT19O T05FLCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiA4MCAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDgxICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogODIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiA4MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDg0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogODUgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4NiAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIDg3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAg UF9ub25lIH0sCiAgLyogODggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwg T19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4OSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9O RSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDhBICovICB7IFVEX0lpbnZhbGlk LCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOEIgKi8gIHsg VURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAv KiA4QyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBf bm9uZSB9LAogIC8qIDhEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogOEUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA4RiAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDkwICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog OTEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiA5MiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIDkzICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOTQgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5NSAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDk2 ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogOTcgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiA5OCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDk5ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogOUEgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5QiAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDlDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogOUQgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiA5RSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDlGICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQTAgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiBBMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIEEyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQTMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBNCAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEE1ICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogQTYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiBBNyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEE4ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQTkgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBBQSAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IEFCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogQUMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiBBRCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEFFICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQUYgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBC MCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIEIxICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogQjIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCMyAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEI0ICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQjUg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiBCNiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIEI3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQjggKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCOSAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEJBICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogQkIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiBCQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEJEICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQkUgKi8gIHsgVURfSWludmFs aWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBCRiAqLyAg eyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAog IC8qIEMwICovICB7IFVEX0l4YWRkLCAgICAgICAgT19FYiwgICAgT19HYiwgICAgT19OT05FLCAg UF9hc298UF9yZXh3fFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQzEgKi8gIHsgVURfSXhh ZGQsICAgICAgICBPX0V2LCAgICBPX0d2LCAgICBPX05PTkUsICBQX2Fzb3xQX3JleHd8UF9yZXhy fFBfcmV4eHxQX3JleGIgfSwKICAvKiBDMiAqLyAgeyBVRF9JY21wc3MsICAgICAgIE9fViwgICAg IE9fVywgICAgIE9fSWIsICAgIFBfYXNvfFBfcmV4cnxQX3JleHh8UF9yZXhiIH0sCiAgLyogQzMg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiBDNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIEM1ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQzYgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDNyAqLyAgeyBVRF9JZ3Jw X3JlZywgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIElUQUJfX1BGWF9TU0VGM19fMEZf X09QX0M3X19SRUcgfSwKICAvKiBDOCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEM5ICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogQ0EgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDQiAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIENDICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogQ0QgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBDRSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIENGICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRDAgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiBEMSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IFBfbm9uZSB9LAogIC8qIEQyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUs IE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRDMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05P TkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBENCAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEQ1ICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogRDYgKi8gIHsgVURfSW1vdnEyZHEsICAgICBPX1YsICAgICBPX1BSLCAgICBPX05PTkUsICBQ X2FzbyB9LAogIC8qIEQ3ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9f Tk9ORSwgICAgUF9ub25lIH0sCiAgLyogRDggKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUs IE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBEOSAqLyAgeyBVRF9JaW52YWxpZCwg ICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIERBICovICB7IFVE X0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyog REIgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25v bmUgfSwKICAvKiBEQyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05P TkUsICAgIFBfbm9uZSB9LAogIC8qIEREICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBP X05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogREUgKi8gIHsgVURfSWludmFsaWQsICAg ICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBERiAqLyAgeyBVRF9J aW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEUw ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25l IH0sCiAgLyogRTEgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05F LCAgICBQX25vbmUgfSwKICAvKiBFMiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19O T05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEUzICovICB7IFVEX0lpbnZhbGlkLCAgICAg T19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRTQgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBFNSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIEU2ICovICB7IFVEX0ljdnRkcTJwZCwgICAgT19WLCAgICAgT19XLCAgICAgT19OT05F LCAgUF9hc298UF9yZXhyfFBfcmV4eHxQX3JleGIgfSwKICAvKiBFNyAqLyAgeyBVRF9JaW52YWxp ZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEU4ICovICB7 IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAg LyogRTkgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQ X25vbmUgfSwKICAvKiBFQSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBP X05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEVCICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05F LCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRUMgKi8gIHsgVURfSWludmFsaWQs ICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBFRCAqLyAgeyBV RF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8q IEVFICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9u b25lIH0sCiAgLyogRUYgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCAgICBQX25vbmUgfSwKICAvKiBGMCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwg T19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEYxICovICB7IFVEX0lpbnZhbGlkLCAg ICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRjIgKi8gIHsgVURf SWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBG MyAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9u ZSB9LAogIC8qIEY0ICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9O RSwgICAgUF9ub25lIH0sCiAgLyogRjUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9f Tk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBGNiAqLyAgeyBVRF9JaW52YWxpZCwgICAg IE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEY3ICovICB7IFVEX0lp bnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRjgg Ki8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUg fSwKICAvKiBGOSAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUs ICAgIFBfbm9uZSB9LAogIC8qIEZBICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05P TkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogRkIgKi8gIHsgVURfSWludmFsaWQsICAgICBP X05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiBGQyAqLyAgeyBVRF9JaW52 YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIEZEICov ICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0s CiAgLyogRkUgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAg ICBQX25vbmUgfSwKICAvKiBGRiAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05F LCBPX05PTkUsICAgIFBfbm9uZSB9LAp9OwoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGl0 YWJfX3BmeF9zc2VmM19fMGZfX29wX2M3X19yZWdbOF0gPSB7CiAgLyogMDAgKi8gIHsgVURfSWlu dmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwMSAq LyAgeyBVRF9JaW52YWxpZCwgICAgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9 LAogIC8qIDAyICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwg ICAgUF9ub25lIH0sCiAgLyogMDMgKi8gIHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9O RSwgT19OT05FLCAgICBQX25vbmUgfSwKICAvKiAwNCAqLyAgeyBVRF9JaW52YWxpZCwgICAgIE9f Tk9ORSwgT19OT05FLCBPX05PTkUsICAgIFBfbm9uZSB9LAogIC8qIDA1ICovICB7IFVEX0lpbnZh bGlkLCAgICAgT19OT05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDYgKi8g IHsgVURfSWludmFsaWQsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCAgICBQX25vbmUgfSwK ICAvKiAwNyAqLyAgeyBVRF9JZ3JwX3ZlbmRvciwgIE9fTk9ORSwgT19OT05FLCBPX05PTkUsICAg IElUQUJfX1BGWF9TU0VGM19fMEZfX09QX0M3X19SRUdfX09QXzA3X19WRU5ET1IgfSwKfTsKCnN0 YXRpYyBzdHJ1Y3QgdWRfaXRhYl9lbnRyeSBpdGFiX19wZnhfc3NlZjNfXzBmX19vcF9jN19fcmVn X19vcF8wN19fdmVuZG9yWzJdID0gewogIC8qIDAwICovICB7IFVEX0lpbnZhbGlkLCAgICAgT19O T05FLCBPX05PTkUsIE9fTk9ORSwgICAgUF9ub25lIH0sCiAgLyogMDEgKi8gIHsgVURfSXZteG9u LCAgICAgICBPX01xLCAgICBPX05PTkUsICBPX05PTkUsICBQX2Fzb3xQX3JleHJ8UF9yZXh4fFBf cmV4YiB9LAp9OwoKLyogdGhlIG9yZGVyIG9mIHRoaXMgdGFibGUgbWF0Y2hlcyBlbnVtIHVkX2l0 YWJfaW5kZXggKi8Kc3RydWN0IHVkX2l0YWJfZW50cnkgKiB1ZF9pdGFiX2xpc3RbXSA9IHsKICBp dGFiX18wZiwKICBpdGFiX18wZl9fb3BfMDBfX3JlZywKICBpdGFiX18wZl9fb3BfMDFfX3JlZywK ICBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3BfMDBfX21vZCwKICBpdGFiX18wZl9fb3BfMDFfX3Jl Z19fb3BfMDBfX21vZF9fb3BfMDFfX3JtLAogIGl0YWJfXzBmX19vcF8wMV9fcmVnX19vcF8wMF9f bW9kX19vcF8wMV9fcm1fX29wXzAxX192ZW5kb3IsCiAgaXRhYl9fMGZfX29wXzAxX19yZWdfX29w XzAwX19tb2RfX29wXzAxX19ybV9fb3BfMDNfX3ZlbmRvciwKICBpdGFiX18wZl9fb3BfMDFfX3Jl Z19fb3BfMDBfX21vZF9fb3BfMDFfX3JtX19vcF8wNF9fdmVuZG9yLAogIGl0YWJfXzBmX19vcF8w MV9fcmVnX19vcF8wMV9fbW9kLAogIGl0YWJfXzBmX19vcF8wMV9fcmVnX19vcF8wMV9fbW9kX19v cF8wMV9fcm0sCiAgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAyX19tb2QsCiAgaXRhYl9fMGZf X29wXzAxX19yZWdfX29wXzAzX19tb2QsCiAgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAzX19t b2RfX29wXzAxX19ybSwKICBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3BfMDNfX21vZF9fb3BfMDFf X3JtX19vcF8wMF9fdmVuZG9yLAogIGl0YWJfXzBmX19vcF8wMV9fcmVnX19vcF8wM19fbW9kX19v cF8wMV9fcm1fX29wXzAxX192ZW5kb3IsCiAgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzAzX19t b2RfX29wXzAxX19ybV9fb3BfMDJfX3ZlbmRvciwKICBpdGFiX18wZl9fb3BfMDFfX3JlZ19fb3Bf MDNfX21vZF9fb3BfMDFfX3JtX19vcF8wM19fdmVuZG9yLAogIGl0YWJfXzBmX19vcF8wMV9fcmVn X19vcF8wM19fbW9kX19vcF8wMV9fcm1fX29wXzA0X192ZW5kb3IsCiAgaXRhYl9fMGZfX29wXzAx X19yZWdfX29wXzAzX19tb2RfX29wXzAxX19ybV9fb3BfMDVfX3ZlbmRvciwKICBpdGFiX18wZl9f b3BfMDFfX3JlZ19fb3BfMDNfX21vZF9fb3BfMDFfX3JtX19vcF8wNl9fdmVuZG9yLAogIGl0YWJf XzBmX19vcF8wMV9fcmVnX19vcF8wM19fbW9kX19vcF8wMV9fcm1fX29wXzA3X192ZW5kb3IsCiAg aXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzA0X19tb2QsCiAgaXRhYl9fMGZfX29wXzAxX19yZWdf X29wXzA2X19tb2QsCiAgaXRhYl9fMGZfX29wXzAxX19yZWdfX29wXzA3X19tb2QsCiAgaXRhYl9f MGZfX29wXzAxX19yZWdfX29wXzA3X19tb2RfX29wXzAxX19ybSwKICBpdGFiX18wZl9fb3BfMDFf X3JlZ19fb3BfMDdfX21vZF9fb3BfMDFfX3JtX19vcF8wMV9fdmVuZG9yLAogIGl0YWJfXzBmX19v cF8wZF9fcmVnLAogIGl0YWJfXzBmX19vcF8xOF9fcmVnLAogIGl0YWJfXzBmX19vcF83MV9fcmVn LAogIGl0YWJfXzBmX19vcF83Ml9fcmVnLAogIGl0YWJfXzBmX19vcF83M19fcmVnLAogIGl0YWJf XzBmX19vcF9hZV9fcmVnLAogIGl0YWJfXzBmX19vcF9hZV9fcmVnX19vcF8wNV9fbW9kLAogIGl0 YWJfXzBmX19vcF9hZV9fcmVnX19vcF8wNV9fbW9kX19vcF8wMV9fcm0sCiAgaXRhYl9fMGZfX29w X2FlX19yZWdfX29wXzA2X19tb2QsCiAgaXRhYl9fMGZfX29wX2FlX19yZWdfX29wXzA2X19tb2Rf X29wXzAxX19ybSwKICBpdGFiX18wZl9fb3BfYWVfX3JlZ19fb3BfMDdfX21vZCwKICBpdGFiX18w Zl9fb3BfYWVfX3JlZ19fb3BfMDdfX21vZF9fb3BfMDFfX3JtLAogIGl0YWJfXzBmX19vcF9iYV9f cmVnLAogIGl0YWJfXzBmX19vcF9jN19fcmVnLAogIGl0YWJfXzBmX19vcF9jN19fcmVnX19vcF8w MF9fdmVuZG9yLAogIGl0YWJfXzBmX19vcF9jN19fcmVnX19vcF8wN19fdmVuZG9yLAogIGl0YWJf XzBmX19vcF9kOV9fbW9kLAogIGl0YWJfXzBmX19vcF9kOV9fbW9kX19vcF8wMV9feDg3LAogIGl0 YWJfXzFieXRlLAogIGl0YWJfXzFieXRlX19vcF82MF9fb3NpemUsCiAgaXRhYl9fMWJ5dGVfX29w XzYxX19vc2l6ZSwKICBpdGFiX18xYnl0ZV9fb3BfNjNfX21vZGUsCiAgaXRhYl9fMWJ5dGVfX29w XzZkX19vc2l6ZSwKICBpdGFiX18xYnl0ZV9fb3BfNmZfX29zaXplLAogIGl0YWJfXzFieXRlX19v cF84MF9fcmVnLAogIGl0YWJfXzFieXRlX19vcF84MV9fcmVnLAogIGl0YWJfXzFieXRlX19vcF84 Ml9fcmVnLAogIGl0YWJfXzFieXRlX19vcF84M19fcmVnLAogIGl0YWJfXzFieXRlX19vcF84Zl9f cmVnLAogIGl0YWJfXzFieXRlX19vcF85OF9fb3NpemUsCiAgaXRhYl9fMWJ5dGVfX29wXzk5X19v c2l6ZSwKICBpdGFiX18xYnl0ZV9fb3BfOWNfX21vZGUsCiAgaXRhYl9fMWJ5dGVfX29wXzljX19t b2RlX19vcF8wMF9fb3NpemUsCiAgaXRhYl9fMWJ5dGVfX29wXzljX19tb2RlX19vcF8wMV9fb3Np emUsCiAgaXRhYl9fMWJ5dGVfX29wXzlkX19tb2RlLAogIGl0YWJfXzFieXRlX19vcF85ZF9fbW9k ZV9fb3BfMDBfX29zaXplLAogIGl0YWJfXzFieXRlX19vcF85ZF9fbW9kZV9fb3BfMDFfX29zaXpl LAogIGl0YWJfXzFieXRlX19vcF9hNV9fb3NpemUsCiAgaXRhYl9fMWJ5dGVfX29wX2E3X19vc2l6 ZSwKICBpdGFiX18xYnl0ZV9fb3BfYWJfX29zaXplLAogIGl0YWJfXzFieXRlX19vcF9hZF9fb3Np emUsCiAgaXRhYl9fMWJ5dGVfX29wX2FlX19tb2QsCiAgaXRhYl9fMWJ5dGVfX29wX2FlX19tb2Rf X29wXzAwX19yZWcsCiAgaXRhYl9fMWJ5dGVfX29wX2FmX19vc2l6ZSwKICBpdGFiX18xYnl0ZV9f b3BfYzBfX3JlZywKICBpdGFiX18xYnl0ZV9fb3BfYzFfX3JlZywKICBpdGFiX18xYnl0ZV9fb3Bf YzZfX3JlZywKICBpdGFiX18xYnl0ZV9fb3BfYzdfX3JlZywKICBpdGFiX18xYnl0ZV9fb3BfY2Zf X29zaXplLAogIGl0YWJfXzFieXRlX19vcF9kMF9fcmVnLAogIGl0YWJfXzFieXRlX19vcF9kMV9f cmVnLAogIGl0YWJfXzFieXRlX19vcF9kMl9fcmVnLAogIGl0YWJfXzFieXRlX19vcF9kM19fcmVn LAogIGl0YWJfXzFieXRlX19vcF9kOF9fbW9kLAogIGl0YWJfXzFieXRlX19vcF9kOF9fbW9kX19v cF8wMF9fcmVnLAogIGl0YWJfXzFieXRlX19vcF9kOF9fbW9kX19vcF8wMV9feDg3LAogIGl0YWJf XzFieXRlX19vcF9kOV9fbW9kLAogIGl0YWJfXzFieXRlX19vcF9kOV9fbW9kX19vcF8wMF9fcmVn LAogIGl0YWJfXzFieXRlX19vcF9kOV9fbW9kX19vcF8wMV9feDg3LAogIGl0YWJfXzFieXRlX19v cF9kYV9fbW9kLAogIGl0YWJfXzFieXRlX19vcF9kYV9fbW9kX19vcF8wMF9fcmVnLAogIGl0YWJf XzFieXRlX19vcF9kYV9fbW9kX19vcF8wMV9feDg3LAogIGl0YWJfXzFieXRlX19vcF9kYl9fbW9k LAogIGl0YWJfXzFieXRlX19vcF9kYl9fbW9kX19vcF8wMF9fcmVnLAogIGl0YWJfXzFieXRlX19v cF9kYl9fbW9kX19vcF8wMV9feDg3LAogIGl0YWJfXzFieXRlX19vcF9kY19fbW9kLAogIGl0YWJf XzFieXRlX19vcF9kY19fbW9kX19vcF8wMF9fcmVnLAogIGl0YWJfXzFieXRlX19vcF9kY19fbW9k X19vcF8wMV9feDg3LAogIGl0YWJfXzFieXRlX19vcF9kZF9fbW9kLAogIGl0YWJfXzFieXRlX19v cF9kZF9fbW9kX19vcF8wMF9fcmVnLAogIGl0YWJfXzFieXRlX19vcF9kZF9fbW9kX19vcF8wMV9f eDg3LAogIGl0YWJfXzFieXRlX19vcF9kZV9fbW9kLAogIGl0YWJfXzFieXRlX19vcF9kZV9fbW9k X19vcF8wMF9fcmVnLAogIGl0YWJfXzFieXRlX19vcF9kZV9fbW9kX19vcF8wMV9feDg3LAogIGl0 YWJfXzFieXRlX19vcF9kZl9fbW9kLAogIGl0YWJfXzFieXRlX19vcF9kZl9fbW9kX19vcF8wMF9f cmVnLAogIGl0YWJfXzFieXRlX19vcF9kZl9fbW9kX19vcF8wMV9feDg3LAogIGl0YWJfXzFieXRl X19vcF9lM19fYXNpemUsCiAgaXRhYl9fMWJ5dGVfX29wX2Y2X19yZWcsCiAgaXRhYl9fMWJ5dGVf X29wX2Y3X19yZWcsCiAgaXRhYl9fMWJ5dGVfX29wX2ZlX19yZWcsCiAgaXRhYl9fMWJ5dGVfX29w X2ZmX19yZWcsCiAgaXRhYl9fM2Rub3csCiAgaXRhYl9fcGZ4X3NzZTY2X18wZiwKICBpdGFiX19w Znhfc3NlNjZfXzBmX19vcF83MV9fcmVnLAogIGl0YWJfX3BmeF9zc2U2Nl9fMGZfX29wXzcyX19y ZWcsCiAgaXRhYl9fcGZ4X3NzZTY2X18wZl9fb3BfNzNfX3JlZywKICBpdGFiX19wZnhfc3NlNjZf XzBmX19vcF9jN19fcmVnLAogIGl0YWJfX3BmeF9zc2U2Nl9fMGZfX29wX2M3X19yZWdfX29wXzAw X192ZW5kb3IsCiAgaXRhYl9fcGZ4X3NzZWYyX18wZiwKICBpdGFiX19wZnhfc3NlZjNfXzBmLAog IGl0YWJfX3BmeF9zc2VmM19fMGZfX29wX2M3X19yZWcsCiAgaXRhYl9fcGZ4X3NzZWYzX18wZl9f b3BfYzdfX3JlZ19fb3BfMDdfX3ZlbmRvciwKfTsKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAGtkYi94ODYvdWRpczg2LTEuNy9SRUFETUUAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1NgAwMDAwMDAwMDIwMQAxMTc2NTQ2NTU1NgAwMTQ1 MTcAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABt cmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAACmh0dHA6Ly91ZGlzODYuc291cmNlZm9yZ2UubmV0Lwp1ZGlzODYt MS42IDogCiAgLSBjZCBsaWJ1ZGlzODYKICAtIGNwICpjIHRvIGhlcmUKICAtIGNwICpoIHRvIGhl cmUKICAgCk11a2VzaCBSYXRob3IKMDQvMzAvMjAwOAoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAABrZGIveDg2L3VkaXM4Ni0xLjcvaXRhYi5oAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAMDAwMDY2NAAwMDAyNzU2ADAwMDI3NTYAMDAwMDAwMjc2MDIAMTE3NjU0NjU1NTYAMDE0NzQ1 ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbXJh dGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAovKiBpdGFiLmggLS0gYXV0byBnZW5lcmF0ZWQgYnkgb3BnZW4ucHks IGRvIG5vdCBlZGl0LiAqLwoKI2lmbmRlZiBVRF9JVEFCX0gKI2RlZmluZSBVRF9JVEFCX0gKCgoK ZW51bSB1ZF9pdGFiX3ZlbmRvcl9pbmRleCB7CiAgSVRBQl9fVkVORE9SX0lORFhfX0FNRCwKICBJ VEFCX19WRU5ET1JfSU5EWF9fSU5URUwsCn07CgoKZW51bSB1ZF9pdGFiX21vZGVfaW5kZXggewog IElUQUJfX01PREVfSU5EWF9fMTYsCiAgSVRBQl9fTU9ERV9JTkRYX18zMiwKICBJVEFCX19NT0RF X0lORFhfXzY0Cn07CgoKZW51bSB1ZF9pdGFiX21vZF9pbmRleCB7CiAgSVRBQl9fTU9EX0lORFhf X05PVF8xMSwKICBJVEFCX19NT0RfSU5EWF9fMTEKfTsKCgplbnVtIHVkX2l0YWJfaW5kZXggewog IElUQUJfXzBGLAogIElUQUJfXzBGX19PUF8wMF9fUkVHLAogIElUQUJfXzBGX19PUF8wMV9fUkVH LAogIElUQUJfXzBGX19PUF8wMV9fUkVHX19PUF8wMF9fTU9ELAogIElUQUJfXzBGX19PUF8wMV9f UkVHX19PUF8wMF9fTU9EX19PUF8wMV9fUk0sCiAgSVRBQl9fMEZfX09QXzAxX19SRUdfX09QXzAw X19NT0RfX09QXzAxX19STV9fT1BfMDFfX1ZFTkRPUiwKICBJVEFCX18wRl9fT1BfMDFfX1JFR19f T1BfMDBfX01PRF9fT1BfMDFfX1JNX19PUF8wM19fVkVORE9SLAogIElUQUJfXzBGX19PUF8wMV9f UkVHX19PUF8wMF9fTU9EX19PUF8wMV9fUk1fX09QXzA0X19WRU5ET1IsCiAgSVRBQl9fMEZfX09Q XzAxX19SRUdfX09QXzAxX19NT0QsCiAgSVRBQl9fMEZfX09QXzAxX19SRUdfX09QXzAxX19NT0Rf X09QXzAxX19STSwKICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDJfX01PRCwKICBJVEFCX18w Rl9fT1BfMDFfX1JFR19fT1BfMDNfX01PRCwKICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDNf X01PRF9fT1BfMDFfX1JNLAogIElUQUJfXzBGX19PUF8wMV9fUkVHX19PUF8wM19fTU9EX19PUF8w MV9fUk1fX09QXzAwX19WRU5ET1IsCiAgSVRBQl9fMEZfX09QXzAxX19SRUdfX09QXzAzX19NT0Rf X09QXzAxX19STV9fT1BfMDFfX1ZFTkRPUiwKICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDNf X01PRF9fT1BfMDFfX1JNX19PUF8wMl9fVkVORE9SLAogIElUQUJfXzBGX19PUF8wMV9fUkVHX19P UF8wM19fTU9EX19PUF8wMV9fUk1fX09QXzAzX19WRU5ET1IsCiAgSVRBQl9fMEZfX09QXzAxX19S RUdfX09QXzAzX19NT0RfX09QXzAxX19STV9fT1BfMDRfX1ZFTkRPUiwKICBJVEFCX18wRl9fT1Bf MDFfX1JFR19fT1BfMDNfX01PRF9fT1BfMDFfX1JNX19PUF8wNV9fVkVORE9SLAogIElUQUJfXzBG X19PUF8wMV9fUkVHX19PUF8wM19fTU9EX19PUF8wMV9fUk1fX09QXzA2X19WRU5ET1IsCiAgSVRB Ql9fMEZfX09QXzAxX19SRUdfX09QXzAzX19NT0RfX09QXzAxX19STV9fT1BfMDdfX1ZFTkRPUiwK ICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDRfX01PRCwKICBJVEFCX18wRl9fT1BfMDFfX1JF R19fT1BfMDZfX01PRCwKICBJVEFCX18wRl9fT1BfMDFfX1JFR19fT1BfMDdfX01PRCwKICBJVEFC X18wRl9fT1BfMDFfX1JFR19fT1BfMDdfX01PRF9fT1BfMDFfX1JNLAogIElUQUJfXzBGX19PUF8w MV9fUkVHX19PUF8wN19fTU9EX19PUF8wMV9fUk1fX09QXzAxX19WRU5ET1IsCiAgSVRBQl9fMEZf X09QXzBEX19SRUcsCiAgSVRBQl9fMEZfX09QXzE4X19SRUcsCiAgSVRBQl9fMEZfX09QXzcxX19S RUcsCiAgSVRBQl9fMEZfX09QXzcyX19SRUcsCiAgSVRBQl9fMEZfX09QXzczX19SRUcsCiAgSVRB Ql9fMEZfX09QX0FFX19SRUcsCiAgSVRBQl9fMEZfX09QX0FFX19SRUdfX09QXzA1X19NT0QsCiAg SVRBQl9fMEZfX09QX0FFX19SRUdfX09QXzA1X19NT0RfX09QXzAxX19STSwKICBJVEFCX18wRl9f T1BfQUVfX1JFR19fT1BfMDZfX01PRCwKICBJVEFCX18wRl9fT1BfQUVfX1JFR19fT1BfMDZfX01P RF9fT1BfMDFfX1JNLAogIElUQUJfXzBGX19PUF9BRV9fUkVHX19PUF8wN19fTU9ELAogIElUQUJf XzBGX19PUF9BRV9fUkVHX19PUF8wN19fTU9EX19PUF8wMV9fUk0sCiAgSVRBQl9fMEZfX09QX0JB X19SRUcsCiAgSVRBQl9fMEZfX09QX0M3X19SRUcsCiAgSVRBQl9fMEZfX09QX0M3X19SRUdfX09Q XzAwX19WRU5ET1IsCiAgSVRBQl9fMEZfX09QX0M3X19SRUdfX09QXzA3X19WRU5ET1IsCiAgSVRB Ql9fMEZfX09QX0Q5X19NT0QsCiAgSVRBQl9fMEZfX09QX0Q5X19NT0RfX09QXzAxX19YODcsCiAg SVRBQl9fMUJZVEUsCiAgSVRBQl9fMUJZVEVfX09QXzYwX19PU0laRSwKICBJVEFCX18xQllURV9f T1BfNjFfX09TSVpFLAogIElUQUJfXzFCWVRFX19PUF82M19fTU9ERSwKICBJVEFCX18xQllURV9f T1BfNkRfX09TSVpFLAogIElUQUJfXzFCWVRFX19PUF82Rl9fT1NJWkUsCiAgSVRBQl9fMUJZVEVf X09QXzgwX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QXzgxX19SRUcsCiAgSVRBQl9fMUJZVEVfX09Q XzgyX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QXzgzX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QXzhG X19SRUcsCiAgSVRBQl9fMUJZVEVfX09QXzk4X19PU0laRSwKICBJVEFCX18xQllURV9fT1BfOTlf X09TSVpFLAogIElUQUJfXzFCWVRFX19PUF85Q19fTU9ERSwKICBJVEFCX18xQllURV9fT1BfOUNf X01PREVfX09QXzAwX19PU0laRSwKICBJVEFCX18xQllURV9fT1BfOUNfX01PREVfX09QXzAxX19P U0laRSwKICBJVEFCX18xQllURV9fT1BfOURfX01PREUsCiAgSVRBQl9fMUJZVEVfX09QXzlEX19N T0RFX19PUF8wMF9fT1NJWkUsCiAgSVRBQl9fMUJZVEVfX09QXzlEX19NT0RFX19PUF8wMV9fT1NJ WkUsCiAgSVRBQl9fMUJZVEVfX09QX0E1X19PU0laRSwKICBJVEFCX18xQllURV9fT1BfQTdfX09T SVpFLAogIElUQUJfXzFCWVRFX19PUF9BQl9fT1NJWkUsCiAgSVRBQl9fMUJZVEVfX09QX0FEX19P U0laRSwKICBJVEFCX18xQllURV9fT1BfQUVfX01PRCwKICBJVEFCX18xQllURV9fT1BfQUVfX01P RF9fT1BfMDBfX1JFRywKICBJVEFCX18xQllURV9fT1BfQUZfX09TSVpFLAogIElUQUJfXzFCWVRF X19PUF9DMF9fUkVHLAogIElUQUJfXzFCWVRFX19PUF9DMV9fUkVHLAogIElUQUJfXzFCWVRFX19P UF9DNl9fUkVHLAogIElUQUJfXzFCWVRFX19PUF9DN19fUkVHLAogIElUQUJfXzFCWVRFX19PUF9D Rl9fT1NJWkUsCiAgSVRBQl9fMUJZVEVfX09QX0QwX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QX0Qx X19SRUcsCiAgSVRBQl9fMUJZVEVfX09QX0QyX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QX0QzX19S RUcsCiAgSVRBQl9fMUJZVEVfX09QX0Q4X19NT0QsCiAgSVRBQl9fMUJZVEVfX09QX0Q4X19NT0Rf X09QXzAwX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QX0Q4X19NT0RfX09QXzAxX19YODcsCiAgSVRB Ql9fMUJZVEVfX09QX0Q5X19NT0QsCiAgSVRBQl9fMUJZVEVfX09QX0Q5X19NT0RfX09QXzAwX19S RUcsCiAgSVRBQl9fMUJZVEVfX09QX0Q5X19NT0RfX09QXzAxX19YODcsCiAgSVRBQl9fMUJZVEVf X09QX0RBX19NT0QsCiAgSVRBQl9fMUJZVEVfX09QX0RBX19NT0RfX09QXzAwX19SRUcsCiAgSVRB Ql9fMUJZVEVfX09QX0RBX19NT0RfX09QXzAxX19YODcsCiAgSVRBQl9fMUJZVEVfX09QX0RCX19N T0QsCiAgSVRBQl9fMUJZVEVfX09QX0RCX19NT0RfX09QXzAwX19SRUcsCiAgSVRBQl9fMUJZVEVf X09QX0RCX19NT0RfX09QXzAxX19YODcsCiAgSVRBQl9fMUJZVEVfX09QX0RDX19NT0QsCiAgSVRB Ql9fMUJZVEVfX09QX0RDX19NT0RfX09QXzAwX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QX0RDX19N T0RfX09QXzAxX19YODcsCiAgSVRBQl9fMUJZVEVfX09QX0REX19NT0QsCiAgSVRBQl9fMUJZVEVf X09QX0REX19NT0RfX09QXzAwX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QX0REX19NT0RfX09QXzAx X19YODcsCiAgSVRBQl9fMUJZVEVfX09QX0RFX19NT0QsCiAgSVRBQl9fMUJZVEVfX09QX0RFX19N T0RfX09QXzAwX19SRUcsCiAgSVRBQl9fMUJZVEVfX09QX0RFX19NT0RfX09QXzAxX19YODcsCiAg SVRBQl9fMUJZVEVfX09QX0RGX19NT0QsCiAgSVRBQl9fMUJZVEVfX09QX0RGX19NT0RfX09QXzAw X19SRUcsCiAgSVRBQl9fMUJZVEVfX09QX0RGX19NT0RfX09QXzAxX19YODcsCiAgSVRBQl9fMUJZ VEVfX09QX0UzX19BU0laRSwKICBJVEFCX18xQllURV9fT1BfRjZfX1JFRywKICBJVEFCX18xQllU RV9fT1BfRjdfX1JFRywKICBJVEFCX18xQllURV9fT1BfRkVfX1JFRywKICBJVEFCX18xQllURV9f T1BfRkZfX1JFRywKICBJVEFCX18zRE5PVywKICBJVEFCX19QRlhfU1NFNjZfXzBGLAogIElUQUJf X1BGWF9TU0U2Nl9fMEZfX09QXzcxX19SRUcsCiAgSVRBQl9fUEZYX1NTRTY2X18wRl9fT1BfNzJf X1JFRywKICBJVEFCX19QRlhfU1NFNjZfXzBGX19PUF83M19fUkVHLAogIElUQUJfX1BGWF9TU0U2 Nl9fMEZfX09QX0M3X19SRUcsCiAgSVRBQl9fUEZYX1NTRTY2X18wRl9fT1BfQzdfX1JFR19fT1Bf MDBfX1ZFTkRPUiwKICBJVEFCX19QRlhfU1NFRjJfXzBGLAogIElUQUJfX1BGWF9TU0VGM19fMEYs CiAgSVRBQl9fUEZYX1NTRUYzX18wRl9fT1BfQzdfX1JFRywKICBJVEFCX19QRlhfU1NFRjNfXzBG X19PUF9DN19fUkVHX19PUF8wN19fVkVORE9SLAp9OwoKCmVudW0gdWRfbW5lbW9uaWNfY29kZSB7 CiAgVURfSTNkbm93LAogIFVEX0lhYWEsCiAgVURfSWFhZCwKICBVRF9JYWFtLAogIFVEX0lhYXMs CiAgVURfSWFkYywKICBVRF9JYWRkLAogIFVEX0lhZGRwZCwKICBVRF9JYWRkcHMsCiAgVURfSWFk ZHNkLAogIFVEX0lhZGRzcywKICBVRF9JYWRkc3VicGQsCiAgVURfSWFkZHN1YnBzLAogIFVEX0lh bmQsCiAgVURfSWFuZHBkLAogIFVEX0lhbmRwcywKICBVRF9JYW5kbnBkLAogIFVEX0lhbmRucHMs CiAgVURfSWFycGwsCiAgVURfSW1vdnN4ZCwKICBVRF9JYm91bmQsCiAgVURfSWJzZiwKICBVRF9J YnNyLAogIFVEX0lic3dhcCwKICBVRF9JYnQsCiAgVURfSWJ0YywKICBVRF9JYnRyLAogIFVEX0li dHMsCiAgVURfSWNhbGwsCiAgVURfSWNidywKICBVRF9JY3dkZSwKICBVRF9JY2RxZSwKICBVRF9J Y2xjLAogIFVEX0ljbGQsCiAgVURfSWNsZmx1c2gsCiAgVURfSWNsZ2ksCiAgVURfSWNsaSwKICBV RF9JY2x0cywKICBVRF9JY21jLAogIFVEX0ljbW92bywKICBVRF9JY21vdm5vLAogIFVEX0ljbW92 YiwKICBVRF9JY21vdmFlLAogIFVEX0ljbW92eiwKICBVRF9JY21vdm56LAogIFVEX0ljbW92YmUs CiAgVURfSWNtb3ZhLAogIFVEX0ljbW92cywKICBVRF9JY21vdm5zLAogIFVEX0ljbW92cCwKICBV RF9JY21vdm5wLAogIFVEX0ljbW92bCwKICBVRF9JY21vdmdlLAogIFVEX0ljbW92bGUsCiAgVURf SWNtb3ZnLAogIFVEX0ljbXAsCiAgVURfSWNtcHBkLAogIFVEX0ljbXBwcywKICBVRF9JY21wc2Is CiAgVURfSWNtcHN3LAogIFVEX0ljbXBzZCwKICBVRF9JY21wc3EsCiAgVURfSWNtcHNzLAogIFVE X0ljbXB4Y2hnLAogIFVEX0ljbXB4Y2hnOGIsCiAgVURfSWNvbWlzZCwKICBVRF9JY29taXNzLAog IFVEX0ljcHVpZCwKICBVRF9JY3Z0ZHEycGQsCiAgVURfSWN2dGRxMnBzLAogIFVEX0ljdnRwZDJk cSwKICBVRF9JY3Z0cGQycGksCiAgVURfSWN2dHBkMnBzLAogIFVEX0ljdnRwaTJwcywKICBVRF9J Y3Z0cGkycGQsCiAgVURfSWN2dHBzMmRxLAogIFVEX0ljdnRwczJwaSwKICBVRF9JY3Z0cHMycGQs CiAgVURfSWN2dHNkMnNpLAogIFVEX0ljdnRzZDJzcywKICBVRF9JY3Z0c2kyc3MsCiAgVURfSWN2 dHNzMnNpLAogIFVEX0ljdnRzczJzZCwKICBVRF9JY3Z0dHBkMnBpLAogIFVEX0ljdnR0cGQyZHEs CiAgVURfSWN2dHRwczJkcSwKICBVRF9JY3Z0dHBzMnBpLAogIFVEX0ljdnR0c2Qyc2ksCiAgVURf SWN2dHNpMnNkLAogIFVEX0ljdnR0c3Myc2ksCiAgVURfSWN3ZCwKICBVRF9JY2RxLAogIFVEX0lj cW8sCiAgVURfSWRhYSwKICBVRF9JZGFzLAogIFVEX0lkZWMsCiAgVURfSWRpdiwKICBVRF9JZGl2 cGQsCiAgVURfSWRpdnBzLAogIFVEX0lkaXZzZCwKICBVRF9JZGl2c3MsCiAgVURfSWVtbXMsCiAg VURfSWVudGVyLAogIFVEX0lmMnhtMSwKICBVRF9JZmFicywKICBVRF9JZmFkZCwKICBVRF9JZmFk ZHAsCiAgVURfSWZibGQsCiAgVURfSWZic3RwLAogIFVEX0lmY2hzLAogIFVEX0lmY2xleCwKICBV RF9JZmNtb3ZiLAogIFVEX0lmY21vdmUsCiAgVURfSWZjbW92YmUsCiAgVURfSWZjbW92dSwKICBV RF9JZmNtb3ZuYiwKICBVRF9JZmNtb3ZuZSwKICBVRF9JZmNtb3ZuYmUsCiAgVURfSWZjbW92bnUs CiAgVURfSWZ1Y29taSwKICBVRF9JZmNvbSwKICBVRF9JZmNvbTIsCiAgVURfSWZjb21wMywKICBV RF9JZmNvbWksCiAgVURfSWZ1Y29taXAsCiAgVURfSWZjb21pcCwKICBVRF9JZmNvbXAsCiAgVURf SWZjb21wNSwKICBVRF9JZmNvbXBwLAogIFVEX0lmY29zLAogIFVEX0lmZGVjc3RwLAogIFVEX0lm ZGl2LAogIFVEX0lmZGl2cCwKICBVRF9JZmRpdnIsCiAgVURfSWZkaXZycCwKICBVRF9JZmVtbXMs CiAgVURfSWZmcmVlLAogIFVEX0lmZnJlZXAsCiAgVURfSWZpY29tLAogIFVEX0lmaWNvbXAsCiAg VURfSWZpbGQsCiAgVURfSWZuY3N0cCwKICBVRF9JZm5pbml0LAogIFVEX0lmaWFkZCwKICBVRF9J ZmlkaXZyLAogIFVEX0lmaWRpdiwKICBVRF9JZmlzdWIsCiAgVURfSWZpc3ViciwKICBVRF9JZmlz dCwKICBVRF9JZmlzdHAsCiAgVURfSWZpc3R0cCwKICBVRF9JZmxkLAogIFVEX0lmbGQxLAogIFVE X0lmbGRsMnQsCiAgVURfSWZsZGwyZSwKICBVRF9JZmxkbHBpLAogIFVEX0lmbGRsZzIsCiAgVURf SWZsZGxuMiwKICBVRF9JZmxkeiwKICBVRF9JZmxkY3csCiAgVURfSWZsZGVudiwKICBVRF9JZm11 bCwKICBVRF9JZm11bHAsCiAgVURfSWZpbXVsLAogIFVEX0lmbm9wLAogIFVEX0lmcGF0YW4sCiAg VURfSWZwcmVtLAogIFVEX0lmcHJlbTEsCiAgVURfSWZwdGFuLAogIFVEX0lmcm5kaW50LAogIFVE X0lmcnN0b3IsCiAgVURfSWZuc2F2ZSwKICBVRF9JZnNjYWxlLAogIFVEX0lmc2luLAogIFVEX0lm c2luY29zLAogIFVEX0lmc3FydCwKICBVRF9JZnN0cCwKICBVRF9JZnN0cDEsCiAgVURfSWZzdHA4 LAogIFVEX0lmc3RwOSwKICBVRF9JZnN0LAogIFVEX0lmbnN0Y3csCiAgVURfSWZuc3RlbnYsCiAg VURfSWZuc3RzdywKICBVRF9JZnN1YiwKICBVRF9JZnN1YnAsCiAgVURfSWZzdWJyLAogIFVEX0lm c3VicnAsCiAgVURfSWZ0c3QsCiAgVURfSWZ1Y29tLAogIFVEX0lmdWNvbXAsCiAgVURfSWZ1Y29t cHAsCiAgVURfSWZ4YW0sCiAgVURfSWZ4Y2gsCiAgVURfSWZ4Y2g0LAogIFVEX0lmeGNoNywKICBV RF9JZnhyc3RvciwKICBVRF9JZnhzYXZlLAogIFVEX0lmcHh0cmFjdCwKICBVRF9JZnlsMngsCiAg VURfSWZ5bDJ4cDEsCiAgVURfSWhhZGRwZCwKICBVRF9JaGFkZHBzLAogIFVEX0lobHQsCiAgVURf SWhzdWJwZCwKICBVRF9JaHN1YnBzLAogIFVEX0lpZGl2LAogIFVEX0lpbiwKICBVRF9JaW11bCwK ICBVRF9JaW5jLAogIFVEX0lpbnNiLAogIFVEX0lpbnN3LAogIFVEX0lpbnNkLAogIFVEX0lpbnQx LAogIFVEX0lpbnQzLAogIFVEX0lpbnQsCiAgVURfSWludG8sCiAgVURfSWludmQsCiAgVURfSWlu dmxwZywKICBVRF9JaW52bHBnYSwKICBVRF9JaXJldHcsCiAgVURfSWlyZXRkLAogIFVEX0lpcmV0 cSwKICBVRF9Jam8sCiAgVURfSWpubywKICBVRF9JamIsCiAgVURfSWphZSwKICBVRF9JanosCiAg VURfSWpueiwKICBVRF9JamJlLAogIFVEX0lqYSwKICBVRF9JanMsCiAgVURfSWpucywKICBVRF9J anAsCiAgVURfSWpucCwKICBVRF9JamwsCiAgVURfSWpnZSwKICBVRF9JamxlLAogIFVEX0lqZywK ICBVRF9JamN4eiwKICBVRF9JamVjeHosCiAgVURfSWpyY3h6LAogIFVEX0lqbXAsCiAgVURfSWxh aGYsCiAgVURfSWxhciwKICBVRF9JbGRkcXUsCiAgVURfSWxkbXhjc3IsCiAgVURfSWxkcywKICBV RF9JbGVhLAogIFVEX0lsZXMsCiAgVURfSWxmcywKICBVRF9JbGdzLAogIFVEX0lsaWR0LAogIFVE X0lsc3MsCiAgVURfSWxlYXZlLAogIFVEX0lsZmVuY2UsCiAgVURfSWxnZHQsCiAgVURfSWxsZHQs CiAgVURfSWxtc3csCiAgVURfSWxvY2ssCiAgVURfSWxvZHNiLAogIFVEX0lsb2RzdywKICBVRF9J bG9kc2QsCiAgVURfSWxvZHNxLAogIFVEX0lsb29wbnosCiAgVURfSWxvb3BlLAogIFVEX0lsb29w LAogIFVEX0lsc2wsCiAgVURfSWx0ciwKICBVRF9JbWFza21vdnEsCiAgVURfSW1heHBkLAogIFVE X0ltYXhwcywKICBVRF9JbWF4c2QsCiAgVURfSW1heHNzLAogIFVEX0ltZmVuY2UsCiAgVURfSW1p bnBkLAogIFVEX0ltaW5wcywKICBVRF9JbWluc2QsCiAgVURfSW1pbnNzLAogIFVEX0ltb25pdG9y LAogIFVEX0ltb3YsCiAgVURfSW1vdmFwZCwKICBVRF9JbW92YXBzLAogIFVEX0ltb3ZkLAogIFVE X0ltb3ZkZHVwLAogIFVEX0ltb3ZkcWEsCiAgVURfSW1vdmRxdSwKICBVRF9JbW92ZHEycSwKICBV RF9JbW92aHBkLAogIFVEX0ltb3ZocHMsCiAgVURfSW1vdmxocHMsCiAgVURfSW1vdmxwZCwKICBV RF9JbW92bHBzLAogIFVEX0ltb3ZobHBzLAogIFVEX0ltb3Ztc2twZCwKICBVRF9JbW92bXNrcHMs CiAgVURfSW1vdm50ZHEsCiAgVURfSW1vdm50aSwKICBVRF9JbW92bnRwZCwKICBVRF9JbW92bnRw cywKICBVRF9JbW92bnRxLAogIFVEX0ltb3ZxLAogIFVEX0ltb3ZxYSwKICBVRF9JbW92cTJkcSwK ICBVRF9JbW92c2IsCiAgVURfSW1vdnN3LAogIFVEX0ltb3ZzZCwKICBVRF9JbW92c3EsCiAgVURf SW1vdnNsZHVwLAogIFVEX0ltb3ZzaGR1cCwKICBVRF9JbW92c3MsCiAgVURfSW1vdnN4LAogIFVE X0ltb3Z1cGQsCiAgVURfSW1vdnVwcywKICBVRF9JbW92engsCiAgVURfSW11bCwKICBVRF9JbXVs cGQsCiAgVURfSW11bHBzLAogIFVEX0ltdWxzZCwKICBVRF9JbXVsc3MsCiAgVURfSW13YWl0LAog IFVEX0luZWcsCiAgVURfSW5vcCwKICBVRF9Jbm90LAogIFVEX0lvciwKICBVRF9Jb3JwZCwKICBV RF9Jb3JwcywKICBVRF9Jb3V0LAogIFVEX0lvdXRzYiwKICBVRF9Jb3V0c3csCiAgVURfSW91dHNk LAogIFVEX0lvdXRzcSwKICBVRF9JcGFja3Nzd2IsCiAgVURfSXBhY2tzc2R3LAogIFVEX0lwYWNr dXN3YiwKICBVRF9JcGFkZGIsCiAgVURfSXBhZGR3LAogIFVEX0lwYWRkcSwKICBVRF9JcGFkZHNi LAogIFVEX0lwYWRkc3csCiAgVURfSXBhZGR1c2IsCiAgVURfSXBhZGR1c3csCiAgVURfSXBhbmQs CiAgVURfSXBhbmRuLAogIFVEX0lwYXVzZSwKICBVRF9JcGF2Z2IsCiAgVURfSXBhdmd3LAogIFVE X0lwY21wZXFiLAogIFVEX0lwY21wZXF3LAogIFVEX0lwY21wZXFkLAogIFVEX0lwY21wZ3RiLAog IFVEX0lwY21wZ3R3LAogIFVEX0lwY21wZ3RkLAogIFVEX0lwZXh0cncsCiAgVURfSXBpbnNydywK ICBVRF9JcG1hZGR3ZCwKICBVRF9JcG1heHN3LAogIFVEX0lwbWF4dWIsCiAgVURfSXBtaW5zdywK ICBVRF9JcG1pbnViLAogIFVEX0lwbW92bXNrYiwKICBVRF9JcG11bGh1dywKICBVRF9JcG11bGh3 LAogIFVEX0lwbXVsbHcsCiAgVURfSXBtdWx1ZHEsCiAgVURfSXBvcCwKICBVRF9JcG9wYSwKICBV RF9JcG9wYWQsCiAgVURfSXBvcGZ3LAogIFVEX0lwb3BmZCwKICBVRF9JcG9wZnEsCiAgVURfSXBv ciwKICBVRF9JcHJlZmV0Y2gsCiAgVURfSXByZWZldGNobnRhLAogIFVEX0lwcmVmZXRjaHQwLAog IFVEX0lwcmVmZXRjaHQxLAogIFVEX0lwcmVmZXRjaHQyLAogIFVEX0lwc2FkYncsCiAgVURfSXBz aHVmZCwKICBVRF9JcHNodWZodywKICBVRF9JcHNodWZsdywKICBVRF9JcHNodWZ3LAogIFVEX0lw c2xsZHEsCiAgVURfSXBzbGx3LAogIFVEX0lwc2xsZCwKICBVRF9JcHNsbHEsCiAgVURfSXBzcmF3 LAogIFVEX0lwc3JhZCwKICBVRF9JcHNybHcsCiAgVURfSXBzcmxkLAogIFVEX0lwc3JscSwKICBV RF9JcHNybGRxLAogIFVEX0lwc3ViYiwKICBVRF9JcHN1YncsCiAgVURfSXBzdWJkLAogIFVEX0lw c3VicSwKICBVRF9JcHN1YnNiLAogIFVEX0lwc3Vic3csCiAgVURfSXBzdWJ1c2IsCiAgVURfSXBz dWJ1c3csCiAgVURfSXB1bnBja2hidywKICBVRF9JcHVucGNraHdkLAogIFVEX0lwdW5wY2toZHEs CiAgVURfSXB1bnBja2hxZHEsCiAgVURfSXB1bnBja2xidywKICBVRF9JcHVucGNrbHdkLAogIFVE X0lwdW5wY2tsZHEsCiAgVURfSXB1bnBja2xxZHEsCiAgVURfSXBpMmZ3LAogIFVEX0lwaTJmZCwK ICBVRF9JcGYyaXcsCiAgVURfSXBmMmlkLAogIFVEX0lwZm5hY2MsCiAgVURfSXBmcG5hY2MsCiAg VURfSXBmY21wZ2UsCiAgVURfSXBmbWluLAogIFVEX0lwZnJjcCwKICBVRF9JcGZyc3FydCwKICBV RF9JcGZzdWIsCiAgVURfSXBmYWRkLAogIFVEX0lwZmNtcGd0LAogIFVEX0lwZm1heCwKICBVRF9J cGZyY3BpdDEsCiAgVURfSXBmcnNwaXQxLAogIFVEX0lwZnN1YnIsCiAgVURfSXBmYWNjLAogIFVE X0lwZmNtcGVxLAogIFVEX0lwZm11bCwKICBVRF9JcGZyY3BpdDIsCiAgVURfSXBtdWxocncsCiAg VURfSXBzd2FwZCwKICBVRF9JcGF2Z3VzYiwKICBVRF9JcHVzaCwKICBVRF9JcHVzaGEsCiAgVURf SXB1c2hhZCwKICBVRF9JcHVzaGZ3LAogIFVEX0lwdXNoZmQsCiAgVURfSXB1c2hmcSwKICBVRF9J cHhvciwKICBVRF9JcmNsLAogIFVEX0lyY3IsCiAgVURfSXJvbCwKICBVRF9Jcm9yLAogIFVEX0ly Y3BwcywKICBVRF9JcmNwc3MsCiAgVURfSXJkbXNyLAogIFVEX0lyZHBtYywKICBVRF9JcmR0c2Ms CiAgVURfSXJkdHNjcCwKICBVRF9JcmVwbmUsCiAgVURfSXJlcCwKICBVRF9JcmV0LAogIFVEX0ly ZXRmLAogIFVEX0lyc20sCiAgVURfSXJzcXJ0cHMsCiAgVURfSXJzcXJ0c3MsCiAgVURfSXNhaGYs CiAgVURfSXNhbCwKICBVRF9Jc2FsYywKICBVRF9Jc2FyLAogIFVEX0lzaGwsCiAgVURfSXNociwK ICBVRF9Jc2JiLAogIFVEX0lzY2FzYiwKICBVRF9Jc2Nhc3csCiAgVURfSXNjYXNkLAogIFVEX0lz Y2FzcSwKICBVRF9Jc2V0bywKICBVRF9Jc2V0bm8sCiAgVURfSXNldGIsCiAgVURfSXNldG5iLAog IFVEX0lzZXR6LAogIFVEX0lzZXRueiwKICBVRF9Jc2V0YmUsCiAgVURfSXNldGEsCiAgVURfSXNl dHMsCiAgVURfSXNldG5zLAogIFVEX0lzZXRwLAogIFVEX0lzZXRucCwKICBVRF9Jc2V0bCwKICBV RF9Jc2V0Z2UsCiAgVURfSXNldGxlLAogIFVEX0lzZXRnLAogIFVEX0lzZmVuY2UsCiAgVURfSXNn ZHQsCiAgVURfSXNobGQsCiAgVURfSXNocmQsCiAgVURfSXNodWZwZCwKICBVRF9Jc2h1ZnBzLAog IFVEX0lzaWR0LAogIFVEX0lzbGR0LAogIFVEX0lzbXN3LAogIFVEX0lzcXJ0cHMsCiAgVURfSXNx cnRwZCwKICBVRF9Jc3FydHNkLAogIFVEX0lzcXJ0c3MsCiAgVURfSXN0YywKICBVRF9Jc3RkLAog IFVEX0lzdGdpLAogIFVEX0lzdGksCiAgVURfSXNraW5pdCwKICBVRF9Jc3RteGNzciwKICBVRF9J c3Rvc2IsCiAgVURfSXN0b3N3LAogIFVEX0lzdG9zZCwKICBVRF9Jc3Rvc3EsCiAgVURfSXN0ciwK ICBVRF9Jc3ViLAogIFVEX0lzdWJwZCwKICBVRF9Jc3VicHMsCiAgVURfSXN1YnNkLAogIFVEX0lz dWJzcywKICBVRF9Jc3dhcGdzLAogIFVEX0lzeXNjYWxsLAogIFVEX0lzeXNlbnRlciwKICBVRF9J c3lzZXhpdCwKICBVRF9Jc3lzcmV0LAogIFVEX0l0ZXN0LAogIFVEX0l1Y29taXNkLAogIFVEX0l1 Y29taXNzLAogIFVEX0l1ZDIsCiAgVURfSXVucGNraHBkLAogIFVEX0l1bnBja2hwcywKICBVRF9J dW5wY2tscHMsCiAgVURfSXVucGNrbHBkLAogIFVEX0l2ZXJyLAogIFVEX0l2ZXJ3LAogIFVEX0l2 bWNhbGwsCiAgVURfSXZtY2xlYXIsCiAgVURfSXZteG9uLAogIFVEX0l2bXB0cmxkLAogIFVEX0l2 bXB0cnN0LAogIFVEX0l2bXJlc3VtZSwKICBVRF9Jdm14b2ZmLAogIFVEX0l2bXJ1biwKICBVRF9J dm1tY2FsbCwKICBVRF9Jdm1sb2FkLAogIFVEX0l2bXNhdmUsCiAgVURfSXdhaXQsCiAgVURfSXdi aW52ZCwKICBVRF9Jd3Jtc3IsCiAgVURfSXhhZGQsCiAgVURfSXhjaGcsCiAgVURfSXhsYXRiLAog IFVEX0l4b3IsCiAgVURfSXhvcnBkLAogIFVEX0l4b3JwcywKICBVRF9JZGIsCiAgVURfSWludmFs aWQsCiAgVURfSWQzdmlsLAogIFVEX0luYSwKICBVRF9JZ3JwX3JlZywKICBVRF9JZ3JwX3JtLAog IFVEX0lncnBfdmVuZG9yLAogIFVEX0lncnBfeDg3LAogIFVEX0lncnBfbW9kZSwKICBVRF9JZ3Jw X29zaXplLAogIFVEX0lncnBfYXNpemUsCiAgVURfSWdycF9tb2QsCiAgVURfSW5vbmUsCn07CgoK CmV4dGVybiBjb25zdCBjaGFyKiB1ZF9tbmVtb25pY3Nfc3RyW107OwpleHRlcm4gc3RydWN0IHVk X2l0YWJfZW50cnkqIHVkX2l0YWJfbGlzdFtdOwoKI2VuZGlmCgAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtkYi94ODYv dWRpczg2LTEuNy90eXBlcy5oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1 NgAwMDAwMDAxMTQzMwAxMTc2NTQ2NTU1NgAwMTUxNjUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICogdHlwZXMuaAogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDYsIFZpdmVr IE1vaGFuIDx2aXZla0BzaWc5LmNvbT4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gU2VlIExJQ0VO U0UKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCiNpZm5kZWYgVURfVFlQRVNfSAojZGVmaW5l IFVEX1RZUEVTX0gKCgojaW5jbHVkZSAiLi4vLi4vaW5jbHVkZS9rZGJpbmMuaCIKCiNkZWZpbmUg Rk1UNjQgIiVsbCIKI2luY2x1ZGUgIml0YWIuaCIKCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAq IEFsbCBwb3NzaWJsZSAidHlwZXMiIG9mIG9iamVjdHMgaW4gdWRpczg2LiBPcmRlciBpcyBJbXBv cnRhbnQhCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwplbnVtIHVkX3R5cGUKewogIFVEX05P TkUsCgogIC8qIDggYml0IEdQUnMgKi8KICBVRF9SX0FMLAlVRF9SX0NMLAlVRF9SX0RMLAlVRF9S X0JMLAogIFVEX1JfQUgsCVVEX1JfQ0gsCVVEX1JfREgsCVVEX1JfQkgsCiAgVURfUl9TUEwsCVVE X1JfQlBMLAlVRF9SX1NJTCwJVURfUl9ESUwsCiAgVURfUl9SOEIsCVVEX1JfUjlCLAlVRF9SX1Ix MEIsCVVEX1JfUjExQiwKICBVRF9SX1IxMkIsCVVEX1JfUjEzQiwJVURfUl9SMTRCLAlVRF9SX1Ix NUIsCgogIC8qIDE2IGJpdCBHUFJzICovCiAgVURfUl9BWCwJVURfUl9DWCwJVURfUl9EWCwJVURf Ul9CWCwKICBVRF9SX1NQLAlVRF9SX0JQLAlVRF9SX1NJLAlVRF9SX0RJLAogIFVEX1JfUjhXLAlV RF9SX1I5VywJVURfUl9SMTBXLAlVRF9SX1IxMVcsCiAgVURfUl9SMTJXLAlVRF9SX1IxM1csCVVE X1JfUjE0VywJVURfUl9SMTVXLAoJCiAgLyogMzIgYml0IEdQUnMgKi8KICBVRF9SX0VBWCwJVURf Ul9FQ1gsCVVEX1JfRURYLAlVRF9SX0VCWCwKICBVRF9SX0VTUCwJVURfUl9FQlAsCVVEX1JfRVNJ LAlVRF9SX0VESSwKICBVRF9SX1I4RCwJVURfUl9SOUQsCVVEX1JfUjEwRCwJVURfUl9SMTFELAog IFVEX1JfUjEyRCwJVURfUl9SMTNELAlVRF9SX1IxNEQsCVVEX1JfUjE1RCwKCQogIC8qIDY0IGJp dCBHUFJzICovCiAgVURfUl9SQVgsCVVEX1JfUkNYLAlVRF9SX1JEWCwJVURfUl9SQlgsCiAgVURf Ul9SU1AsCVVEX1JfUkJQLAlVRF9SX1JTSSwJVURfUl9SREksCiAgVURfUl9SOCwJVURfUl9SOSwJ VURfUl9SMTAsCVVEX1JfUjExLAogIFVEX1JfUjEyLAlVRF9SX1IxMywJVURfUl9SMTQsCVVEX1Jf UjE1LAoKICAvKiBzZWdtZW50IHJlZ2lzdGVycyAqLwogIFVEX1JfRVMsCVVEX1JfQ1MsCVVEX1Jf U1MsCVVEX1JfRFMsCiAgVURfUl9GUywJVURfUl9HUywJCgogIC8qIGNvbnRyb2wgcmVnaXN0ZXJz Ki8KICBVRF9SX0NSMCwJVURfUl9DUjEsCVVEX1JfQ1IyLAlVRF9SX0NSMywKICBVRF9SX0NSNCwJ VURfUl9DUjUsCVVEX1JfQ1I2LAlVRF9SX0NSNywKICBVRF9SX0NSOCwJVURfUl9DUjksCVVEX1Jf Q1IxMCwJVURfUl9DUjExLAogIFVEX1JfQ1IxMiwJVURfUl9DUjEzLAlVRF9SX0NSMTQsCVVEX1Jf Q1IxNSwKCQogIC8qIGRlYnVnIHJlZ2lzdGVycyAqLwogIFVEX1JfRFIwLAlVRF9SX0RSMSwJVURf Ul9EUjIsCVVEX1JfRFIzLAogIFVEX1JfRFI0LAlVRF9SX0RSNSwJVURfUl9EUjYsCVVEX1JfRFI3 LAogIFVEX1JfRFI4LAlVRF9SX0RSOSwJVURfUl9EUjEwLAlVRF9SX0RSMTEsCiAgVURfUl9EUjEy LAlVRF9SX0RSMTMsCVVEX1JfRFIxNCwJVURfUl9EUjE1LAoKICAvKiBtbXggcmVnaXN0ZXJzICov CiAgVURfUl9NTTAsCVVEX1JfTU0xLAlVRF9SX01NMiwJVURfUl9NTTMsCiAgVURfUl9NTTQsCVVE X1JfTU01LAlVRF9SX01NNiwJVURfUl9NTTcsCgogIC8qIHg4NyByZWdpc3RlcnMgKi8KICBVRF9S X1NUMCwJVURfUl9TVDEsCVVEX1JfU1QyLAlVRF9SX1NUMywKICBVRF9SX1NUNCwJVURfUl9TVDUs CVVEX1JfU1Q2LAlVRF9SX1NUNywgCgogIC8qIGV4dGVuZGVkIG11bHRpbWVkaWEgcmVnaXN0ZXJz ICovCiAgVURfUl9YTU0wLAlVRF9SX1hNTTEsCVVEX1JfWE1NMiwJVURfUl9YTU0zLAogIFVEX1Jf WE1NNCwJVURfUl9YTU01LAlVRF9SX1hNTTYsCVVEX1JfWE1NNywKICBVRF9SX1hNTTgsCVVEX1Jf WE1NOSwJVURfUl9YTU0xMCwJVURfUl9YTU0xMSwKICBVRF9SX1hNTTEyLAlVRF9SX1hNTTEzLAlV RF9SX1hNTTE0LAlVRF9SX1hNTTE1LAoKICBVRF9SX1JJUCwKCiAgLyogT3BlcmFuZCBUeXBlcyAq LwogIFVEX09QX1JFRywJVURfT1BfTUVNLAlVRF9PUF9QVFIsCVVEX09QX0lNTSwJCiAgVURfT1Bf SklNTSwJVURfT1BfQ09OU1QKfTsKCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIHN0cnVjdCB1 ZF9vcGVyYW5kIC0gRGlzYXNzZW1ibGVkIGluc3RydWN0aW9uIE9wZXJhbmQuCiAqIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAqLwpzdHJ1Y3QgdWRfb3BlcmFuZCAKewogIGVudW0gdWRfdHlwZQkJdHlw ZTsKICB1aW50OF90CQlzaXplOwogIHVuaW9uIHsKCWludDhfdAkJc2J5dGU7Cgl1aW50OF90CQl1 Ynl0ZTsKCWludDE2X3QJCXN3b3JkOwoJdWludDE2X3QJdXdvcmQ7CglpbnQzMl90CQlzZHdvcmQ7 Cgl1aW50MzJfdAl1ZHdvcmQ7CglpbnQ2NF90CQlzcXdvcmQ7Cgl1aW50NjRfdAl1cXdvcmQ7CgoJ c3RydWN0IHsKCQl1aW50MTZfdCBzZWc7CgkJdWludDMyX3Qgb2ZmOwoJfSBwdHI7CiAgfSBsdmFs OwoKICBlbnVtIHVkX3R5cGUJCWJhc2U7CiAgZW51bSB1ZF90eXBlCQlpbmRleDsKICB1aW50OF90 CQlvZmZzZXQ7CiAgdWludDhfdAkJc2NhbGU7CQp9OwoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICogc3RydWN0IHVkIC0gVGhlIHVkaXM4NiBvYmplY3QuCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAqLwpzdHJ1Y3QgdWQKewogIGludCAJCQkoKmlucF9ob29rKSAoc3RydWN0IHVkKik7CiAgdWlu dDhfdAkJaW5wX2N1cnI7CiAgdWludDhfdAkJaW5wX2ZpbGw7CiAgdWludDhfdAkJaW5wX2N0cjsK ICB1aW50OF90KgkJaW5wX2J1ZmY7CiAgdWludDhfdCoJCWlucF9idWZmX2VuZDsKICB1aW50OF90 CQlpbnBfZW5kOwogIHZvaWQJCQkoKnRyYW5zbGF0b3IpKHN0cnVjdCB1ZCopOwogIHVpbnQ2NF90 CQlpbnNuX29mZnNldDsKICBjaGFyCQkJaW5zbl9oZXhjb2RlWzMyXTsKICBjaGFyCQkJaW5zbl9i dWZmZXJbNjRdOwogIHVuc2lnbmVkIGludAkJaW5zbl9maWxsOwogIHVpbnQ4X3QJCWRpc19tb2Rl OwogIHVpbnQ2NF90CQlwYzsKICB1aW50OF90CQl2ZW5kb3I7CiAgc3RydWN0IG1hcF9lbnRyeSoJ bWFwZW47CiAgZW51bSB1ZF9tbmVtb25pY19jb2RlCW1uZW1vbmljOwogIHN0cnVjdCB1ZF9vcGVy YW5kCW9wZXJhbmRbM107CiAgdWludDhfdAkJZXJyb3I7CiAgdWludDhfdAkgCXBmeF9yZXg7CiAg dWludDhfdCAJCXBmeF9zZWc7CiAgdWludDhfdCAJCXBmeF9vcHI7CiAgdWludDhfdCAJCXBmeF9h ZHI7CiAgdWludDhfdCAJCXBmeF9sb2NrOwogIHVpbnQ4X3QgCQlwZnhfcmVwOwogIHVpbnQ4X3Qg CQlwZnhfcmVwZTsKICB1aW50OF90IAkJcGZ4X3JlcG5lOwogIHVpbnQ4X3QgCQlwZnhfaW5zbjsK ICB1aW50OF90CQlkZWZhdWx0NjQ7CiAgdWludDhfdAkJb3ByX21vZGU7CiAgdWludDhfdAkJYWRy X21vZGU7CiAgdWludDhfdAkJYnJfZmFyOwogIHVpbnQ4X3QJCWJyX25lYXI7CiAgdWludDhfdAkJ aW1wbGljaXRfYWRkcjsKICB1aW50OF90CQljMTsKICB1aW50OF90CQljMjsKICB1aW50OF90CQlj MzsKICB1aW50OF90IAkJaW5wX2NhY2hlWzI1Nl07CiAgdWludDhfdAkJaW5wX3Nlc3NbNjRdOwog IHN0cnVjdCB1ZF9pdGFiX2VudHJ5ICogaXRhYl9lbnRyeTsKfTsKCi8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAqIFR5cGUtZGVmaW5pdGlvbnMKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCnR5 cGVkZWYgZW51bSB1ZF90eXBlIAkJdWRfdHlwZV90Owp0eXBlZGVmIGVudW0gdWRfbW5lbW9uaWNf Y29kZQl1ZF9tbmVtb25pY19jb2RlX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1ZCAJCXVkX3Q7CnR5cGVk ZWYgc3RydWN0IHVkX29wZXJhbmQgCXVkX29wZXJhbmRfdDsKCiNkZWZpbmUgVURfU1lOX0lOVEVM CQl1ZF90cmFuc2xhdGVfaW50ZWwKI2RlZmluZSBVRF9TWU5fQVRUCQl1ZF90cmFuc2xhdGVfYXR0 CiNkZWZpbmUgVURfRU9JCQkJLTEKI2RlZmluZSBVRF9JTlBfQ0FDSEVfU1oJCTMyCiNkZWZpbmUg VURfVkVORE9SX0FNRAkJMAojZGVmaW5lIFVEX1ZFTkRPUl9JTlRFTAkJMQoKI2RlZmluZSBiYWls X291dCh1ZCxlcnJvcl9jb2RlKSBsb25nam1wKCAodWQpLT5iYWlsb3V0LCBlcnJvcl9jb2RlICkK I2RlZmluZSB0cnlfZGVjb2RlKHVkKSBpZiAoIHNldGptcCggKHVkKS0+YmFpbG91dCApID09IDAg KQojZGVmaW5lIGNhdGNoX2Vycm9yKCkgZWxzZQoKI2VuZGlmCgAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrZGIveDg2L3VkaXM4Ni0xLjcv TElDRU5TRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY2NAAwMDAyNzU2ADAwMDI3NTYAMDAwMDAwMDI1 MTEAMTE3NjU0NjU1NTYAMDE0NjUyACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtcmF0aG9y AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENvcHlyaWdodCAoYykgMjAwMiwg MjAwMywgMjAwNCwgMjAwNSwgMjAwNiA8dml2ZWtAc2lnOS5jb20+CkFsbCByaWdodHMgcmVzZXJ2 ZWQuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0 IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgoKICAgICogUmVkaXN0cmlidXRpb25z IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCAK ICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ci4KICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCAKICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiAKICAgICAg YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgpU SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O VFJJQlVUT1JTICJBUyBJUyIgQU5EIApBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCAKV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS RSAKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBD T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiAKQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIAooSU5DTFVE SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg T1IgU0VSVklDRVM7IApMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gCkFOWSBUSEVPUlkgT0YgTElBQklM SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIAooSU5D TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G IFRIRSBVU0UgT0YgVEhJUyAKU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC SUxJVFkgT0YgU1VDSCBEQU1BR0UuCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtkYi94ODYvdWRpczg2LTEuNy9pbnB1 dC5jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1NgAwMDAwMDAxMzc0MgAx MTc2NTQ2NTU1NgAwMTUxNjAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAdXN0YXIgIABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICogaW5wdXQuYwogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMDUsIDIwMDYsIFZpdmVrIE1v aGFuIDx2aXZla0BzaWc5LmNvbT4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gU2VlIExJQ0VOU0UK ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCiNpbmNsdWRlICJleHRlcm4uaCIKI2luY2x1ZGUg InR5cGVzLmgiCiNpbmNsdWRlICJpbnB1dC5oIgoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICog aW5wX2J1ZmZfaG9vaygpIC0gSG9vayBmb3IgYnVmZmVyZWQgaW5wdXRzLgogKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogKi8Kc3RhdGljIGludCAKaW5wX2J1ZmZfaG9vayhzdHJ1Y3QgdWQqIHUpCnsK ICBpZiAodS0+aW5wX2J1ZmYgPCB1LT5pbnBfYnVmZl9lbmQpCglyZXR1cm4gKnUtPmlucF9idWZm Kys7CiAgZWxzZQlyZXR1cm4gLTE7Cn0KCiNpZm5kZWYgX19VRF9TVEFOREFMT05FX18KLyogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICogaW5wX2ZpbGVfaG9vaygpIC0gSG9vayBmb3IgRklMRSBpbnB1 dHMuCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwpzdGF0aWMgaW50IAppbnBfZmlsZV9ob29r KHN0cnVjdCB1ZCogdSkKewogIHJldHVybiBmZ2V0Yyh1LT5pbnBfZmlsZSk7Cn0KI2VuZGlmIC8q IF9fVURfU1RBTkRBTE9ORV9fKi8KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIHVkX2lucF9z ZXRfaG9vaygpIC0gU2V0cyBpbnB1dCBob29rLgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKi8K ZXh0ZXJuIHZvaWQgCnVkX3NldF9pbnB1dF9ob29rKHJlZ2lzdGVyIHN0cnVjdCB1ZCogdSwgaW50 ICgqaG9vaykoc3RydWN0IHVkKikpCnsKICB1LT5pbnBfaG9vayA9IGhvb2s7CiAgaW5wX2luaXQo dSk7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIHVkX2lucF9zZXRfYnVmZmVyKCkgLSBT ZXQgYnVmZmVyIGFzIGlucHV0LgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKi8KZXh0ZXJuIHZv aWQgCnVkX3NldF9pbnB1dF9idWZmZXIocmVnaXN0ZXIgc3RydWN0IHVkKiB1LCB1aW50OF90KiBi dWYsIHNpemVfdCBsZW4pCnsKICB1LT5pbnBfaG9vayA9IGlucF9idWZmX2hvb2s7CiAgdS0+aW5w X2J1ZmYgPSBidWY7CiAgdS0+aW5wX2J1ZmZfZW5kID0gYnVmICsgbGVuOwogIGlucF9pbml0KHUp Owp9CgojaWZuZGVmIF9fVURfU1RBTkRBTE9ORV9fCi8qID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAq IHVkX2lucHV0X3NldF9maWxlKCkgLSBTZXQgYnVmZmVyIGFzIGlucHV0LgogKiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogKi8KZXh0ZXJuIHZvaWQgCnVkX3NldF9pbnB1dF9maWxlKHJlZ2lzdGVyIHN0 cnVjdCB1ZCogdSwgRklMRSogZikKewogIHUtPmlucF9ob29rID0gaW5wX2ZpbGVfaG9vazsKICB1 LT5pbnBfZmlsZSA9IGY7CiAgaW5wX2luaXQodSk7Cn0KI2VuZGlmIC8qIF9fVURfU1RBTkRBTE9O RV9fICovCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiB1ZF9pbnB1dF9za2lwKCkgLSBTa2lw IG4gaW5wdXQgYnl0ZXMuCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqLwpleHRlcm4gdm9pZCAK dWRfaW5wdXRfc2tpcChzdHJ1Y3QgdWQqIHUsIHNpemVfdCBuKQp7CiAgd2hpbGUgKG4tLSkgewoJ dS0+aW5wX2hvb2sodSk7CiAgfQp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiB1ZF9pbnB1 dF9lbmQoKSAtIFRlc3QgZm9yIGVuZCBvZiBpbnB1dC4KICogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K ICovCmV4dGVybiBpbnQgCnVkX2lucHV0X2VuZChzdHJ1Y3QgdWQqIHUpCnsKICByZXR1cm4gKHUt PmlucF9jdXJyID09IHUtPmlucF9maWxsKSAmJiB1LT5pbnBfZW5kOwp9CgovKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogKiBpbnBfbmV4dCgpIC0gTG9hZHMgYW5kIHJldHVybnMgdGhlIG5leHQgYnl0 ZSBmcm9tIGlucHV0LgogKgogKiBpbnBfY3VyciBhbmQgaW5wX2ZpbGwgYXJlIHBvaW50ZXJzIHRv IHRoZSBjYWNoZS4gVGhlIHByb2dyYW0gaXMgd3JpdHRlbiBiYXNlZAogKiBvbiB0aGUgcHJvcGVy dHkgdGhhdCB0aGV5IGFyZSA4LWJpdHMgaW4gc2l6ZSwgYW5kIHdpbGwgZXZlbnR1YWxseSB3cmFw IGFyb3VuZAogKiBmb3JtaW5nIGEgY2lyY3VsYXIgYnVmZmVyLiBTbywgdGhlIHNpemUgb2YgdGhl IGNhY2hlIGlzIDI1NiBpbiBzaXplLCBraW5kIG9mCiAqIHVubmVjZXNzYXJ5IHlldCBvcHRpbWl6 ZWQuCiAqCiAqIEEgYnVmZmVyIGlucF9zZXNzIHN0b3JlcyB0aGUgYnl0ZXMgZGlzYXNzZW1ibGVk IGZvciBhIHNpbmdsZSBzZXNzaW9uLgogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8KZXh0ZXJu IHVpbnQ4X3QgaW5wX25leHQoc3RydWN0IHVkKiB1KSAKewogIGludCBjID0gLTE7CiAgLyogaWYg Y3VycmVudCBwb2ludGVyIGlzIG5vdCB1cHRvIHRoZSBmaWxsIHBvaW50IGluIHRoZSAKICAgKiBp bnB1dCBjYWNoZS4KICAgKi8KICBpZiAoIHUtPmlucF9jdXJyICE9IHUtPmlucF9maWxsICkgewoJ YyA9IHUtPmlucF9jYWNoZVsgKyt1LT5pbnBfY3VyciBdOwogIC8qIGlmICFlbmQtb2YtaW5wdXQs IGNhbGwgdGhlIGlucHV0IGhvb2sgYW5kIGdldCBhIGJ5dGUgKi8KICB9IGVsc2UgaWYgKCB1LT5p bnBfZW5kIHx8ICggYyA9IHUtPmlucF9ob29rKCB1ICkgKSA9PSAtMSApIHsKCS8qIGVuZC1vZi1p bnB1dCwgbWFyayBpdCBhcyBhbiBlcnJvciwgc2luY2UgdGhlIGRlY29kZXIsCgkgKiBleHBlY3Rl ZCBhIGJ5dGUgbW9yZS4KCSAqLwoJdS0+ZXJyb3IgPSAxOwoJLyogZmxhZyBlbmQgb2YgaW5wdXQg Ki8KCXUtPmlucF9lbmQgPSAxOwoJcmV0dXJuIDA7CiAgfSBlbHNlIHsKCS8qIGluY3JlbWVudCBw b2ludGVycywgd2UgaGF2ZSBhIG5ldyBieXRlLiAgKi8KCXUtPmlucF9jdXJyID0gKyt1LT5pbnBf ZmlsbDsKCS8qIGFkZCB0aGUgYnl0ZSB0byB0aGUgY2FjaGUgKi8KCXUtPmlucF9jYWNoZVsgdS0+ aW5wX2ZpbGwgXSA9IGM7CiAgfQogIC8qIHJlY29yZCBieXRlcyBpbnB1dCBwZXIgZGVjb2RlLXNl c3Npb24uICovCiAgdS0+aW5wX3Nlc3NbIHUtPmlucF9jdHIrKyBdID0gYzsKICAvKiByZXR1cm4g Ynl0ZSAqLwogIHJldHVybiAoIHVpbnQ4X3QgKSBjOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogKiBpbnBfYmFjaygpIC0gTW92ZSBiYWNrIGEgc2luZ2xlIGJ5dGUgaW4gdGhlIHN0cmVhbS4K ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCmV4dGVybiB2b2lkCmlucF9iYWNrKHN0cnVjdCB1 ZCogdSkgCnsKICBpZiAoIHUtPmlucF9jdHIgPiAwICkgewoJLS11LT5pbnBfY3VycjsKCS0tdS0+ aW5wX2N0cjsKICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIGlucF9wZWVrKCkgLSBQ ZWVrIGludG8gdGhlIG5leHQgYnl0ZSBpbiBzb3VyY2UuIAogKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogKi8KZXh0ZXJuIHVpbnQ4X3QKaW5wX3BlZWsoc3RydWN0IHVkKiB1KSAKewogIHVpbnQ4X3Qg ciA9IGlucF9uZXh0KHUpOwogIGlmICggIXUtPmVycm9yICkgaW5wX2JhY2sodSk7IC8qIERvbid0 IGJhY2t1cCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IgKi8KICByZXR1cm4gcjsKfQoKLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICogaW5wX21vdmUoKSAtIE1vdmUgYWhlYWQgbiBpbnB1dCBieXRlcy4K ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCmV4dGVybiB2b2lkCmlucF9tb3ZlKHN0cnVjdCB1 ZCogdSwgc2l6ZV90IG4pIAp7CiAgd2hpbGUgKG4tLSkKCWlucF9uZXh0KHUpOwp9CgovKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKiAgaW5wX3VpbnROKCkgLSByZXR1cm4gdWludE4gZnJvbSBzb3Vy Y2UuCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwpleHRlcm4gdWludDhfdCAKaW5wX3VpbnQ4 KHN0cnVjdCB1ZCogdSkKewogIHJldHVybiBpbnBfbmV4dCh1KTsKfQoKZXh0ZXJuIHVpbnQxNl90 IAppbnBfdWludDE2KHN0cnVjdCB1ZCogdSkKewogIHVpbnQxNl90IHIsIHJldDsKCiAgcmV0ID0g aW5wX25leHQodSk7CiAgciA9IGlucF9uZXh0KHUpOwogIHJldHVybiByZXQgfCAociA8PCA4KTsK fQoKZXh0ZXJuIHVpbnQzMl90IAppbnBfdWludDMyKHN0cnVjdCB1ZCogdSkKewogIHVpbnQzMl90 IHIsIHJldDsKCiAgcmV0ID0gaW5wX25leHQodSk7CiAgciA9IGlucF9uZXh0KHUpOwogIHJldCA9 IHJldCB8IChyIDw8IDgpOwogIHIgPSBpbnBfbmV4dCh1KTsKICByZXQgPSByZXQgfCAociA8PCAx Nik7CiAgciA9IGlucF9uZXh0KHUpOwogIHJldHVybiByZXQgfCAociA8PCAyNCk7Cn0KCmV4dGVy biB1aW50NjRfdCAKaW5wX3VpbnQ2NChzdHJ1Y3QgdWQqIHUpCnsKICB1aW50NjRfdCByLCByZXQ7 CgogIHJldCA9IGlucF9uZXh0KHUpOwogIHIgPSBpbnBfbmV4dCh1KTsKICByZXQgPSByZXQgfCAo ciA8PCA4KTsKICByID0gaW5wX25leHQodSk7CiAgcmV0ID0gcmV0IHwgKHIgPDwgMTYpOwogIHIg PSBpbnBfbmV4dCh1KTsKICByZXQgPSByZXQgfCAociA8PCAyNCk7CiAgciA9IGlucF9uZXh0KHUp OwogIHJldCA9IHJldCB8IChyIDw8IDMyKTsKICByID0gaW5wX25leHQodSk7CiAgcmV0ID0gcmV0 IHwgKHIgPDwgNDApOwogIHIgPSBpbnBfbmV4dCh1KTsKICByZXQgPSByZXQgfCAociA8PCA0OCk7 CiAgciA9IGlucF9uZXh0KHUpOwogIHJldHVybiByZXQgfCAociA8PCA1Nik7Cn0KAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAa2RiL3g4Ni91ZGlzODYtMS43L2RlY29kZS5oAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAADAwMDA2NjQAMDAwMjc1NgAwMDAyNzU2ADAwMDAwMDIxNTI2ADExNzY1NDY1NTU2ADAx NTI1MAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg AG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAjaWZuZGVmIFVEX0RFQ09ERV9ICiNkZWZpbmUgVURfREVDT0RF X0gKCiNkZWZpbmUgTUFYX0lOU05fTEVOR1RIIDE1CgovKiByZWdpc3RlciBjbGFzc2VzICovCiNk ZWZpbmUgVF9OT05FICAwCiNkZWZpbmUgVF9HUFIgICAxCiNkZWZpbmUgVF9NTVggICAyCiNkZWZp bmUgVF9DUkcgICAzCiNkZWZpbmUgVF9EQkcgICA0CiNkZWZpbmUgVF9TRUcgICA1CiNkZWZpbmUg VF9YTU0gICA2CgovKiBpdGFiIHByZWZpeCBiaXRzICovCiNkZWZpbmUgUF9ub25lICAgICAgICAg ICggMCApCiNkZWZpbmUgUF9jMSAgICAgICAgICAgICggMSA8PCAwICkKI2RlZmluZSBQX0MxKG4p ICAgICAgICAgKCAoIG4gPj4gMCApICYgMSApCiNkZWZpbmUgUF9yZXhiICAgICAgICAgICggMSA8 PCAxICkKI2RlZmluZSBQX1JFWEIobikgICAgICAgKCAoIG4gPj4gMSApICYgMSApCiNkZWZpbmUg UF9kZXBNICAgICAgICAgICggMSA8PCAyICkKI2RlZmluZSBQX0RFUE0obikgICAgICAgKCAoIG4g Pj4gMiApICYgMSApCiNkZWZpbmUgUF9jMyAgICAgICAgICAgICggMSA8PCAzICkKI2RlZmluZSBQ X0MzKG4pICAgICAgICAgKCAoIG4gPj4gMyApICYgMSApCiNkZWZpbmUgUF9pbnY2NCAgICAgICAg ICggMSA8PCA0ICkKI2RlZmluZSBQX0lOVjY0KG4pICAgICAgKCAoIG4gPj4gNCApICYgMSApCiNk ZWZpbmUgUF9yZXh3ICAgICAgICAgICggMSA8PCA1ICkKI2RlZmluZSBQX1JFWFcobikgICAgICAg KCAoIG4gPj4gNSApICYgMSApCiNkZWZpbmUgUF9jMiAgICAgICAgICAgICggMSA8PCA2ICkKI2Rl ZmluZSBQX0MyKG4pICAgICAgICAgKCAoIG4gPj4gNiApICYgMSApCiNkZWZpbmUgUF9kZWY2NCAg ICAgICAgICggMSA8PCA3ICkKI2RlZmluZSBQX0RFRjY0KG4pICAgICAgKCAoIG4gPj4gNyApICYg MSApCiNkZWZpbmUgUF9yZXhyICAgICAgICAgICggMSA8PCA4ICkKI2RlZmluZSBQX1JFWFIobikg ICAgICAgKCAoIG4gPj4gOCApICYgMSApCiNkZWZpbmUgUF9vc28gICAgICAgICAgICggMSA8PCA5 ICkKI2RlZmluZSBQX09TTyhuKSAgICAgICAgKCAoIG4gPj4gOSApICYgMSApCiNkZWZpbmUgUF9h c28gICAgICAgICAgICggMSA8PCAxMCApCiNkZWZpbmUgUF9BU08obikgICAgICAgICggKCBuID4+ IDEwICkgJiAxICkKI2RlZmluZSBQX3JleHggICAgICAgICAgKCAxIDw8IDExICkKI2RlZmluZSBQ X1JFWFgobikgICAgICAgKCAoIG4gPj4gMTEgKSAmIDEgKQojZGVmaW5lIFBfSW1wQWRkciAgICAg ICAoIDEgPDwgMTIgKQojZGVmaW5lIFBfSU1QQUREUihuKSAgICAoICggbiA+PiAxMiApICYgMSAp CgovKiByZXggcHJlZml4IGJpdHMgKi8KI2RlZmluZSBSRVhfVyhyKSAgICAgICAgKCAoIDB4RiAm ICggciApICkgID4+IDMgKQojZGVmaW5lIFJFWF9SKHIpICAgICAgICAoICggMHg3ICYgKCByICkg KSAgPj4gMiApCiNkZWZpbmUgUkVYX1gocikgICAgICAgICggKCAweDMgJiAoIHIgKSApICA+PiAx ICkKI2RlZmluZSBSRVhfQihyKSAgICAgICAgKCAoIDB4MSAmICggciApICkgID4+IDAgKQojZGVm aW5lIFJFWF9QRlhfTUFTSyhuKSAoICggUF9SRVhXKG4pIDw8IDMgKSB8IFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAoIFBfUkVYUihuKSA8PCAyICkgfCBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgKCBQX1JFWFgobikgPDwgMSApIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICgg UF9SRVhCKG4pIDw8IDAgKSApCgovKiBzY2FibGUtaW5kZXgtYmFzZSBiaXRzICovCiNkZWZpbmUg U0lCX1MoYikgICAgICAgICggKCBiICkgPj4gNiApCiNkZWZpbmUgU0lCX0koYikgICAgICAgICgg KCAoIGIgKSA+PiAzICkgJiA3ICkKI2RlZmluZSBTSUJfQihiKSAgICAgICAgKCAoIGIgKSAmIDcg KQoKLyogbW9kcm0gYml0cyAqLwojZGVmaW5lIE1PRFJNX1JFRyhiKSAgICAoICggKCBiICkgPj4g MyApICYgNyApCiNkZWZpbmUgTU9EUk1fTk5OKGIpICAgICggKCAoIGIgKSA+PiAzICkgJiA3ICkK I2RlZmluZSBNT0RSTV9NT0QoYikgICAgKCAoICggYiApID4+IDYgKSAmIDMgKQojZGVmaW5lIE1P RFJNX1JNKGIpICAgICAoICggYiApICYgNyApCgovKiBvcGVyYW5kIHR5cGUgY29uc3RhbnRzIC0t IG9yZGVyIGlzIGltcG9ydGFudCEgKi8KCmVudW0gdWRfb3BlcmFuZF9jb2RlIHsKICAgIE9QX05P TkUsCgogICAgT1BfQSwgICAgICBPUF9FLCAgICAgIE9QX00sICAgICAgIE9QX0csICAgICAgIAog ICAgT1BfSSwKCiAgICBPUF9BTCwgICAgIE9QX0NMLCAgICAgT1BfREwsICAgICAgT1BfQkwsCiAg ICBPUF9BSCwgICAgIE9QX0NILCAgICAgT1BfREgsICAgICAgT1BfQkgsCgogICAgT1BfQUxyOGIs ICBPUF9DTHI5YiwgIE9QX0RMcjEwYiwgIE9QX0JMcjExYiwKICAgIE9QX0FIcjEyYiwgT1BfQ0hy MTNiLCBPUF9ESHIxNGIsICBPUF9CSHIxNWIsCgogICAgT1BfQVgsICAgICBPUF9DWCwgICAgIE9Q X0RYLCAgICAgIE9QX0JYLAogICAgT1BfU0ksICAgICBPUF9ESSwgICAgIE9QX1NQLCAgICAgIE9Q X0JQLAoKICAgIE9QX3JBWCwgICAgT1BfckNYLCAgICBPUF9yRFgsICAgICBPUF9yQlgsICAKICAg IE9QX3JTUCwgICAgT1BfckJQLCAgICBPUF9yU0ksICAgICBPUF9yREksCgogICAgT1BfckFYcjgs ICBPUF9yQ1hyOSwgIE9QX3JEWHIxMCwgIE9QX3JCWHIxMSwgIAogICAgT1BfclNQcjEyLCBPUF9y QlByMTMsIE9QX3JTSXIxNCwgIE9QX3JESXIxNSwKCiAgICBPUF9lQVgsICAgIE9QX2VDWCwgICAg T1BfZURYLCAgICAgT1BfZUJYLAogICAgT1BfZVNQLCAgICBPUF9lQlAsICAgIE9QX2VTSSwgICAg IE9QX2VESSwKCiAgICBPUF9FUywgICAgIE9QX0NTLCAgICAgT1BfU1MsICAgICAgT1BfRFMsICAK ICAgIE9QX0ZTLCAgICAgT1BfR1MsCgogICAgT1BfU1QwLCAgICBPUF9TVDEsICAgIE9QX1NUMiwg ICAgIE9QX1NUMywKICAgIE9QX1NUNCwgICAgT1BfU1Q1LCAgICBPUF9TVDYsICAgICBPUF9TVDcs CgogICAgT1BfSiwgICAgICBPUF9TLCAgICAgIE9QX08sICAgICAgICAgIAogICAgT1BfSTEsICAg ICBPUF9JMywgCgogICAgT1BfViwgICAgICBPUF9XLCAgICAgIE9QX1EsICAgICAgIE9QX1AsIAoK ICAgIE9QX1IsICAgICAgT1BfQywgIE9QX0QsICAgICAgIE9QX1ZSLCAgT1BfUFIKfTsKCgovKiBv cGVyYW5kIHNpemUgY29uc3RhbnRzICovCgplbnVtIHVkX29wZXJhbmRfc2l6ZSB7CiAgICBTWl9O QSAgPSAwLAogICAgU1pfWiAgID0gMSwKICAgIFNaX1YgICA9IDIsCiAgICBTWl9QICAgPSAzLAog ICAgU1pfV1AgID0gNCwKICAgIFNaX0RQICA9IDUsCiAgICBTWl9NRFEgPSA2LAogICAgU1pfUkRR ID0gNywKCiAgICAvKiB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdXNlZCBhcyBpcywKICAgICAq IGFuZCB0aHVzIGhhcmQtY29kZWQuIGNoYW5naW5nIHRoZW0gCiAgICAgKiB3aWxsIGJyZWFrIGlu dGVybmFscyAKICAgICAqLwogICAgU1pfQiAgID0gOCwKICAgIFNaX1cgICA9IDE2LAogICAgU1pf RCAgID0gMzIsCiAgICBTWl9RICAgPSA2NCwKICAgIFNaX1QgICA9IDgwLAp9OwoKLyogaXRhYiBl bnRyeSBvcGVyYW5kIGRlZmluaXRpb25zICovCgojZGVmaW5lIE9fclNQcjEyICB7IE9QX3JTUHIx MiwgICBTWl9OQSAgICB9CiNkZWZpbmUgT19CTCAgICAgIHsgT1BfQkwsICAgICAgIFNaX05BICAg IH0KI2RlZmluZSBPX0JIICAgICAgeyBPUF9CSCwgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9f QlAgICAgICB7IE9QX0JQLCAgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19BSHIxMmIgIHsgT1Bf QUhyMTJiLCAgIFNaX05BICAgIH0KI2RlZmluZSBPX0JYICAgICAgeyBPUF9CWCwgICAgICAgU1pf TkEgICAgfQojZGVmaW5lIE9fSnogICAgICB7IE9QX0osICAgICAgICBTWl9aICAgICB9CiNkZWZp bmUgT19KdiAgICAgIHsgT1BfSiwgICAgICAgIFNaX1YgICAgIH0KI2RlZmluZSBPX0piICAgICAg eyBPUF9KLCAgICAgICAgU1pfQiAgICAgfQojZGVmaW5lIE9fclNJcjE0ICB7IE9QX3JTSXIxNCwg ICBTWl9OQSAgICB9CiNkZWZpbmUgT19HUyAgICAgIHsgT1BfR1MsICAgICAgIFNaX05BICAgIH0K I2RlZmluZSBPX0QgICAgICAgeyBPUF9ELCAgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fckJQ cjEzICB7IE9QX3JCUHIxMywgICBTWl9OQSAgICB9CiNkZWZpbmUgT19PYiAgICAgIHsgT1BfTywg ICAgICAgIFNaX0IgICAgIH0KI2RlZmluZSBPX1AgICAgICAgeyBPUF9QLCAgICAgICAgU1pfTkEg ICAgfQojZGVmaW5lIE9fT3cgICAgICB7IE9QX08sICAgICAgICBTWl9XICAgICB9CiNkZWZpbmUg T19PdiAgICAgIHsgT1BfTywgICAgICAgIFNaX1YgICAgIH0KI2RlZmluZSBPX0d3ICAgICAgeyBP UF9HLCAgICAgICAgU1pfVyAgICAgfQojZGVmaW5lIE9fR3YgICAgICB7IE9QX0csICAgICAgICBT Wl9WICAgICB9CiNkZWZpbmUgT19yRFggICAgIHsgT1BfckRYLCAgICAgIFNaX05BICAgIH0KI2Rl ZmluZSBPX0d4ICAgICAgeyBPUF9HLCAgICAgICAgU1pfTURRICAgfQojZGVmaW5lIE9fR2QgICAg ICB7IE9QX0csICAgICAgICBTWl9EICAgICB9CiNkZWZpbmUgT19HYiAgICAgIHsgT1BfRywgICAg ICAgIFNaX0IgICAgIH0KI2RlZmluZSBPX3JCWHIxMSAgeyBPUF9yQlhyMTEsICAgU1pfTkEgICAg fQojZGVmaW5lIE9fckRJICAgICB7IE9QX3JESSwgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19y U0kgICAgIHsgT1BfclNJLCAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX0FMcjhiICAgeyBPUF9B THI4YiwgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fZURJICAgICB7IE9QX2VESSwgICAgICBTWl9O QSAgICB9CiNkZWZpbmUgT19HeiAgICAgIHsgT1BfRywgICAgICAgIFNaX1ogICAgIH0KI2RlZmlu ZSBPX2VEWCAgICAgeyBPUF9lRFgsICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fREhyMTRiICB7 IE9QX0RIcjE0YiwgICBTWl9OQSAgICB9CiNkZWZpbmUgT19yU1AgICAgIHsgT1BfclNQLCAgICAg IFNaX05BICAgIH0KI2RlZmluZSBPX1BSICAgICAgeyBPUF9QUiwgICAgICAgU1pfTkEgICAgfQoj ZGVmaW5lIE9fTk9ORSAgICB7IE9QX05PTkUsICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19yQ1gg ICAgIHsgT1BfckNYLCAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX2pXUCAgICAgeyBPUF9KLCAg ICAgICAgU1pfV1AgICAgfQojZGVmaW5lIE9fckRYcjEwICB7IE9QX3JEWHIxMCwgICBTWl9OQSAg ICB9CiNkZWZpbmUgT19NZCAgICAgIHsgT1BfTSwgICAgICAgIFNaX0QgICAgIH0KI2RlZmluZSBP X0MgICAgICAgeyBPUF9DLCAgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fRyAgICAgICB7IE9Q X0csICAgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19NYiAgICAgIHsgT1BfTSwgICAgICAgIFNa X0IgICAgIH0KI2RlZmluZSBPX010ICAgICAgeyBPUF9NLCAgICAgICAgU1pfVCAgICAgfQojZGVm aW5lIE9fUyAgICAgICB7IE9QX1MsICAgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19NcSAgICAg IHsgT1BfTSwgICAgICAgIFNaX1EgICAgIH0KI2RlZmluZSBPX1cgICAgICAgeyBPUF9XLCAgICAg ICAgU1pfTkEgICAgfQojZGVmaW5lIE9fRVMgICAgICB7IE9QX0VTLCAgICAgICBTWl9OQSAgICB9 CiNkZWZpbmUgT19yQlggICAgIHsgT1BfckJYLCAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX0Vk ICAgICAgeyBPUF9FLCAgICAgICAgU1pfRCAgICAgfQojZGVmaW5lIE9fRExyMTBiICB7IE9QX0RM cjEwYiwgICBTWl9OQSAgICB9CiNkZWZpbmUgT19NdyAgICAgIHsgT1BfTSwgICAgICAgIFNaX1cg ICAgIH0KI2RlZmluZSBPX0ViICAgICAgeyBPUF9FLCAgICAgICAgU1pfQiAgICAgfQojZGVmaW5l IE9fRXggICAgICB7IE9QX0UsICAgICAgICBTWl9NRFEgICB9CiNkZWZpbmUgT19FeiAgICAgIHsg T1BfRSwgICAgICAgIFNaX1ogICAgIH0KI2RlZmluZSBPX0V3ICAgICAgeyBPUF9FLCAgICAgICAg U1pfVyAgICAgfQojZGVmaW5lIE9fRXYgICAgICB7IE9QX0UsICAgICAgICBTWl9WICAgICB9CiNk ZWZpbmUgT19FcCAgICAgIHsgT1BfRSwgICAgICAgIFNaX1AgICAgIH0KI2RlZmluZSBPX0ZTICAg ICAgeyBPUF9GUywgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fTXMgICAgICB7IE9QX00sICAg ICAgICBTWl9XICAgICB9CiNkZWZpbmUgT19yQVhyOCAgIHsgT1BfckFYcjgsICAgIFNaX05BICAg IH0KI2RlZmluZSBPX2VCUCAgICAgeyBPUF9lQlAsICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9f SXNiICAgICB7IE9QX0ksICAgICAgICBTWl9TQiAgICB9CiNkZWZpbmUgT19lQlggICAgIHsgT1Bf ZUJYLCAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX3JDWHI5ICAgeyBPUF9yQ1hyOSwgICAgU1pf TkEgICAgfQojZGVmaW5lIE9fakRQICAgICB7IE9QX0osICAgICAgICBTWl9EUCAgICB9CiNkZWZp bmUgT19DSCAgICAgIHsgT1BfQ0gsICAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX0NMICAgICAg eyBPUF9DTCwgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fUiAgICAgICB7IE9QX1IsICAgICAg ICBTWl9SRFEgICB9CiNkZWZpbmUgT19WICAgICAgIHsgT1BfViwgICAgICAgIFNaX05BICAgIH0K I2RlZmluZSBPX0NTICAgICAgeyBPUF9DUywgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fQ0hy MTNiICB7IE9QX0NIcjEzYiwgICBTWl9OQSAgICB9CiNkZWZpbmUgT19lQ1ggICAgIHsgT1BfZUNY LCAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX2VTUCAgICAgeyBPUF9lU1AsICAgICAgU1pfTkEg ICAgfQojZGVmaW5lIE9fU1MgICAgICB7IE9QX1NTLCAgICAgICBTWl9OQSAgICB9CiNkZWZpbmUg T19TUCAgICAgIHsgT1BfU1AsICAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX0JMcjExYiAgeyBP UF9CTHIxMWIsICAgU1pfTkEgICAgfQojZGVmaW5lIE9fU0kgICAgICB7IE9QX1NJLCAgICAgICBT Wl9OQSAgICB9CiNkZWZpbmUgT19lU0kgICAgIHsgT1BfZVNJLCAgICAgIFNaX05BICAgIH0KI2Rl ZmluZSBPX0RMICAgICAgeyBPUF9ETCwgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fREggICAg ICB7IE9QX0RILCAgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19ESSAgICAgIHsgT1BfREksICAg ICAgIFNaX05BICAgIH0KI2RlZmluZSBPX0RYICAgICAgeyBPUF9EWCwgICAgICAgU1pfTkEgICAg fQojZGVmaW5lIE9fckJQICAgICB7IE9QX3JCUCwgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19H dncgICAgIHsgT1BfRywgICAgICAgIFNaX01EUSAgIH0KI2RlZmluZSBPX0kxICAgICAgeyBPUF9J MSwgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fSTMgICAgICB7IE9QX0kzLCAgICAgICBTWl9O QSAgICB9CiNkZWZpbmUgT19EUyAgICAgIHsgT1BfRFMsICAgICAgIFNaX05BICAgIH0KI2RlZmlu ZSBPX1NUNCAgICAgeyBPUF9TVDQsICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fU1Q1ICAgICB7 IE9QX1NUNSwgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19TVDYgICAgIHsgT1BfU1Q2LCAgICAg IFNaX05BICAgIH0KI2RlZmluZSBPX1NUNyAgICAgeyBPUF9TVDcsICAgICAgU1pfTkEgICAgfQoj ZGVmaW5lIE9fU1QwICAgICB7IE9QX1NUMCwgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19TVDEg ICAgIHsgT1BfU1QxLCAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX1NUMiAgICAgeyBPUF9TVDIs ICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fU1QzICAgICB7IE9QX1NUMywgICAgICBTWl9OQSAg ICB9CiNkZWZpbmUgT19FICAgICAgIHsgT1BfRSwgICAgICAgIFNaX05BICAgIH0KI2RlZmluZSBP X0FIICAgICAgeyBPUF9BSCwgICAgICAgU1pfTkEgICAgfQojZGVmaW5lIE9fTSAgICAgICB7IE9Q X00sICAgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19BTCAgICAgIHsgT1BfQUwsICAgICAgIFNa X05BICAgIH0KI2RlZmluZSBPX0NMcjliICAgeyBPUF9DTHI5YiwgICAgU1pfTkEgICAgfQojZGVm aW5lIE9fUSAgICAgICB7IE9QX1EsICAgICAgICBTWl9OQSAgICB9CiNkZWZpbmUgT19lQVggICAg IHsgT1BfZUFYLCAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX1ZSICAgICAgeyBPUF9WUiwgICAg ICAgU1pfTkEgICAgfQojZGVmaW5lIE9fQVggICAgICB7IE9QX0FYLCAgICAgICBTWl9OQSAgICB9 CiNkZWZpbmUgT19yQVggICAgIHsgT1BfckFYLCAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX0l6 ICAgICAgeyBPUF9JLCAgICAgICAgU1pfWiAgICAgfQojZGVmaW5lIE9fckRJcjE1ICB7IE9QX3JE SXIxNSwgICBTWl9OQSAgICB9CiNkZWZpbmUgT19JdyAgICAgIHsgT1BfSSwgICAgICAgIFNaX1cg ICAgIH0KI2RlZmluZSBPX0l2ICAgICAgeyBPUF9JLCAgICAgICAgU1pfViAgICAgfQojZGVmaW5l IE9fQXAgICAgICB7IE9QX0EsICAgICAgICBTWl9QICAgICB9CiNkZWZpbmUgT19DWCAgICAgIHsg T1BfQ1gsICAgICAgIFNaX05BICAgIH0KI2RlZmluZSBPX0liICAgICAgeyBPUF9JLCAgICAgICAg U1pfQiAgICAgfQojZGVmaW5lIE9fQkhyMTViICB7IE9QX0JIcjE1YiwgICBTWl9OQSAgICB9CgoK LyogQSBzaW5nbGUgb3BlcmFuZCBvZiBhbiBlbnRyeSBpbiB0aGUgaW5zdHJ1Y3Rpb24gdGFibGUu IAogKiAoaW50ZXJuYWwgdXNlIG9ubHkpCiAqLwpzdHJ1Y3QgdWRfaXRhYl9lbnRyeV9vcGVyYW5k IAp7CiAgZW51bSB1ZF9vcGVyYW5kX2NvZGUgdHlwZTsKICBlbnVtIHVkX29wZXJhbmRfc2l6ZSBz aXplOwp9OwoKCi8qIEEgc2luZ2xlIGVudHJ5IGluIGFuIGluc3RydWN0aW9uIHRhYmxlLiAKICoo aW50ZXJuYWwgdXNlIG9ubHkpCiAqLwpzdHJ1Y3QgdWRfaXRhYl9lbnRyeSAKewogIGVudW0gdWRf bW5lbW9uaWNfY29kZSAgICAgICAgIG1uZW1vbmljOwogIHN0cnVjdCB1ZF9pdGFiX2VudHJ5X29w ZXJhbmQgIG9wZXJhbmQxOwogIHN0cnVjdCB1ZF9pdGFiX2VudHJ5X29wZXJhbmQgIG9wZXJhbmQy OwogIHN0cnVjdCB1ZF9pdGFiX2VudHJ5X29wZXJhbmQgIG9wZXJhbmQzOwogIHVpbnQzMl90ICAg ICAgICAgICAgICAgICAgICAgIHByZWZpeDsKfTsKCiNlbmRpZiAvKiBVRF9ERUNPREVfSCAqLwoK LyogdmltOmNpbmRlbnQKICogdmltOmV4cGFuZHRhYgogKiB2aW06dHM9NAogKiB2aW06c3c9NAog Ki8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABrZGIveDg2L3VkaXM4Ni0xLjcvZXh0ZXJuLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY2NAAwMDAy NzU2ADAwMDI3NTYAMDAwMDAwMDMxMzQAMTE3NjU0NjU1NTYAMDE1MzI1ACAwAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIGV4dGVybi5oCiAqCiAqIENvcHlyaWdodCAoYykg MjAwNCwgMjAwNSwgMjAwNiwgVml2ZWsgTW9oYW4gPHZpdmVrQHNpZzkuY29tPgogKiBBbGwgcmln aHRzIHJlc2VydmVkLiBTZWUgTElDRU5TRQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8KI2lm bmRlZiBVRF9FWFRFUk5fSAojZGVmaW5lIFVEX0VYVEVSTl9ICgojaWZkZWYgX19jcGx1c3BsdXMK ZXh0ZXJuICJDIiB7CiNlbmRpZgoKLyogI2luY2x1ZGUgPHN0ZGlvLmg+ICovCiNpbmNsdWRlICJ0 eXBlcy5oIgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUFVCTElDIEFQSSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCmV4dGVybiB2b2lkIHVkX2luaXQoc3Ry dWN0IHVkKik7CgpleHRlcm4gdm9pZCB1ZF9zZXRfbW9kZShzdHJ1Y3QgdWQqLCB1aW50OF90KTsK CmV4dGVybiB2b2lkIHVkX3NldF9wYyhzdHJ1Y3QgdWQqLCB1aW50NjRfdCk7CgpleHRlcm4gdm9p ZCB1ZF9zZXRfaW5wdXRfaG9vayhzdHJ1Y3QgdWQqLCBpbnQgKCopKHN0cnVjdCB1ZCopKTsKCmV4 dGVybiB2b2lkIHVkX3NldF9pbnB1dF9idWZmZXIoc3RydWN0IHVkKiwgdWludDhfdCosIHNpemVf dCk7CgojaWZuZGVmIF9fVURfU1RBTkRBTE9ORV9fCmV4dGVybiB2b2lkIHVkX3NldF9pbnB1dF9m aWxlKHN0cnVjdCB1ZCosIEZJTEUqKTsKI2VuZGlmIC8qIF9fVURfU1RBTkRBTE9ORV9fICovCgpl eHRlcm4gdm9pZCB1ZF9zZXRfdmVuZG9yKHN0cnVjdCB1ZCosIHVuc2lnbmVkKTsKCmV4dGVybiB2 b2lkIHVkX3NldF9zeW50YXgoc3RydWN0IHVkKiwgdm9pZCAoKikoc3RydWN0IHVkKikpOwoKZXh0 ZXJuIHZvaWQgdWRfaW5wdXRfc2tpcChzdHJ1Y3QgdWQqLCBzaXplX3QpOwoKZXh0ZXJuIGludCB1 ZF9pbnB1dF9lbmQoc3RydWN0IHVkKik7CgpleHRlcm4gdW5zaWduZWQgaW50IHVkX2RlY29kZShz dHJ1Y3QgdWQqKTsKCmV4dGVybiB1bnNpZ25lZCBpbnQgdWRfZGlzYXNzZW1ibGUoc3RydWN0IHVk Kik7CgpleHRlcm4gdm9pZCB1ZF90cmFuc2xhdGVfaW50ZWwoc3RydWN0IHVkKik7CgpleHRlcm4g dm9pZCB1ZF90cmFuc2xhdGVfYXR0KHN0cnVjdCB1ZCopOwoKZXh0ZXJuIGNoYXIqIHVkX2luc25f YXNtKHN0cnVjdCB1ZCogdSk7CgpleHRlcm4gdWludDhfdCogdWRfaW5zbl9wdHIoc3RydWN0IHVk KiB1KTsKCmV4dGVybiB1aW50NjRfdCB1ZF9pbnNuX29mZihzdHJ1Y3QgdWQqKTsKCmV4dGVybiBj aGFyKiB1ZF9pbnNuX2hleChzdHJ1Y3QgdWQqKTsKCmV4dGVybiB1bnNpZ25lZCBpbnQgdWRfaW5z bl9sZW4oc3RydWN0IHVkKiB1KTsKCmV4dGVybiBjb25zdCBjaGFyKiB1ZF9sb29rdXBfbW5lbW9u aWMoZW51bSB1ZF9tbmVtb25pY19jb2RlIGMpOwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNp ZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgojZW5kaWYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2Ri L3g4Ni91ZGlzODYtMS43L3N5bi5jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjQAMDAwMjc1NgAw MDAyNzU2ADAwMDAwMDAzMjMxADExNzY1NDY1NTU2ADAxNDYyMgAgMAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogKiBzeW4uYwogKgogKiBDb3B5cmlnaHQgKGMpIDIwMDIsIDIw MDMsIDIwMDQgVml2ZWsgTW9oYW4gPHZpdmVrQHNpZzkuY29tPgogKiBBbGwgcmlnaHRzIHJlc2Vy dmVkLiBTZWUgKExJQ0VOU0UpCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwoKLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICogSW50ZWwgUmVnaXN0ZXIgVGFibGUgLSBPcmRlciBNYXR0ZXJzICh0 eXBlcy5oKSEKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICovCmNvbnN0IGNoYXIqIHVkX3JlZ190 YWJbXSA9IAp7CiAgImFsIiwJCSJjbCIsCQkiZGwiLAkJImJsIiwKICAiYWgiLAkJImNoIiwJCSJk aCIsCQkiYmgiLAogICJzcGwiLAkiYnBsIiwJCSJzaWwiLAkJImRpbCIsCiAgInI4YiIsCSJyOWIi LAkJInIxMGIiLAkJInIxMWIiLAogICJyMTJiIiwJInIxM2IiLAkJInIxNGIiLAkJInIxNWIiLAoK ICAiYXgiLAkJImN4IiwJCSJkeCIsCQkiYngiLAogICJzcCIsCQkiYnAiLAkJInNpIiwJCSJkaSIs CiAgInI4dyIsCSJyOXciLAkJInIxMHciLAkJInIxMXciLAogICJyMTJ3IiwJInIxM1ciCSwJInIx NHciLAkJInIxNXciLAoJCiAgImVheCIsCSJlY3giLAkJImVkeCIsCQkiZWJ4IiwKICAiZXNwIiwJ ImVicCIsCQkiZXNpIiwJCSJlZGkiLAogICJyOGQiLAkicjlkIiwJCSJyMTBkIiwJCSJyMTFkIiwK ICAicjEyZCIsCSJyMTNkIiwJCSJyMTRkIiwJCSJyMTVkIiwKCQogICJyYXgiLAkicmN4IiwJCSJy ZHgiLAkJInJieCIsCiAgInJzcCIsCSJyYnAiLAkJInJzaSIsCQkicmRpIiwKICAicjgiLAkJInI5 IiwJCSJyMTAiLAkJInIxMSIsCiAgInIxMiIsCSJyMTMiLAkJInIxNCIsCQkicjE1IiwKCiAgImVz IiwJCSJjcyIsCQkic3MiLAkJImRzIiwKICAiZnMiLAkJImdzIiwJCgogICJjcjAiLAkiY3IxIiwJ CSJjcjIiLAkJImNyMyIsCiAgImNyNCIsCSJjcjUiLAkJImNyNiIsCQkiY3I3IiwKICAiY3I4IiwJ ImNyOSIsCQkiY3IxMCIsCQkiY3IxMSIsCiAgImNyMTIiLAkiY3IxMyIsCQkiY3IxNCIsCQkiY3Ix NSIsCgkKICAiZHIwIiwJImRyMSIsCQkiZHIyIiwJCSJkcjMiLAogICJkcjQiLAkiZHI1IiwJCSJk cjYiLAkJImRyNyIsCiAgImRyOCIsCSJkcjkiLAkJImRyMTAiLAkJImRyMTEiLAogICJkcjEyIiwJ ImRyMTMiLAkJImRyMTQiLAkJImRyMTUiLAoKICAibW0wIiwJIm1tMSIsCQkibW0yIiwJCSJtbTMi LAogICJtbTQiLAkibW01IiwJCSJtbTYiLAkJIm1tNyIsCgogICJzdDAiLAkic3QxIiwJCSJzdDIi LAkJInN0MyIsCiAgInN0NCIsCSJzdDUiLAkJInN0NiIsCQkic3Q3IiwgCgogICJ4bW0wIiwJInht bTEiLAkJInhtbTIiLAkJInhtbTMiLAogICJ4bW00IiwJInhtbTUiLAkJInhtbTYiLAkJInhtbTci LAogICJ4bW04IiwJInhtbTkiLAkJInhtbTEwIiwJInhtbTExIiwKICAieG1tMTIiLAkieG1tMTMi LAkieG1tMTQiLAkieG1tMTUiLAoKICAicmlwIgp9OwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtkYi94ODYv dWRpczg2LTEuNy9zeW4uaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1 NgAwMDAwMDAwMTEzMwAxMTc2NTQ2NTU1NgAwMTQ2MjYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICogc3luLmgKICoKICogQ29weXJpZ2h0IChjKSAyMDA2LCBWaXZlayBN b2hhbiA8dml2ZWtAc2lnOS5jb20+CiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFNlZSBMSUNFTlNF CiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwojaWZuZGVmIFVEX1NZTl9ICiNkZWZpbmUgVURf U1lOX0gKCiNpZiAwCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkYXJnLmg+CiNlbmRp ZgojaW5jbHVkZSAidHlwZXMuaCIKCmV4dGVybiBjb25zdCBjaGFyKiB1ZF9yZWdfdGFiW107Cgpz dGF0aWMgdm9pZCBta2FzbShzdHJ1Y3QgdWQqIHUsIGNvbnN0IGNoYXIqIGZtdCwgLi4uKQp7CiAg dmFfbGlzdCBhcDsKICB2YV9zdGFydChhcCwgZm10KTsKICB1LT5pbnNuX2ZpbGwgKz0gdnNucHJp bnRmKChjaGFyKikgdS0+aW5zbl9idWZmZXIgKyB1LT5pbnNuX2ZpbGwsIDY0LCBmbXQsIGFwKTsK ICB2YV9lbmQoYXApOwp9CgojZW5kaWYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtkYi94ODYvdWRp czg2LTEuNy91ZGlzODYuYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1NgAw MDAwMDAxMDA1NgAxMTc2NTQ2NTU1NgAwMTUxMzYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICogdWRpczg2LmMKICoKICogQ29weXJpZ2h0IChjKSAyMDA0LCAyMDA1LCAy MDA2LCBWaXZlayBNb2hhbiA8dml2ZWtAc2lnOS5jb20+CiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQu IFNlZSBMSUNFTlNFCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwoKI2lmIDAKI2luY2x1ZGUg PHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojZW5kaWYK CiNpbmNsdWRlICJpbnB1dC5oIgojaW5jbHVkZSAiZXh0ZXJuLmgiCgovKiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogKiB1ZF9pbml0KCkgLSBJbml0aWFsaXplcyB1ZF90IG9iamVjdC4KICogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICovCmV4dGVybiB2b2lkIAp1ZF9pbml0KHN0cnVjdCB1ZCogdSkKewog IG1lbXNldCgodm9pZCopdSwgMCwgc2l6ZW9mKHN0cnVjdCB1ZCkpOwogIHVkX3NldF9tb2RlKHUs IDE2KTsKICB1LT5tbmVtb25pYyA9IFVEX0lpbnZhbGlkOwogIHVkX3NldF9wYyh1LCAwKTsKI2lm bmRlZiBfX1VEX1NUQU5EQUxPTkVfXwogIHVkX3NldF9pbnB1dF9maWxlKHUsIHN0ZGluKTsKI2Vu ZGlmIC8qIF9fVURfU1RBTkRBTE9ORV9fICovCn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAq IHVkX2Rpc2Fzc2VtYmxlKCkgLSBkaXNhc3NlbWJsZXMgb25lIGluc3RydWN0aW9uIGFuZCByZXR1 cm5zIHRoZSBudW1iZXIgb2YgCiAqIGJ5dGVzIGRpc2Fzc2VtYmxlZC4gQSB6ZXJvIG1lYW5zIGVu ZCBvZiBkaXNhc3NlbWJseS4KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICovCmV4dGVybiB1bnNp Z25lZCBpbnQKdWRfZGlzYXNzZW1ibGUoc3RydWN0IHVkKiB1KQp7CiAgaWYgKHVkX2lucHV0X2Vu ZCh1KSkKCXJldHVybiAwOwoKIAogIHUtPmluc25fYnVmZmVyWzBdID0gdS0+aW5zbl9oZXhjb2Rl WzBdID0gMDsKCiAKICBpZiAodWRfZGVjb2RlKHUpID09IDApCglyZXR1cm4gMDsKICBpZiAodS0+ dHJhbnNsYXRvcikKCXUtPnRyYW5zbGF0b3IodSk7CiAgcmV0dXJuIHVkX2luc25fbGVuKHUpOwp9 CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogKiB1ZF9zZXRfbW9kZSgpIC0gU2V0IERpc2Fzc2Vt bHkgTW9kZS4KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICovCmV4dGVybiB2b2lkIAp1ZF9zZXRf bW9kZShzdHJ1Y3QgdWQqIHUsIHVpbnQ4X3QgbSkKewogIHN3aXRjaChtKSB7CgljYXNlIDE2OgoJ Y2FzZSAzMjoKCWNhc2UgNjQ6IHUtPmRpc19tb2RlID0gbSA7IHJldHVybjsKCWRlZmF1bHQ6IHUt PmRpc19tb2RlID0gMTY7IHJldHVybjsKICB9Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAq IHVkX3NldF92ZW5kb3IoKSAtIFNldCB2ZW5kb3IuCiAqID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAq LwpleHRlcm4gdm9pZCAKdWRfc2V0X3ZlbmRvcihzdHJ1Y3QgdWQqIHUsIHVuc2lnbmVkIHYpCnsK ICBzd2l0Y2godikgewoJY2FzZSBVRF9WRU5ET1JfSU5URUw6CgkJdS0+dmVuZG9yID0gdjsKCQli cmVhazsKCWRlZmF1bHQ6CgkJdS0+dmVuZG9yID0gVURfVkVORE9SX0FNRDsKICB9Cn0KCi8qID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAqIHVkX3NldF9wYygpIC0gU2V0cyBjb2RlIG9yaWdpbi4gCiAq ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAqLwpleHRlcm4gdm9pZCAKdWRfc2V0X3BjKHN0cnVjdCB1 ZCogdSwgdWludDY0X3QgbykKewogIHUtPnBjID0gbzsKfQoKLyogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KICogdWRfc2V0X3N5bnRheCgpIC0gU2V0cyB0aGUgb3V0cHV0IHN5bnRheC4KICogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICovCmV4dGVybiB2b2lkIAp1ZF9zZXRfc3ludGF4KHN0cnVjdCB1ZCog dSwgdm9pZCAoKnQpKHN0cnVjdCB1ZCopKQp7CiAgdS0+dHJhbnNsYXRvciA9IHQ7Cn0KCi8qID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAqIHVkX2luc24oKSAtIHJldHVybnMgdGhlIGRpc2Fzc2VtYmxl ZCBpbnN0cnVjdGlvbgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKi8KZXh0ZXJuIGNoYXIqIAp1 ZF9pbnNuX2FzbShzdHJ1Y3QgdWQqIHUpIAp7CiAgcmV0dXJuIHUtPmluc25fYnVmZmVyOwp9Cgov KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogKiB1ZF9pbnNuX29mZnNldCgpIC0gUmV0dXJucyB0aGUg b2Zmc2V0LgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKi8KZXh0ZXJuIHVpbnQ2NF90CnVkX2lu c25fb2ZmKHN0cnVjdCB1ZCogdSkgCnsKICByZXR1cm4gdS0+aW5zbl9vZmZzZXQ7Cn0KCgovKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogKiB1ZF9pbnNuX2hleCgpIC0gUmV0dXJucyBoZXggZm9ybSBv ZiBkaXNhc3NlbWJsZWQgaW5zdHJ1Y3Rpb24uCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqLwpl eHRlcm4gY2hhciogCnVkX2luc25faGV4KHN0cnVjdCB1ZCogdSkgCnsKICByZXR1cm4gdS0+aW5z bl9oZXhjb2RlOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiB1ZF9pbnNuX3B0cigpIC0g UmV0dXJucyBjb2RlIGRpc2Fzc2VtYmxlZC4KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICovCmV4 dGVybiB1aW50OF90KiAKdWRfaW5zbl9wdHIoc3RydWN0IHVkKiB1KSAKewogIHJldHVybiB1LT5p bnBfc2VzczsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogdWRfaW5zbl9sZW4oKSAtIFJl dHVybnMgdGhlIGNvdW50IG9mIGJ5dGVzIGRpc2Fzc2VtYmxlZC4KICogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KICovCmV4dGVybiB1bnNpZ25lZCBpbnQgCnVkX2luc25fbGVuKHN0cnVjdCB1ZCogdSkg CnsKICByZXR1cm4gdS0+aW5wX2N0cjsKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2RiL3g4Ni91ZGlzODYtMS43L01h a2VmaWxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjQAMDAwMjc1NgAwMDAyNzU2ADAwMDAwMDAwMjA3 ADExNzY1NDY1NTU2ADAxNTMwNQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbXJhdGhvcgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQ0ZMQUdTCQkrPSAtRF9fVURfU1RB TkRBTE9ORV9fCm9iai15CQk6PSBkZWNvZGUubyBpbnB1dC5vIGl0YWIubyBrZGJfZGlzLm8gc3lu LWF0dC5vIHN5bi5vIFwKICAgICAgICAgICAgICAgICAgIHN5bi1pbnRlbC5vIHVkaXM4Ni5vCgoA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtkYi94ODYvdWRpczg2LTEuNy9kZWNv ZGUuYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1NgAwMDAwMDEwNDM0MgAx MTc2NTQ2NTU1NgAwMTUyNDEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAdXN0YXIgIABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICogZGVjb2RlLmMKICoKICogQ29weXJpZ2h0IChjKSAyMDA1LCAyMDA2LCBWaXZlayBNb2hhbiA8 dml2ZWtAc2lnOS5jb20+CiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFNlZSBMSUNFTlNFCiAqIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAqLwoKI2lmIDAKI2luY2x1ZGUgPGFzc2VydC5oPgojaW5jbHVk ZSA8c3RyaW5nLmg+CiNlbmRpZgoKI2luY2x1ZGUgInR5cGVzLmgiCiNpbmNsdWRlICJpdGFiLmgi CiNpbmNsdWRlICJpbnB1dC5oIgojaW5jbHVkZSAiZGVjb2RlLmgiCgovKiBUaGUgbWF4IG51bWJl ciBvZiBwcmVmaXhlcyB0byBhbiBpbnN0cnVjdGlvbiAqLwojZGVmaW5lIE1BWF9QUkVGSVhFUyAg ICAxNQoKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGllX2ludmFsaWQgPSB7IFVEX0lpbnZh bGlkLCBPX05PTkUsIE9fTk9ORSwgT19OT05FLCBQX25vbmUgfTsKc3RhdGljIHN0cnVjdCB1ZF9p dGFiX2VudHJ5IGllX3BhdXNlICAgPSB7IFVEX0lwYXVzZSwgICBPX05PTkUsIE9fTk9ORSwgT19O T05FLCBQX25vbmUgfTsKc3RhdGljIHN0cnVjdCB1ZF9pdGFiX2VudHJ5IGllX25vcCAgICAgPSB7 IFVEX0lub3AsICAgICBPX05PTkUsIE9fTk9ORSwgT19OT05FLCBQX25vbmUgfTsKCgovKiBMb29r cyB1cCBtbmVtb25pYyBjb2RlIGluIHRoZSBtbmVtb25pYyBzdHJpbmcgdGFibGUKICogUmV0dXJu cyBOVUxMIGlmIHRoZSBtbmVtb25pYyBjb2RlIGlzIGludmFsaWQKICovCmNvbnN0IGNoYXIgKiB1 ZF9sb29rdXBfbW5lbW9uaWMoIGVudW0gdWRfbW5lbW9uaWNfY29kZSBjICkKewogICAgaWYgKCBj IDwgVURfSWQzdmlsICkKICAgICAgICByZXR1cm4gdWRfbW5lbW9uaWNzX3N0clsgYyBdOwogICAg cmV0dXJuIE5VTEw7Cn0KCgovKiBFeHRyYWN0cyBpbnN0cnVjdGlvbiBwcmVmaXhlcy4KICovCnN0 YXRpYyBpbnQgZ2V0X3ByZWZpeGVzKCBzdHJ1Y3QgdWQqIHUgKQp7CiAgICB1bnNpZ25lZCBpbnQg aGF2ZV9wZnggPSAxOwogICAgdW5zaWduZWQgaW50IGk7CiAgICB1aW50OF90IGN1cnI7CgogICAg LyogaWYgaW4gZXJyb3Igc3RhdGUsIGJhaWwgb3V0ICovCiAgICBpZiAoIHUtPmVycm9yICkgCiAg ICAgICAgcmV0dXJuIC0xOyAKCiAgICAvKiBrZWVwIGdvaW5nIGFzIGxvbmcgYXMgdGhlcmUgYXJl IHByZWZpeGVzIGF2YWlsYWJsZSAqLwogICAgZm9yICggaSA9IDA7IGhhdmVfcGZ4IDsgKytpICkg ewoKICAgICAgICAvKiBHZXQgbmV4dCBieXRlLiAqLwogICAgICAgIGlucF9uZXh0KHUpOyAKICAg ICAgICBpZiAoIHUtPmVycm9yICkgCiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICBjdXJy ID0gaW5wX2N1cnIoIHUgKTsKCiAgICAgICAgLyogcmV4IHByZWZpeGVzIGluIDY0Yml0IG1vZGUg Ki8KICAgICAgICBpZiAoIHUtPmRpc19tb2RlID09IDY0ICYmICggY3VyciAmIDB4RjAgKSA9PSAw eDQwICkgewogICAgICAgICAgICB1LT5wZnhfcmV4ID0gY3VycjsgIAogICAgICAgIH0gZWxzZSB7 CiAgICAgICAgICAgIHN3aXRjaCAoIGN1cnIgKSAgCiAgICAgICAgICAgIHsKICAgICAgICAgICAg Y2FzZSAweDJFIDogCiAgICAgICAgICAgICAgICB1LT5wZnhfc2VnID0gVURfUl9DUzsgCiAgICAg ICAgICAgICAgICB1LT5wZnhfcmV4ID0gMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICAgICBjYXNlIDB4MzYgOiAgICAgCiAgICAgICAgICAgICAgICB1LT5wZnhfc2VnID0gVURfUl9T UzsgCiAgICAgICAgICAgICAgICB1LT5wZnhfcmV4ID0gMDsKICAgICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICAgICBjYXNlIDB4M0UgOiAKICAgICAgICAgICAgICAgIHUtPnBmeF9zZWcgPSBV RF9SX0RTOyAKICAgICAgICAgICAgICAgIHUtPnBmeF9yZXggPSAwOwogICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgIGNhc2UgMHgyNiA6IAogICAgICAgICAgICAgICAgdS0+cGZ4X3Nl ZyA9IFVEX1JfRVM7IAogICAgICAgICAgICAgICAgdS0+cGZ4X3JleCA9IDA7CiAgICAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAweDY0IDogCiAgICAgICAgICAgICAgICB1LT5w Znhfc2VnID0gVURfUl9GUzsgCiAgICAgICAgICAgICAgICB1LT5wZnhfcmV4ID0gMDsKICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDB4NjUgOiAKICAgICAgICAgICAgICAg IHUtPnBmeF9zZWcgPSBVRF9SX0dTOyAKICAgICAgICAgICAgICAgIHUtPnBmeF9yZXggPSAwOwog ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMHg2NyA6IC8qIGFkcmVzcy1z aXplIG92ZXJyaWRlIHByZWZpeCAqLyAKICAgICAgICAgICAgICAgIHUtPnBmeF9hZHIgPSAweDY3 OwogICAgICAgICAgICAgICAgdS0+cGZ4X3JleCA9IDA7CiAgICAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgICAgY2FzZSAweEYwIDogCiAgICAgICAgICAgICAgICB1LT5wZnhfbG9jayA9IDB4 RjA7CiAgICAgICAgICAgICAgICB1LT5wZnhfcmV4ICA9IDA7CiAgICAgICAgICAgICAgICBicmVh azsKICAgICAgICAgICAgY2FzZSAweDY2OiAKICAgICAgICAgICAgICAgIC8qIHRoZSAweDY2IHNz ZSBwcmVmaXggaXMgb25seSBlZmZlY3RpdmUgaWYgbm8gb3RoZXIgc3NlIHByZWZpeAogICAgICAg ICAgICAgICAgICogaGFzIGFscmVhZHkgYmVlbiBzcGVjaWZpZWQuCiAgICAgICAgICAgICAgICAg Ki8KICAgICAgICAgICAgICAgIGlmICggIXUtPnBmeF9pbnNuICkgdS0+cGZ4X2luc24gPSAweDY2 OwogICAgICAgICAgICAgICAgdS0+cGZ4X29wciA9IDB4NjY7ICAgICAgICAgICAKICAgICAgICAg ICAgICAgIHUtPnBmeF9yZXggPSAwOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg IGNhc2UgMHhGMjoKICAgICAgICAgICAgICAgIHUtPnBmeF9pbnNuICA9IDB4RjI7CiAgICAgICAg ICAgICAgICB1LT5wZnhfcmVwbmUgPSAweEYyOyAKICAgICAgICAgICAgICAgIHUtPnBmeF9yZXgg ICA9IDA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAweEYzOgogICAg ICAgICAgICAgICAgdS0+cGZ4X2luc24gPSAweEYzOwogICAgICAgICAgICAgICAgdS0+cGZ4X3Jl cCAgPSAweEYzOyAKICAgICAgICAgICAgICAgIHUtPnBmeF9yZXBlID0gMHhGMzsgCiAgICAgICAg ICAgICAgICB1LT5wZnhfcmV4ICA9IDA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ICAgZGVmYXVsdCA6IAogICAgICAgICAgICAgICAgLyogTm8gbW9yZSBwcmVmaXhlcyAqLwogICAg ICAgICAgICAgICAgaGF2ZV9wZnggPSAwOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIC8qIGNoZWNrIGlmIHdlIHJlYWNoZWQgbWF4IGluc3Ry dWN0aW9uIGxlbmd0aCAqLwogICAgICAgIGlmICggaSArIDEgPT0gTUFYX0lOU05fTEVOR1RIICkg ewogICAgICAgICAgICB1LT5lcnJvciA9IDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0K ICAgIH0KCiAgICAvKiByZXR1cm4gc3RhdHVzICovCiAgICBpZiAoIHUtPmVycm9yICkgCiAgICAg ICAgcmV0dXJuIC0xOyAKCiAgICAvKiByZXdpbmQgYmFjayBvbmUgYnl0ZSBpbiBzdHJlYW0sIHNp bmNlIHRoZSBhYm92ZSBsb29wIAogICAgICogc3RvcHMgd2l0aCBhIG5vbi1wcmVmaXggYnl0ZS4g CiAgICAgKi8KICAgIGlucF9iYWNrKHUpOwoKICAgIC8qIHNwZWN1bGF0aXZlbHkgZGV0ZXJtaW5l IHRoZSBlZmZlY3RpdmUgb3BlcmFuZCBtb2RlLAogICAgICogYmFzZWQgb24gdGhlIHByZWZpeGVz IGFuZCB0aGUgY3VycmVudCBkaXNhc3NlbWJseQogICAgICogbW9kZS4gVGhpcyBtYXkgYmUgaW5h Y2N1cmF0ZSwgYnV0IHVzZWZ1bCBmb3IgbW9kZQogICAgICogZGVwZW5kZW50IGRlY29kaW5nLgog ICAgICovCiAgICBpZiAoIHUtPmRpc19tb2RlID09IDY0ICkgewogICAgICAgIHUtPm9wcl9tb2Rl ID0gUkVYX1coIHUtPnBmeF9yZXggKSA/IDY0IDogKCAoIHUtPnBmeF9vcHIgKSA/IDE2IDogMzIg KSA7CiAgICAgICAgdS0+YWRyX21vZGUgPSAoIHUtPnBmeF9hZHIgKSA/IDMyIDogNjQ7CiAgICB9 IGVsc2UgaWYgKCB1LT5kaXNfbW9kZSA9PSAzMiApIHsKICAgICAgICB1LT5vcHJfbW9kZSA9ICgg dS0+cGZ4X29wciApID8gMTYgOiAzMjsKICAgICAgICB1LT5hZHJfbW9kZSA9ICggdS0+cGZ4X2Fk ciApID8gMTYgOiAzMjsKICAgIH0gZWxzZSBpZiAoIHUtPmRpc19tb2RlID09IDE2ICkgewogICAg ICAgIHUtPm9wcl9tb2RlID0gKCB1LT5wZnhfb3ByICkgPyAzMiA6IDE2OwogICAgICAgIHUtPmFk cl9tb2RlID0gKCB1LT5wZnhfYWRyICkgPyAzMiA6IDE2OwogICAgfQoKICAgIHJldHVybiAwOwp9 CgoKLyogU2VhcmNoZXMgdGhlIGluc3RydWN0aW9uIHRhYmxlcyBmb3IgdGhlIHJpZ2h0IGVudHJ5 LgogKi8Kc3RhdGljIGludCBzZWFyY2hfaXRhYiggc3RydWN0IHVkICogdSApCnsKICAgIHN0cnVj dCB1ZF9pdGFiX2VudHJ5ICogZSA9IE5VTEw7CiAgICBlbnVtIHVkX2l0YWJfaW5kZXggdGFibGU7 CiAgICB1aW50OF90IHBlZWs7CiAgICB1aW50OF90IGRpZF9wZWVrID0gMDsKICAgIHVpbnQ4X3Qg Y3VycjsgCiAgICB1aW50OF90IGluZGV4OwoKICAgIC8qIGlmIGluIHN0YXRlIG9mIGVycm9yLCBy ZXR1cm4gKi8KICAgIGlmICggdS0+ZXJyb3IgKSAKICAgICAgICByZXR1cm4gLTE7CgogICAgLyog Z2V0IGZpcnN0IGJ5dGUgb2Ygb3Bjb2RlLiAqLwogICAgaW5wX25leHQodSk7IAogICAgaWYgKCB1 LT5lcnJvciApIAogICAgICAgIHJldHVybiAtMTsKICAgIGN1cnIgPSBpbnBfY3Vycih1KTsgCgog ICAgLyogcmVzb2x2ZSB4Y2hnLCBub3AsIHBhdXNlIGNyYXp5bmVzcyAqLwogICAgaWYgKCAweDkw ID09IGN1cnIgKSB7CiAgICAgICAgaWYgKCAhKCB1LT5kaXNfbW9kZSA9PSA2NCAmJiBSRVhfQigg dS0+cGZ4X3JleCApICkgKSB7CiAgICAgICAgICAgIGlmICggdS0+cGZ4X3JlcCApIHsKICAgICAg ICAgICAgICAgIHUtPnBmeF9yZXAgPSAwOwogICAgICAgICAgICAgICAgZSA9ICYgaWVfcGF1c2U7 CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlID0gJiBpZV9ub3A7CiAgICAg ICAgICAgIH0KICAgICAgICAgICAgZ290byBmb3VuZF9lbnRyeTsKICAgICAgICB9CiAgICB9Cgog ICAgLyogZ2V0IHRvcC1sZXZlbCB0YWJsZSAqLwogICAgaWYgKCAweDBGID09IGN1cnIgKSB7CiAg ICAgICAgdGFibGUgPSBJVEFCX18wRjsKICAgICAgICBjdXJyICA9IGlucF9uZXh0KHUpOwogICAg ICAgIGlmICggdS0+ZXJyb3IgKQogICAgICAgICAgICByZXR1cm4gLTE7CgogICAgICAgIC8qIDJi eXRlIG9wY29kZXMgY2FuIGJlIG1vZGlmaWVkIGJ5IDB4NjYsIEYzLCBhbmQgRjIgcHJlZml4ZXMg Ki8KICAgICAgICBpZiAoIDB4NjYgPT0gdS0+cGZ4X2luc24gKSB7CiAgICAgICAgICAgIGlmICgg dWRfaXRhYl9saXN0WyBJVEFCX19QRlhfU1NFNjZfXzBGIF1bIGN1cnIgXS5tbmVtb25pYyAhPSBV RF9JaW52YWxpZCApIHsKICAgICAgICAgICAgICAgIHRhYmxlID0gSVRBQl9fUEZYX1NTRTY2X18w RjsKICAgICAgICAgICAgICAgIHUtPnBmeF9vcHIgPSAwOwogICAgICAgICAgICB9CiAgICAgICAg fSBlbHNlIGlmICggMHhGMiA9PSB1LT5wZnhfaW5zbiApIHsKICAgICAgICAgICAgaWYgKCB1ZF9p dGFiX2xpc3RbIElUQUJfX1BGWF9TU0VGMl9fMEYgXVsgY3VyciBdLm1uZW1vbmljICE9IFVEX0lp bnZhbGlkICkgewogICAgICAgICAgICAgICAgdGFibGUgPSBJVEFCX19QRlhfU1NFRjJfXzBGOyAK ICAgICAgICAgICAgICAgIHUtPnBmeF9yZXBuZSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9 IGVsc2UgaWYgKCAweEYzID09IHUtPnBmeF9pbnNuICkgewogICAgICAgICAgICBpZiAoIHVkX2l0 YWJfbGlzdFsgSVRBQl9fUEZYX1NTRUYzX18wRiBdWyBjdXJyIF0ubW5lbW9uaWMgIT0gVURfSWlu dmFsaWQgKSB7CiAgICAgICAgICAgICAgICB0YWJsZSA9IElUQUJfX1BGWF9TU0VGM19fMEY7CiAg ICAgICAgICAgICAgICB1LT5wZnhfcmVwZSA9IDA7CiAgICAgICAgICAgICAgICB1LT5wZnhfcmVw ICA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAvKiBwaWNrIGFuIGluc3RydWN0aW9u IGZyb20gdGhlIDFieXRlIHRhYmxlICovCiAgICB9IGVsc2UgewogICAgICAgIHRhYmxlID0gSVRB Ql9fMUJZVEU7IAogICAgfQoKICAgIGluZGV4ID0gY3VycjsKCnNlYXJjaDoKCiAgICBlID0gJiB1 ZF9pdGFiX2xpc3RbIHRhYmxlIF1bIGluZGV4IF07CgogICAgLyogaWYgbW5lbW9uaWMgY29uc3Rh bnQgaXMgYSBzdGFuZGFyZCBpbnN0cnVjdGlvbiBjb25zdGFudAogICAgICogb3VyIHNlYXJjaCBp cyBvdmVyLgogICAgICovCiAgICAKICAgIGlmICggZS0+bW5lbW9uaWMgPCBVRF9JZDN2aWwgKSB7 CiAgICAgICAgaWYgKCBlLT5tbmVtb25pYyA9PSBVRF9JaW52YWxpZCApIHsKICAgICAgICAgICAg aWYgKCBkaWRfcGVlayApIHsKICAgICAgICAgICAgICAgIGlucF9uZXh0KCB1ICk7IGlmICggdS0+ ZXJyb3IgKSByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZ290byBmb3VuZF9l bnRyeTsKICAgICAgICB9CiAgICAgICAgZ290byBmb3VuZF9lbnRyeTsKICAgIH0KCiAgICB0YWJs ZSA9IGUtPnByZWZpeDsKCiAgICBzd2l0Y2ggKCBlLT5tbmVtb25pYyApCiAgICB7CiAgICBjYXNl IFVEX0lncnBfcmVnOgogICAgICAgIHBlZWsgICAgID0gaW5wX3BlZWsoIHUgKTsKICAgICAgICBk aWRfcGVlayA9IDE7CiAgICAgICAgaW5kZXggICAgPSBNT0RSTV9SRUcoIHBlZWsgKTsKICAgICAg ICBicmVhazsKCiAgICBjYXNlIFVEX0lncnBfbW9kOgogICAgICAgIHBlZWsgICAgID0gaW5wX3Bl ZWsoIHUgKTsKICAgICAgICBkaWRfcGVlayA9IDE7CiAgICAgICAgaW5kZXggICAgPSBNT0RSTV9N T0QoIHBlZWsgKTsKICAgICAgICBpZiAoIGluZGV4ID09IDMgKQogICAgICAgICAgIGluZGV4ID0g SVRBQl9fTU9EX0lORFhfXzExOwogICAgICAgIGVsc2UgCiAgICAgICAgICAgaW5kZXggPSBJVEFC X19NT0RfSU5EWF9fTk9UXzExOyAKICAgICAgICBicmVhazsKCiAgICBjYXNlIFVEX0lncnBfcm06 CiAgICAgICAgY3VyciAgICAgPSBpbnBfbmV4dCggdSApOwogICAgICAgIGRpZF9wZWVrID0gMDsK ICAgICAgICBpZiAoIHUtPmVycm9yICkKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIGlu ZGV4ICAgID0gTU9EUk1fUk0oIGN1cnIgKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlIFVEX0ln cnBfeDg3OgogICAgICAgIGN1cnIgICAgID0gaW5wX25leHQoIHUgKTsKICAgICAgICBkaWRfcGVl ayA9IDA7CiAgICAgICAgaWYgKCB1LT5lcnJvciApCiAgICAgICAgICAgIHJldHVybiAtMTsKICAg ICAgICBpbmRleCAgICA9IGN1cnIgLSAweEMwOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgVURf SWdycF9vc2l6ZToKICAgICAgICBpZiAoIHUtPm9wcl9tb2RlID09IDY0ICkgCiAgICAgICAgICAg IGluZGV4ID0gSVRBQl9fTU9ERV9JTkRYX182NDsKICAgICAgICBlbHNlIGlmICggdS0+b3ByX21v ZGUgPT0gMzIgKSAKICAgICAgICAgICAgaW5kZXggPSBJVEFCX19NT0RFX0lORFhfXzMyOwogICAg ICAgIGVsc2UKICAgICAgICAgICAgaW5kZXggPSBJVEFCX19NT0RFX0lORFhfXzE2OwogICAgICAg IGJyZWFrOwogCiAgICBjYXNlIFVEX0lncnBfYXNpemU6CiAgICAgICAgaWYgKCB1LT5hZHJfbW9k ZSA9PSA2NCApIAogICAgICAgICAgICBpbmRleCA9IElUQUJfX01PREVfSU5EWF9fNjQ7CiAgICAg ICAgZWxzZSBpZiAoIHUtPmFkcl9tb2RlID09IDMyICkgCiAgICAgICAgICAgIGluZGV4ID0gSVRB Ql9fTU9ERV9JTkRYX18zMjsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGluZGV4ID0gSVRBQl9f TU9ERV9JTkRYX18xNjsKICAgICAgICBicmVhazsgICAgICAgICAgICAgICAKCiAgICBjYXNlIFVE X0lncnBfbW9kZToKICAgICAgICBpZiAoIHUtPmRpc19tb2RlID09IDY0ICkgCiAgICAgICAgICAg IGluZGV4ID0gSVRBQl9fTU9ERV9JTkRYX182NDsKICAgICAgICBlbHNlIGlmICggdS0+ZGlzX21v ZGUgPT0gMzIgKSAKICAgICAgICAgICAgaW5kZXggPSBJVEFCX19NT0RFX0lORFhfXzMyOwogICAg ICAgIGVsc2UKICAgICAgICAgICAgaW5kZXggPSBJVEFCX19NT0RFX0lORFhfXzE2OwogICAgICAg IGJyZWFrOwoKICAgIGNhc2UgVURfSWdycF92ZW5kb3I6CiAgICAgICAgaWYgKCB1LT52ZW5kb3Ig PT0gVURfVkVORE9SX0lOVEVMICkgCiAgICAgICAgICAgIGluZGV4ID0gSVRBQl9fVkVORE9SX0lO RFhfX0lOVEVMOyAKICAgICAgICBlbHNlIGlmICggdS0+dmVuZG9yID09IFVEX1ZFTkRPUl9BTUQg KQogICAgICAgICAgICBpbmRleCA9IElUQUJfX1ZFTkRPUl9JTkRYX19BTUQ7CiAgICAgICAgZWxz ZSB7CiAgICAgICAgICAgIGtkYnAoIktEQjpzZWFyY2hfaXRhYigpOiB1bnJlY29nbml6ZWQgdmVu ZG9yIGlkXG4iKTsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICBicmVh azsKCiAgICBjYXNlIFVEX0lkM3ZpbDoKICAgICAgICBrZGJwKCJLREI6c2VhcmNoX2l0YWIoKTog aW52YWxpZCBpbnN0ciBtbmVtb25pYyBjb25zdGFudCBJZDN2aWxcbiIpOwogICAgICAgIHJldHVy biAtMTsKCiAgICBkZWZhdWx0OgogICAgICAgIGtkYnAoIktEQjpzZWFyY2hfaXRhYigpOiBpbnZh bGlkIGluc3RydWN0aW9uIG1uZW1vbmljIGNvbnN0YW50XG4iKTsKICAgICAgICByZXR1cm4gLTE7 CiAgICB9CgogICAgZ290byBzZWFyY2g7Cgpmb3VuZF9lbnRyeToKCiAgICB1LT5pdGFiX2VudHJ5 ID0gZTsKICAgIHUtPm1uZW1vbmljID0gdS0+aXRhYl9lbnRyeS0+bW5lbW9uaWM7CgogICAgcmV0 dXJuIDA7Cn0KCgpzdGF0aWMgdW5zaWduZWQgaW50IHJlc29sdmVfb3BlcmFuZF9zaXplKCBjb25z dCBzdHJ1Y3QgdWQgKiB1LCB1bnNpZ25lZCBpbnQgcyApCnsKICAgIHN3aXRjaCAoIHMgKSAKICAg IHsKICAgIGNhc2UgU1pfVjoKICAgICAgICByZXR1cm4gKCB1LT5vcHJfbW9kZSApOwogICAgY2Fz ZSBTWl9aOiAgCiAgICAgICAgcmV0dXJuICggdS0+b3ByX21vZGUgPT0gMTYgKSA/IDE2IDogMzI7 CiAgICBjYXNlIFNaX1A6ICAKICAgICAgICByZXR1cm4gKCB1LT5vcHJfbW9kZSA9PSAxNiApID8g U1pfV1AgOiBTWl9EUDsKICAgIGNhc2UgU1pfTURROgogICAgICAgIHJldHVybiAoIHUtPm9wcl9t b2RlID09IDE2ICkgPyAzMiA6IHUtPm9wcl9tb2RlOwogICAgY2FzZSBTWl9SRFE6CiAgICAgICAg cmV0dXJuICggdS0+ZGlzX21vZGUgPT0gNjQgKSA/IDY0IDogMzI7CiAgICBkZWZhdWx0OgogICAg ICAgIHJldHVybiBzOwogICAgfQp9CgoKc3RhdGljIGludCByZXNvbHZlX21uZW1vbmljKCBzdHJ1 Y3QgdWQqIHUgKQp7CiAgLyogZmFyL25lYXIgZmxhZ3MgKi8KICB1LT5icl9mYXIgPSAwOwogIHUt PmJyX25lYXIgPSAwOwogIC8qIHJlYWRqdXN0IG9wZXJhbmQgc2l6ZXMgZm9yIGNhbGwvam1wIGlu c3RyY3V0aW9ucyAqLwogIGlmICggdS0+bW5lbW9uaWMgPT0gVURfSWNhbGwgfHwgdS0+bW5lbW9u aWMgPT0gVURfSWptcCApIHsKICAgIC8qIFdQOiAxNmJpdCBwb2ludGVyICovCiAgICBpZiAoIHUt Pm9wZXJhbmRbIDAgXS5zaXplID09IFNaX1dQICkgewogICAgICAgIHUtPm9wZXJhbmRbIDAgXS5z aXplID0gMTY7CiAgICAgICAgdS0+YnJfZmFyID0gMTsKICAgICAgICB1LT5icl9uZWFyPSAwOwog ICAgLyogRFA6IDMyYml0IHBvaW50ZXIgKi8KICAgIH0gZWxzZSBpZiAoIHUtPm9wZXJhbmRbIDAg XS5zaXplID09IFNaX0RQICkgewogICAgICAgIHUtPm9wZXJhbmRbIDAgXS5zaXplID0gMzI7CiAg ICAgICAgdS0+YnJfZmFyID0gMTsKICAgICAgICB1LT5icl9uZWFyPSAwOwogICAgfSBlbHNlIHsK ICAgICAgICB1LT5icl9mYXIgPSAwOwogICAgICAgIHUtPmJyX25lYXI9IDE7CiAgICB9CiAgLyog cmVzb2x2ZSAzZG5vdyB3ZWlyZG5lc3MuICovCiAgfSBlbHNlIGlmICggdS0+bW5lbW9uaWMgPT0g VURfSTNkbm93ICkgewogICAgdS0+bW5lbW9uaWMgPSB1ZF9pdGFiX2xpc3RbIElUQUJfXzNETk9X IF1bIGlucF9jdXJyKCB1ICkgIF0ubW5lbW9uaWM7CiAgfQogIC8qIFNXQVBHUyBpcyBvbmx5IHZh bGlkIGluIDY0Yml0cyBtb2RlICovCiAgaWYgKCB1LT5tbmVtb25pYyA9PSBVRF9Jc3dhcGdzICYm IHUtPmRpc19tb2RlICE9IDY0ICkgewogICAgdS0+ZXJyb3IgPSAxOwogICAgcmV0dXJuIC0xOwog IH0KCiAgcmV0dXJuIDA7Cn0KCgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBkZWNvZGVfYSgp LSBEZWNvZGVzIG9wZXJhbmRzIG9mIHRoZSB0eXBlIHNlZzpvZmZzZXQKICogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICovCnN0YXRpYyB2b2lkIApkZWNvZGVfYShzdHJ1Y3QgdWQqIHUsIHN0cnVjdCB1 ZF9vcGVyYW5kICpvcCkKewogIGlmICh1LT5vcHJfbW9kZSA9PSAxNikgeyAgCiAgICAvKiBzZWcx NjpvZmYxNiAqLwogICAgb3AtPnR5cGUgPSBVRF9PUF9QVFI7CiAgICBvcC0+c2l6ZSA9IDMyOwog ICAgb3AtPmx2YWwucHRyLm9mZiA9IGlucF91aW50MTYodSk7CiAgICBvcC0+bHZhbC5wdHIuc2Vn ID0gaW5wX3VpbnQxNih1KTsKICB9IGVsc2UgewogICAgLyogc2VnMTY6b2ZmMzIgKi8KICAgIG9w LT50eXBlID0gVURfT1BfUFRSOwogICAgb3AtPnNpemUgPSA0ODsKICAgIG9wLT5sdmFsLnB0ci5v ZmYgPSBpbnBfdWludDMyKHUpOwogICAgb3AtPmx2YWwucHRyLnNlZyA9IGlucF91aW50MTYodSk7 CiAgfQp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBkZWNvZGVfZ3ByKCkgLSBSZXR1cm5z IGRlY29kZWQgR2VuZXJhbCBQdXJwb3NlIFJlZ2lzdGVyIAogKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogKi8Kc3RhdGljIGVudW0gdWRfdHlwZSAKZGVjb2RlX2dwcihyZWdpc3RlciBzdHJ1Y3QgdWQq IHUsIHVuc2lnbmVkIGludCBzLCB1bnNpZ25lZCBjaGFyIHJtKQp7CiAgcyA9IHJlc29sdmVfb3Bl cmFuZF9zaXplKHUsIHMpOwogICAgICAgIAogIHN3aXRjaCAocykgewogICAgY2FzZSA2NDoKICAg ICAgICByZXR1cm4gVURfUl9SQVggKyBybTsKICAgIGNhc2UgU1pfRFA6CiAgICBjYXNlIDMyOgog ICAgICAgIHJldHVybiBVRF9SX0VBWCArIHJtOwogICAgY2FzZSBTWl9XUDoKICAgIGNhc2UgMTY6 CiAgICAgICAgcmV0dXJuIFVEX1JfQVggICsgcm07CiAgICBjYXNlICA4OgogICAgICAgIGlmICh1 LT5kaXNfbW9kZSA9PSA2NCAmJiB1LT5wZnhfcmV4KSB7CiAgICAgICAgICAgIGlmIChybSA+PSA0 KQogICAgICAgICAgICAgICAgcmV0dXJuIFVEX1JfU1BMICsgKHJtLTQpOwogICAgICAgICAgICBy ZXR1cm4gVURfUl9BTCArIHJtOwogICAgICAgIH0gZWxzZSByZXR1cm4gVURfUl9BTCArIHJtOwog ICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gMDsKICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAqIHJlc29sdmVfZ3ByNjQoKSAtIDY0Yml0IEdlbmVyYWwgUHVycG9zZSBSZWdpc3Rlci1T ZWxlY3Rpb24uIAogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8Kc3RhdGljIGVudW0gdWRfdHlw ZSAKcmVzb2x2ZV9ncHI2NChzdHJ1Y3QgdWQqIHUsIGVudW0gdWRfb3BlcmFuZF9jb2RlIGdwcl9v cCkKewogIGlmIChncHJfb3AgPj0gT1BfckFYcjggJiYgZ3ByX29wIDw9IE9QX3JESXIxNSkKICAg IGdwcl9vcCA9IChncHJfb3AgLSBPUF9yQVhyOCkgfCAoUkVYX0IodS0+cGZ4X3JleCkgPDwgMyk7 ICAgICAgICAgIAogIGVsc2UgIGdwcl9vcCA9IChncHJfb3AgLSBPUF9yQVgpOwoKICBpZiAodS0+ b3ByX21vZGUgPT0gMTYpCiAgICByZXR1cm4gZ3ByX29wICsgVURfUl9BWDsKICBpZiAodS0+ZGlz X21vZGUgPT0gMzIgfHwgCiAgICAodS0+b3ByX21vZGUgPT0gMzIgJiYgISAoUkVYX1codS0+cGZ4 X3JleCkgfHwgdS0+ZGVmYXVsdDY0KSkpIHsKICAgIHJldHVybiBncHJfb3AgKyBVRF9SX0VBWDsK ICB9CgogIHJldHVybiBncHJfb3AgKyBVRF9SX1JBWDsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICogcmVzb2x2ZV9ncHIzMiAoKSAtIDMyYml0IEdlbmVyYWwgUHVycG9zZSBSZWdpc3Rlci1T ZWxlY3Rpb24uIAogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8Kc3RhdGljIGVudW0gdWRfdHlw ZSAKcmVzb2x2ZV9ncHIzMihzdHJ1Y3QgdWQqIHUsIGVudW0gdWRfb3BlcmFuZF9jb2RlIGdwcl9v cCkKewogIGdwcl9vcCA9IGdwcl9vcCAtIE9QX2VBWDsKCiAgaWYgKHUtPm9wcl9tb2RlID09IDE2 KSAKICAgIHJldHVybiBncHJfb3AgKyBVRF9SX0FYOwoKICByZXR1cm4gZ3ByX29wICsgIFVEX1Jf RUFYOwp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiByZXNvbHZlX3JlZygpIC0gUmVzb2x2 ZXMgdGhlIHJlZ2lzdGVyIHR5cGUgCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwpzdGF0aWMg ZW51bSB1ZF90eXBlIApyZXNvbHZlX3JlZyhzdHJ1Y3QgdWQqIHUsIHVuc2lnbmVkIGludCB0eXBl LCB1bnNpZ25lZCBjaGFyIGkpCnsKICBzd2l0Y2ggKHR5cGUpIHsKICAgIGNhc2UgVF9NTVggOiAg ICByZXR1cm4gVURfUl9NTTAgICsgKGkgJiA3KTsKICAgIGNhc2UgVF9YTU0gOiAgICByZXR1cm4g VURfUl9YTU0wICsgaTsKICAgIGNhc2UgVF9DUkcgOiAgICByZXR1cm4gVURfUl9DUjAgICsgaTsK ICAgIGNhc2UgVF9EQkcgOiAgICByZXR1cm4gVURfUl9EUjAgICsgaTsKICAgIGNhc2UgVF9TRUcg OiAgICByZXR1cm4gVURfUl9FUyAgICsgKGkgJiA3KTsKICAgIGNhc2UgVF9OT05FOgogICAgZGVm YXVsdDogICAgcmV0dXJuIFVEX05PTkU7CiAgfQp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog KiBkZWNvZGVfaW1tKCkgLSBEZWNvZGVzIEltbWVkaWF0ZSB2YWx1ZXMuCiAqIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAqLwpzdGF0aWMgdm9pZCAKZGVjb2RlX2ltbShzdHJ1Y3QgdWQqIHUsIHVuc2ln bmVkIGludCBzLCBzdHJ1Y3QgdWRfb3BlcmFuZCAqb3ApCnsKICBvcC0+c2l6ZSA9IHJlc29sdmVf b3BlcmFuZF9zaXplKHUsIHMpOwogIG9wLT50eXBlID0gVURfT1BfSU1NOwoKICBzd2l0Y2ggKG9w LT5zaXplKSB7CiAgICBjYXNlICA4OiBvcC0+bHZhbC5zYnl0ZSA9IGlucF91aW50OCh1KTsgICBi cmVhazsKICAgIGNhc2UgMTY6IG9wLT5sdmFsLnV3b3JkID0gaW5wX3VpbnQxNih1KTsgIGJyZWFr OwogICAgY2FzZSAzMjogb3AtPmx2YWwudWR3b3JkID0gaW5wX3VpbnQzMih1KTsgYnJlYWs7CiAg ICBjYXNlIDY0OiBvcC0+bHZhbC51cXdvcmQgPSBpbnBfdWludDY0KHUpOyBicmVhazsKICAgIGRl ZmF1bHQ6IHJldHVybjsKICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIGRlY29kZV9t b2RybSgpIC0gRGVjb2RlcyBNb2RSTSBCeXRlCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwpz dGF0aWMgdm9pZCAKZGVjb2RlX21vZHJtKHN0cnVjdCB1ZCogdSwgc3RydWN0IHVkX29wZXJhbmQg Km9wLCB1bnNpZ25lZCBpbnQgcywgCiAgICAgICAgIHVuc2lnbmVkIGNoYXIgcm1fdHlwZSwgc3Ry dWN0IHVkX29wZXJhbmQgKm9wcmVnLCAKICAgICAgICAgdW5zaWduZWQgY2hhciByZWdfc2l6ZSwg dW5zaWduZWQgY2hhciByZWdfdHlwZSkKewogIHVuc2lnbmVkIGNoYXIgbW9kLCBybSwgcmVnOwoK ICBpbnBfbmV4dCh1KTsKCiAgLyogZ2V0IG1vZCwgci9tIGFuZCByZWcgZmllbGRzICovCiAgbW9k ID0gTU9EUk1fTU9EKGlucF9jdXJyKHUpKTsKICBybSAgPSAoUkVYX0IodS0+cGZ4X3JleCkgPDwg MykgfCBNT0RSTV9STShpbnBfY3Vycih1KSk7CiAgcmVnID0gKFJFWF9SKHUtPnBmeF9yZXgpIDw8 IDMpIHwgTU9EUk1fUkVHKGlucF9jdXJyKHUpKTsKCiAgb3AtPnNpemUgPSByZXNvbHZlX29wZXJh bmRfc2l6ZSh1LCBzKTsKCiAgLyogaWYgbW9kIGlzIDExYiwgdGhlbiB0aGUgVURfUl9tIHNwZWNp ZmllcyBhIGdwci9tbXgvc3NlL2NvbnRyb2wvZGVidWcgKi8KICBpZiAobW9kID09IDMpIHsKICAg IG9wLT50eXBlID0gVURfT1BfUkVHOwogICAgaWYgKHJtX3R5cGUgPT0gIFRfR1BSKQogICAgICAg IG9wLT5iYXNlID0gZGVjb2RlX2dwcih1LCBvcC0+c2l6ZSwgcm0pOwogICAgZWxzZSAgICBvcC0+ YmFzZSA9IHJlc29sdmVfcmVnKHUsIHJtX3R5cGUsIChSRVhfQih1LT5wZnhfcmV4KSA8PCAzKSB8 IChybSY3KSk7CiAgfSAKICAvKiBlbHNlIGl0cyBtZW1vcnkgYWRkcmVzc2luZyAqLyAgCiAgZWxz ZSB7CiAgICBvcC0+dHlwZSA9IFVEX09QX01FTTsKCiAgICAvKiA2NGJpdCBhZGRyZXNzaW5nICov CiAgICBpZiAodS0+YWRyX21vZGUgPT0gNjQpIHsKCiAgICAgICAgb3AtPmJhc2UgPSBVRF9SX1JB WCArIHJtOwoKICAgICAgICAvKiBnZXQgb2Zmc2V0IHR5cGUgKi8KICAgICAgICBpZiAobW9kID09 IDEpCiAgICAgICAgICAgIG9wLT5vZmZzZXQgPSA4OwogICAgICAgIGVsc2UgaWYgKG1vZCA9PSAy KQogICAgICAgICAgICBvcC0+b2Zmc2V0ID0gMzI7CiAgICAgICAgZWxzZSBpZiAobW9kID09IDAg JiYgKHJtICYgNykgPT0gNSkgeyAgICAgICAgICAgCiAgICAgICAgICAgIG9wLT5iYXNlID0gVURf Ul9SSVA7CiAgICAgICAgICAgIG9wLT5vZmZzZXQgPSAzMjsKICAgICAgICB9IGVsc2UgIG9wLT5v ZmZzZXQgPSAwOwoKICAgICAgICAvKiBTY2FsZS1JbmRleC1CYXNlIChTSUIpICovCiAgICAgICAg aWYgKChybSAmIDcpID09IDQpIHsKICAgICAgICAgICAgaW5wX25leHQodSk7CiAgICAgICAgICAg IAogICAgICAgICAgICBvcC0+c2NhbGUgPSAoMSA8PCBTSUJfUyhpbnBfY3Vycih1KSkpICYgfjE7 CiAgICAgICAgICAgIG9wLT5pbmRleCA9IFVEX1JfUkFYICsgKFNJQl9JKGlucF9jdXJyKHUpKSB8 IChSRVhfWCh1LT5wZnhfcmV4KSA8PCAzKSk7CiAgICAgICAgICAgIG9wLT5iYXNlICA9IFVEX1Jf UkFYICsgKFNJQl9CKGlucF9jdXJyKHUpKSB8IChSRVhfQih1LT5wZnhfcmV4KSA8PCAzKSk7Cgog ICAgICAgICAgICAvKiBzcGVjaWFsIGNvbmRpdGlvbnMgZm9yIGJhc2UgcmVmZXJlbmNlICovCiAg ICAgICAgICAgIGlmIChvcC0+aW5kZXggPT0gVURfUl9SU1ApIHsKICAgICAgICAgICAgICAgIG9w LT5pbmRleCA9IFVEX05PTkU7CiAgICAgICAgICAgICAgICBvcC0+c2NhbGUgPSBVRF9OT05FOwog ICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAob3AtPmJhc2UgPT0gVURfUl9SQlAgfHwgb3At PmJhc2UgPT0gVURfUl9SMTMpIHsKICAgICAgICAgICAgICAgIGlmIChtb2QgPT0gMCkgCiAgICAg ICAgICAgICAgICAgICAgb3AtPmJhc2UgPSBVRF9OT05FOwogICAgICAgICAgICAgICAgaWYgKG1v ZCA9PSAxKQogICAgICAgICAgICAgICAgICAgIG9wLT5vZmZzZXQgPSA4OwogICAgICAgICAgICAg ICAgZWxzZSBvcC0+b2Zmc2V0ID0gMzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9IAoK ICAgIC8qIDMyLUJpdCBhZGRyZXNzaW5nIG1vZGUgKi8KICAgIGVsc2UgaWYgKHUtPmFkcl9tb2Rl ID09IDMyKSB7CgogICAgICAgIC8qIGdldCBiYXNlICovCiAgICAgICAgb3AtPmJhc2UgPSBVRF9S X0VBWCArIHJtOwoKICAgICAgICAvKiBnZXQgb2Zmc2V0IHR5cGUgKi8KICAgICAgICBpZiAobW9k ID09IDEpCiAgICAgICAgICAgIG9wLT5vZmZzZXQgPSA4OwogICAgICAgIGVsc2UgaWYgKG1vZCA9 PSAyKQogICAgICAgICAgICBvcC0+b2Zmc2V0ID0gMzI7CiAgICAgICAgZWxzZSBpZiAobW9kID09 IDAgJiYgcm0gPT0gNSkgewogICAgICAgICAgICBvcC0+YmFzZSA9IFVEX05PTkU7CiAgICAgICAg ICAgIG9wLT5vZmZzZXQgPSAzMjsKICAgICAgICB9IGVsc2UgIG9wLT5vZmZzZXQgPSAwOwoKICAg ICAgICAvKiBTY2FsZS1JbmRleC1CYXNlIChTSUIpICovCiAgICAgICAgaWYgKChybSAmIDcpID09 IDQpIHsKICAgICAgICAgICAgaW5wX25leHQodSk7CgogICAgICAgICAgICBvcC0+c2NhbGUgPSAo MSA8PCBTSUJfUyhpbnBfY3Vycih1KSkpICYgfjE7CiAgICAgICAgICAgIG9wLT5pbmRleCA9IFVE X1JfRUFYICsgKFNJQl9JKGlucF9jdXJyKHUpKSB8IChSRVhfWCh1LT5wZnhfcmV4KSA8PCAzKSk7 CiAgICAgICAgICAgIG9wLT5iYXNlICA9IFVEX1JfRUFYICsgKFNJQl9CKGlucF9jdXJyKHUpKSB8 IChSRVhfQih1LT5wZnhfcmV4KSA8PCAzKSk7CgogICAgICAgICAgICBpZiAob3AtPmluZGV4ID09 IFVEX1JfRVNQKSB7CiAgICAgICAgICAgICAgICBvcC0+aW5kZXggPSBVRF9OT05FOwogICAgICAg ICAgICAgICAgb3AtPnNjYWxlID0gVURfTk9ORTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAg Lyogc3BlY2lhbCBjb25kaXRpb24gZm9yIGJhc2UgcmVmZXJlbmNlICovCiAgICAgICAgICAgIGlm IChvcC0+YmFzZSA9PSBVRF9SX0VCUCkgewogICAgICAgICAgICAgICAgaWYgKG1vZCA9PSAwKQog ICAgICAgICAgICAgICAgICAgIG9wLT5iYXNlID0gVURfTk9ORTsKICAgICAgICAgICAgICAgIGlm IChtb2QgPT0gMSkKICAgICAgICAgICAgICAgICAgICBvcC0+b2Zmc2V0ID0gODsKICAgICAgICAg ICAgICAgIGVsc2Ugb3AtPm9mZnNldCA9IDMyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAg fSAKCiAgICAvKiAxNmJpdCBhZGRyZXNzaW5nIG1vZGUgKi8KICAgIGVsc2UgIHsKICAgICAgICBz d2l0Y2ggKHJtKSB7CiAgICAgICAgICAgIGNhc2UgMDogb3AtPmJhc2UgPSBVRF9SX0JYOyBvcC0+ aW5kZXggPSBVRF9SX1NJOyBicmVhazsKICAgICAgICAgICAgY2FzZSAxOiBvcC0+YmFzZSA9IFVE X1JfQlg7IG9wLT5pbmRleCA9IFVEX1JfREk7IGJyZWFrOwogICAgICAgICAgICBjYXNlIDI6IG9w LT5iYXNlID0gVURfUl9CUDsgb3AtPmluZGV4ID0gVURfUl9TSTsgYnJlYWs7CiAgICAgICAgICAg IGNhc2UgMzogb3AtPmJhc2UgPSBVRF9SX0JQOyBvcC0+aW5kZXggPSBVRF9SX0RJOyBicmVhazsK ICAgICAgICAgICAgY2FzZSA0OiBvcC0+YmFzZSA9IFVEX1JfU0k7IGJyZWFrOwogICAgICAgICAg ICBjYXNlIDU6IG9wLT5iYXNlID0gVURfUl9ESTsgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNjog b3AtPmJhc2UgPSBVRF9SX0JQOyBicmVhazsKICAgICAgICAgICAgY2FzZSA3OiBvcC0+YmFzZSA9 IFVEX1JfQlg7IGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgaWYgKG1vZCA9PSAwICYmIHJtID09 IDYpIHsKICAgICAgICAgICAgb3AtPm9mZnNldD0gMTY7CiAgICAgICAgICAgIG9wLT5iYXNlID0g VURfTk9ORTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAobW9kID09IDEpCiAgICAgICAgICAg IG9wLT5vZmZzZXQgPSA4OwogICAgICAgIGVsc2UgaWYgKG1vZCA9PSAyKSAKICAgICAgICAgICAg b3AtPm9mZnNldCA9IDE2OwogICAgfQogIH0gIAoKICAvKiBleHRyYWN0IG9mZnNldCwgaWYgYW55 ICovCiAgc3dpdGNoKG9wLT5vZmZzZXQpIHsKICAgIGNhc2UgOCA6IG9wLT5sdmFsLnVieXRlICA9 IGlucF91aW50OCh1KTsgIGJyZWFrOwogICAgY2FzZSAxNjogb3AtPmx2YWwudXdvcmQgID0gaW5w X3VpbnQxNih1KTsgIGJyZWFrOwogICAgY2FzZSAzMjogb3AtPmx2YWwudWR3b3JkID0gaW5wX3Vp bnQzMih1KTsgYnJlYWs7CiAgICBjYXNlIDY0OiBvcC0+bHZhbC51cXdvcmQgPSBpbnBfdWludDY0 KHUpOyBicmVhazsKICAgIGRlZmF1bHQ6IGJyZWFrOwogIH0KCiAgLyogcmVzb2x2ZSByZWdpc3Rl ciBlbmNvZGVkIGluIHJlZyBmaWVsZCAqLwogIGlmIChvcHJlZykgewogICAgb3ByZWctPnR5cGUg PSBVRF9PUF9SRUc7CiAgICBvcHJlZy0+c2l6ZSA9IHJlc29sdmVfb3BlcmFuZF9zaXplKHUsIHJl Z19zaXplKTsKICAgIGlmIChyZWdfdHlwZSA9PSBUX0dQUikgCiAgICAgICAgb3ByZWctPmJhc2Ug PSBkZWNvZGVfZ3ByKHUsIG9wcmVnLT5zaXplLCByZWcpOwogICAgZWxzZSBvcHJlZy0+YmFzZSA9 IHJlc29sdmVfcmVnKHUsIHJlZ190eXBlLCByZWcpOwogIH0KfQoKLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICogZGVjb2RlX28oKSAtIERlY29kZXMgb2Zmc2V0CiAqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAqLwpzdGF0aWMgdm9pZCAKZGVjb2RlX28oc3RydWN0IHVkKiB1LCB1bnNpZ25lZCBpbnQg cywgc3RydWN0IHVkX29wZXJhbmQgKm9wKQp7CiAgc3dpdGNoICh1LT5hZHJfbW9kZSkgewogICAg Y2FzZSA2NDoKICAgICAgICBvcC0+b2Zmc2V0ID0gNjQ7IAogICAgICAgIG9wLT5sdmFsLnVxd29y ZCA9IGlucF91aW50NjQodSk7IAogICAgICAgIGJyZWFrOwogICAgY2FzZSAzMjoKICAgICAgICBv cC0+b2Zmc2V0ID0gMzI7IAogICAgICAgIG9wLT5sdmFsLnVkd29yZCA9IGlucF91aW50MzIodSk7 IAogICAgICAgIGJyZWFrOwogICAgY2FzZSAxNjoKICAgICAgICBvcC0+b2Zmc2V0ID0gMTY7IAog ICAgICAgIG9wLT5sdmFsLnV3b3JkICA9IGlucF91aW50MTYodSk7IAogICAgICAgIGJyZWFrOwog ICAgZGVmYXVsdDoKICAgICAgICByZXR1cm47CiAgfQogIG9wLT50eXBlID0gVURfT1BfTUVNOwog IG9wLT5zaXplID0gcmVzb2x2ZV9vcGVyYW5kX3NpemUodSwgcyk7Cn0KCi8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAqIGRpc2FzbV9vcGVyYW5kcygpIC0gRGlzYXNzZW1ibGVzIE9wZXJhbmRzLgog KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8Kc3RhdGljIGludCBkaXNhc21fb3BlcmFuZHMocmVn aXN0ZXIgc3RydWN0IHVkKiB1KQp7CgoKICAvKiBtb3BYdCA9IG1hcCBlbnRyeSwgb3BlcmFuZCBY LCB0eXBlOyAqLwogIGVudW0gdWRfb3BlcmFuZF9jb2RlIG1vcDF0ID0gdS0+aXRhYl9lbnRyeS0+ b3BlcmFuZDEudHlwZTsKICBlbnVtIHVkX29wZXJhbmRfY29kZSBtb3AydCA9IHUtPml0YWJfZW50 cnktPm9wZXJhbmQyLnR5cGU7CiAgZW51bSB1ZF9vcGVyYW5kX2NvZGUgbW9wM3QgPSB1LT5pdGFi X2VudHJ5LT5vcGVyYW5kMy50eXBlOwoKICAvKiBtb3BYcyA9IG1hcCBlbnRyeSwgb3BlcmFuZCBY LCBzaXplICovCiAgdW5zaWduZWQgaW50IG1vcDFzID0gdS0+aXRhYl9lbnRyeS0+b3BlcmFuZDEu c2l6ZTsKICB1bnNpZ25lZCBpbnQgbW9wMnMgPSB1LT5pdGFiX2VudHJ5LT5vcGVyYW5kMi5zaXpl OwogIHVuc2lnbmVkIGludCBtb3AzcyA9IHUtPml0YWJfZW50cnktPm9wZXJhbmQzLnNpemU7Cgog IC8qIGlvcCA9IGluc3RydWN0aW9uIG9wZXJhbmQgKi8KICByZWdpc3RlciBzdHJ1Y3QgdWRfb3Bl cmFuZCogaW9wID0gdS0+b3BlcmFuZDsKICAgIAogIHN3aXRjaChtb3AxdCkgewogICAgCiAgICBj YXNlIE9QX0EgOgogICAgICAgIGRlY29kZV9hKHUsICYoaW9wWzBdKSk7CiAgICAgICAgYnJlYWs7 CiAgICAKICAgIC8qIE1bYl0gLi4uICovCiAgICBjYXNlIE9QX00gOgogICAgICAgIGlmIChNT0RS TV9NT0QoaW5wX3BlZWsodSkpID09IDMpCiAgICAgICAgICAgIHUtPmVycm9yPSAxOwogICAgLyog RSwgRy9QL1YvSS9DTC8xL1MgKi8KICAgIGNhc2UgT1BfRSA6CiAgICAgICAgaWYgKG1vcDJ0ID09 IE9QX0cpIHsKICAgICAgICAgICAgZGVjb2RlX21vZHJtKHUsICYoaW9wWzBdKSwgbW9wMXMsIFRf R1BSLCAmKGlvcFsxXSksIG1vcDJzLCBUX0dQUik7CiAgICAgICAgICAgIGlmIChtb3AzdCA9PSBP UF9JKQogICAgICAgICAgICAgICAgZGVjb2RlX2ltbSh1LCBtb3AzcywgJihpb3BbMl0pKTsKICAg ICAgICAgICAgZWxzZSBpZiAobW9wM3QgPT0gT1BfQ0wpIHsKICAgICAgICAgICAgICAgIGlvcFsy XS50eXBlID0gVURfT1BfUkVHOwogICAgICAgICAgICAgICAgaW9wWzJdLmJhc2UgPSBVRF9SX0NM OwogICAgICAgICAgICAgICAgaW9wWzJdLnNpemUgPSA4OwogICAgICAgICAgICB9CiAgICAgICAg fQogICAgICAgIGVsc2UgaWYgKG1vcDJ0ID09IE9QX1ApCiAgICAgICAgICAgIGRlY29kZV9tb2Ry bSh1LCAmKGlvcFswXSksIG1vcDFzLCBUX0dQUiwgJihpb3BbMV0pLCBtb3AycywgVF9NTVgpOwog ICAgICAgIGVsc2UgaWYgKG1vcDJ0ID09IE9QX1YpCiAgICAgICAgICAgIGRlY29kZV9tb2RybSh1 LCAmKGlvcFswXSksIG1vcDFzLCBUX0dQUiwgJihpb3BbMV0pLCBtb3AycywgVF9YTU0pOwogICAg ICAgIGVsc2UgaWYgKG1vcDJ0ID09IE9QX1MpCiAgICAgICAgICAgIGRlY29kZV9tb2RybSh1LCAm KGlvcFswXSksIG1vcDFzLCBUX0dQUiwgJihpb3BbMV0pLCBtb3AycywgVF9TRUcpOwogICAgICAg IGVsc2UgewogICAgICAgICAgICBkZWNvZGVfbW9kcm0odSwgJihpb3BbMF0pLCBtb3AxcywgVF9H UFIsIE5VTEwsIDAsIFRfTk9ORSk7CiAgICAgICAgICAgIGlmIChtb3AydCA9PSBPUF9DTCkgewog ICAgICAgICAgICAgICAgaW9wWzFdLnR5cGUgPSBVRF9PUF9SRUc7CiAgICAgICAgICAgICAgICBp b3BbMV0uYmFzZSA9IFVEX1JfQ0w7CiAgICAgICAgICAgICAgICBpb3BbMV0uc2l6ZSA9IDg7CiAg ICAgICAgICAgIH0gZWxzZSBpZiAobW9wMnQgPT0gT1BfSTEpIHsKICAgICAgICAgICAgICAgIGlv cFsxXS50eXBlID0gVURfT1BfQ09OU1Q7CiAgICAgICAgICAgICAgICB1LT5vcGVyYW5kWzFdLmx2 YWwudWR3b3JkID0gMTsKICAgICAgICAgICAgfSBlbHNlIGlmIChtb3AydCA9PSBPUF9JKSB7CiAg ICAgICAgICAgICAgICBkZWNvZGVfaW1tKHUsIG1vcDJzLCAmKGlvcFsxXSkpOwogICAgICAgICAg ICB9CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIC8qIEcsIEUvUFJbLEldL1ZSICovCiAg ICBjYXNlIE9QX0cgOgogICAgICAgIGlmIChtb3AydCA9PSBPUF9NKSB7CiAgICAgICAgICAgIGlm IChNT0RSTV9NT0QoaW5wX3BlZWsodSkpID09IDMpCiAgICAgICAgICAgICAgICB1LT5lcnJvcj0g MTsKICAgICAgICAgICAgZGVjb2RlX21vZHJtKHUsICYoaW9wWzFdKSwgbW9wMnMsIFRfR1BSLCAm KGlvcFswXSksIG1vcDFzLCBUX0dQUik7CiAgICAgICAgfSBlbHNlIGlmIChtb3AydCA9PSBPUF9F KSB7CiAgICAgICAgICAgIGRlY29kZV9tb2RybSh1LCAmKGlvcFsxXSksIG1vcDJzLCBUX0dQUiwg Jihpb3BbMF0pLCBtb3AxcywgVF9HUFIpOwogICAgICAgICAgICBpZiAobW9wM3QgPT0gT1BfSSkK ICAgICAgICAgICAgICAgIGRlY29kZV9pbW0odSwgbW9wM3MsICYoaW9wWzJdKSk7CiAgICAgICAg fSBlbHNlIGlmIChtb3AydCA9PSBPUF9QUikgewogICAgICAgICAgICBkZWNvZGVfbW9kcm0odSwg Jihpb3BbMV0pLCBtb3AycywgVF9NTVgsICYoaW9wWzBdKSwgbW9wMXMsIFRfR1BSKTsKICAgICAg ICAgICAgaWYgKG1vcDN0ID09IE9QX0kpCiAgICAgICAgICAgICAgICBkZWNvZGVfaW1tKHUsIG1v cDNzLCAmKGlvcFsyXSkpOwogICAgICAgIH0gZWxzZSBpZiAobW9wMnQgPT0gT1BfVlIpIHsKICAg ICAgICAgICAgaWYgKE1PRFJNX01PRChpbnBfcGVlayh1KSkgIT0gMykKICAgICAgICAgICAgICAg IHUtPmVycm9yID0gMTsKICAgICAgICAgICAgZGVjb2RlX21vZHJtKHUsICYoaW9wWzFdKSwgbW9w MnMsIFRfWE1NLCAmKGlvcFswXSksIG1vcDFzLCBUX0dQUik7CiAgICAgICAgfSBlbHNlIGlmICht b3AydCA9PSBPUF9XKQogICAgICAgICAgICBkZWNvZGVfbW9kcm0odSwgJihpb3BbMV0pLCBtb3Ay cywgVF9YTU0sICYoaW9wWzBdKSwgbW9wMXMsIFRfR1BSKTsKICAgICAgICBicmVhazsKCiAgICAv KiBBTC4uQkgsIEkvTy9EWCAqLwogICAgY2FzZSBPUF9BTCA6IGNhc2UgT1BfQ0wgOiBjYXNlIE9Q X0RMIDogY2FzZSBPUF9CTCA6CiAgICBjYXNlIE9QX0FIIDogY2FzZSBPUF9DSCA6IGNhc2UgT1Bf REggOiBjYXNlIE9QX0JIIDoKCiAgICAgICAgaW9wWzBdLnR5cGUgPSBVRF9PUF9SRUc7CiAgICAg ICAgaW9wWzBdLmJhc2UgPSBVRF9SX0FMICsgKG1vcDF0IC0gT1BfQUwpOwogICAgICAgIGlvcFsw XS5zaXplID0gODsKCiAgICAgICAgaWYgKG1vcDJ0ID09IE9QX0kpCiAgICAgICAgICAgIGRlY29k ZV9pbW0odSwgbW9wMnMsICYoaW9wWzFdKSk7CiAgICAgICAgZWxzZSBpZiAobW9wMnQgPT0gT1Bf RFgpIHsKICAgICAgICAgICAgaW9wWzFdLnR5cGUgPSBVRF9PUF9SRUc7CiAgICAgICAgICAgIGlv cFsxXS5iYXNlID0gVURfUl9EWDsKICAgICAgICAgICAgaW9wWzFdLnNpemUgPSAxNjsKICAgICAg ICB9CiAgICAgICAgZWxzZSBpZiAobW9wMnQgPT0gT1BfTykKICAgICAgICAgICAgZGVjb2RlX28o dSwgbW9wMnMsICYoaW9wWzFdKSk7CiAgICAgICAgYnJlYWs7CgogICAgLyogckFYW3I4XS4uckRJ W3IxNV0sIEkvckFYLi5yREkvTyAqLwogICAgY2FzZSBPUF9yQVhyOCA6IGNhc2UgT1BfckNYcjkg OiBjYXNlIE9QX3JEWHIxMCA6IGNhc2UgT1BfckJYcjExIDoKICAgIGNhc2UgT1BfclNQcjEyOiBj YXNlIE9QX3JCUHIxMzogY2FzZSBPUF9yU0lyMTQgOiBjYXNlIE9QX3JESXIxNSA6CiAgICBjYXNl IE9QX3JBWCA6IGNhc2UgT1BfckNYIDogY2FzZSBPUF9yRFggOiBjYXNlIE9QX3JCWCA6CiAgICBj YXNlIE9QX3JTUCA6IGNhc2UgT1BfckJQIDogY2FzZSBPUF9yU0kgOiBjYXNlIE9QX3JESSA6Cgog ICAgICAgIGlvcFswXS50eXBlID0gVURfT1BfUkVHOwogICAgICAgIGlvcFswXS5iYXNlID0gcmVz b2x2ZV9ncHI2NCh1LCBtb3AxdCk7CgogICAgICAgIGlmIChtb3AydCA9PSBPUF9JKQogICAgICAg ICAgICBkZWNvZGVfaW1tKHUsIG1vcDJzLCAmKGlvcFsxXSkpOwogICAgICAgIGVsc2UgaWYgKG1v cDJ0ID49IE9QX3JBWCAmJiBtb3AydCA8PSBPUF9yREkpIHsKICAgICAgICAgICAgaW9wWzFdLnR5 cGUgPSBVRF9PUF9SRUc7CiAgICAgICAgICAgIGlvcFsxXS5iYXNlID0gcmVzb2x2ZV9ncHI2NCh1 LCBtb3AydCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKG1vcDJ0ID09IE9QX08pIHsKICAg ICAgICAgICAgZGVjb2RlX28odSwgbW9wMnMsICYoaW9wWzFdKSk7ICAKICAgICAgICAgICAgaW9w WzBdLnNpemUgPSByZXNvbHZlX29wZXJhbmRfc2l6ZSh1LCBtb3Aycyk7CiAgICAgICAgfQogICAg ICAgIGJyZWFrOwoKICAgIC8qIEFMW3I4Yl0uLkJIW3IxNWJdLCBJICovCiAgICBjYXNlIE9QX0FM cjhiIDogY2FzZSBPUF9DTHI5YiA6IGNhc2UgT1BfRExyMTBiIDogY2FzZSBPUF9CTHIxMWIgOgog ICAgY2FzZSBPUF9BSHIxMmI6IGNhc2UgT1BfQ0hyMTNiOiBjYXNlIE9QX0RIcjE0YiA6IGNhc2Ug T1BfQkhyMTViIDoKICAgIHsKICAgICAgICB1ZF90eXBlX3QgZ3ByID0gKG1vcDF0IC0gT1BfQUxy OGIpICsgVURfUl9BTCArIAogICAgICAgICAgICAgICAgICAgICAgICAoUkVYX0IodS0+cGZ4X3Jl eCkgPDwgMyk7CiAgICAgICAgaWYgKFVEX1JfQUggPD0gZ3ByICYmIHUtPnBmeF9yZXgpCiAgICAg ICAgICAgIGdwciA9IGdwciArIDQ7CiAgICAgICAgaW9wWzBdLnR5cGUgPSBVRF9PUF9SRUc7CiAg ICAgICAgaW9wWzBdLmJhc2UgPSBncHI7CiAgICAgICAgaWYgKG1vcDJ0ID09IE9QX0kpCiAgICAg ICAgICAgIGRlY29kZV9pbW0odSwgbW9wMnMsICYoaW9wWzFdKSk7CiAgICAgICAgYnJlYWs7CiAg ICB9CgogICAgLyogZUFYLi5lRFgsIERYL0kgKi8KICAgIGNhc2UgT1BfZUFYIDogY2FzZSBPUF9l Q1ggOiBjYXNlIE9QX2VEWCA6IGNhc2UgT1BfZUJYIDoKICAgIGNhc2UgT1BfZVNQIDogY2FzZSBP UF9lQlAgOiBjYXNlIE9QX2VTSSA6IGNhc2UgT1BfZURJIDoKICAgICAgICBpb3BbMF0udHlwZSA9 IFVEX09QX1JFRzsKICAgICAgICBpb3BbMF0uYmFzZSA9IHJlc29sdmVfZ3ByMzIodSwgbW9wMXQp OwogICAgICAgIGlmIChtb3AydCA9PSBPUF9EWCkgewogICAgICAgICAgICBpb3BbMV0udHlwZSA9 IFVEX09QX1JFRzsKICAgICAgICAgICAgaW9wWzFdLmJhc2UgPSBVRF9SX0RYOwogICAgICAgICAg ICBpb3BbMV0uc2l6ZSA9IDE2OwogICAgICAgIH0gZWxzZSBpZiAobW9wMnQgPT0gT1BfSSkKICAg ICAgICAgICAgZGVjb2RlX2ltbSh1LCBtb3AycywgJihpb3BbMV0pKTsKICAgICAgICBicmVhazsK CiAgICAvKiBFUy4uR1MgKi8KICAgIGNhc2UgT1BfRVMgOiBjYXNlIE9QX0NTIDogY2FzZSBPUF9E UyA6CiAgICBjYXNlIE9QX1NTIDogY2FzZSBPUF9GUyA6IGNhc2UgT1BfR1MgOgoKICAgICAgICAv KiBpbiA2NGJpdHMgbW9kZSwgb25seSBmcyBhbmQgZ3MgYXJlIGFsbG93ZWQgKi8KICAgICAgICBp ZiAodS0+ZGlzX21vZGUgPT0gNjQpCiAgICAgICAgICAgIGlmIChtb3AxdCAhPSBPUF9GUyAmJiBt b3AxdCAhPSBPUF9HUykKICAgICAgICAgICAgICAgIHUtPmVycm9yPSAxOwogICAgICAgIGlvcFsw XS50eXBlID0gVURfT1BfUkVHOwogICAgICAgIGlvcFswXS5iYXNlID0gKG1vcDF0IC0gT1BfRVMp ICsgVURfUl9FUzsKICAgICAgICBpb3BbMF0uc2l6ZSA9IDE2OwoKICAgICAgICBicmVhazsKCiAg ICAvKiBKICovCiAgICBjYXNlIE9QX0ogOgogICAgICAgIGRlY29kZV9pbW0odSwgbW9wMXMsICYo aW9wWzBdKSk7ICAgICAgICAKICAgICAgICBpb3BbMF0udHlwZSA9IFVEX09QX0pJTU07CiAgICAg ICAgYnJlYWsgOwoKICAgIC8qIFBSLCBJICovCiAgICBjYXNlIE9QX1BSOgogICAgICAgIGlmIChN T0RSTV9NT0QoaW5wX3BlZWsodSkpICE9IDMpCiAgICAgICAgICAgIHUtPmVycm9yID0gMTsKICAg ICAgICBkZWNvZGVfbW9kcm0odSwgJihpb3BbMF0pLCBtb3AxcywgVF9NTVgsIE5VTEwsIDAsIFRf Tk9ORSk7CiAgICAgICAgaWYgKG1vcDJ0ID09IE9QX0kpCiAgICAgICAgICAgIGRlY29kZV9pbW0o dSwgbW9wMnMsICYoaW9wWzFdKSk7CiAgICAgICAgYnJlYWs7IAoKICAgIC8qIFZSLCBJICovCiAg ICBjYXNlIE9QX1ZSOgogICAgICAgIGlmIChNT0RSTV9NT0QoaW5wX3BlZWsodSkpICE9IDMpCiAg ICAgICAgICAgIHUtPmVycm9yID0gMTsKICAgICAgICBkZWNvZGVfbW9kcm0odSwgJihpb3BbMF0p LCBtb3AxcywgVF9YTU0sIE5VTEwsIDAsIFRfTk9ORSk7CiAgICAgICAgaWYgKG1vcDJ0ID09IE9Q X0kpCiAgICAgICAgICAgIGRlY29kZV9pbW0odSwgbW9wMnMsICYoaW9wWzFdKSk7CiAgICAgICAg YnJlYWs7IAoKICAgIC8qIFAsIFFbLEldL1cvRVssSV0sVlIgKi8KICAgIGNhc2UgT1BfUCA6CiAg ICAgICAgaWYgKG1vcDJ0ID09IE9QX1EpIHsKICAgICAgICAgICAgZGVjb2RlX21vZHJtKHUsICYo aW9wWzFdKSwgbW9wMnMsIFRfTU1YLCAmKGlvcFswXSksIG1vcDFzLCBUX01NWCk7CiAgICAgICAg ICAgIGlmIChtb3AzdCA9PSBPUF9JKQogICAgICAgICAgICAgICAgZGVjb2RlX2ltbSh1LCBtb3Az cywgJihpb3BbMl0pKTsKICAgICAgICB9IGVsc2UgaWYgKG1vcDJ0ID09IE9QX1cpIHsKICAgICAg ICAgICAgZGVjb2RlX21vZHJtKHUsICYoaW9wWzFdKSwgbW9wMnMsIFRfWE1NLCAmKGlvcFswXSks IG1vcDFzLCBUX01NWCk7CiAgICAgICAgfSBlbHNlIGlmIChtb3AydCA9PSBPUF9WUikgewogICAg ICAgICAgICBpZiAoTU9EUk1fTU9EKGlucF9wZWVrKHUpKSAhPSAzKQogICAgICAgICAgICAgICAg dS0+ZXJyb3IgPSAxOwogICAgICAgICAgICBkZWNvZGVfbW9kcm0odSwgJihpb3BbMV0pLCBtb3Ay cywgVF9YTU0sICYoaW9wWzBdKSwgbW9wMXMsIFRfTU1YKTsKICAgICAgICB9IGVsc2UgaWYgKG1v cDJ0ID09IE9QX0UpIHsKICAgICAgICAgICAgZGVjb2RlX21vZHJtKHUsICYoaW9wWzFdKSwgbW9w MnMsIFRfR1BSLCAmKGlvcFswXSksIG1vcDFzLCBUX01NWCk7CiAgICAgICAgICAgIGlmIChtb3Az dCA9PSBPUF9JKQogICAgICAgICAgICAgICAgZGVjb2RlX2ltbSh1LCBtb3AzcywgJihpb3BbMl0p KTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgLyogUiwgQy9EICovCiAgICBjYXNlIE9Q X1IgOgogICAgICAgIGlmIChtb3AydCA9PSBPUF9DKQogICAgICAgICAgICBkZWNvZGVfbW9kcm0o dSwgJihpb3BbMF0pLCBtb3AxcywgVF9HUFIsICYoaW9wWzFdKSwgbW9wMnMsIFRfQ1JHKTsKICAg ICAgICBlbHNlIGlmIChtb3AydCA9PSBPUF9EKQogICAgICAgICAgICBkZWNvZGVfbW9kcm0odSwg Jihpb3BbMF0pLCBtb3AxcywgVF9HUFIsICYoaW9wWzFdKSwgbW9wMnMsIFRfREJHKTsKICAgICAg ICBicmVhazsKCiAgICAvKiBDLCBSICovCiAgICBjYXNlIE9QX0MgOgogICAgICAgIGRlY29kZV9t b2RybSh1LCAmKGlvcFsxXSksIG1vcDJzLCBUX0dQUiwgJihpb3BbMF0pLCBtb3AxcywgVF9DUkcp OwogICAgICAgIGJyZWFrOwoKICAgIC8qIEQsIFIgKi8KICAgIGNhc2UgT1BfRCA6CiAgICAgICAg ZGVjb2RlX21vZHJtKHUsICYoaW9wWzFdKSwgbW9wMnMsIFRfR1BSLCAmKGlvcFswXSksIG1vcDFz LCBUX0RCRyk7CiAgICAgICAgYnJlYWs7CgogICAgLyogUSwgUCAqLwogICAgY2FzZSBPUF9RIDoK ICAgICAgICBkZWNvZGVfbW9kcm0odSwgJihpb3BbMF0pLCBtb3AxcywgVF9NTVgsICYoaW9wWzFd KSwgbW9wMnMsIFRfTU1YKTsKICAgICAgICBicmVhazsKCiAgICAvKiBTLCBFICovCiAgICBjYXNl IE9QX1MgOgogICAgICAgIGRlY29kZV9tb2RybSh1LCAmKGlvcFsxXSksIG1vcDJzLCBUX0dQUiwg Jihpb3BbMF0pLCBtb3AxcywgVF9TRUcpOwogICAgICAgIGJyZWFrOwoKICAgIC8qIFcsIFYgKi8K ICAgIGNhc2UgT1BfVyA6CiAgICAgICAgZGVjb2RlX21vZHJtKHUsICYoaW9wWzBdKSwgbW9wMXMs IFRfWE1NLCAmKGlvcFsxXSksIG1vcDJzLCBUX1hNTSk7CiAgICAgICAgYnJlYWs7CgogICAgLyog ViwgV1ssSV0vUS9NL0UgKi8KICAgIGNhc2UgT1BfViA6CiAgICAgICAgaWYgKG1vcDJ0ID09IE9Q X1cpIHsKICAgICAgICAgICAgLyogc3BlY2lhbCBjYXNlcyBmb3IgbW92bHBzIGFuZCBtb3ZocHMg Ki8KICAgICAgICAgICAgaWYgKE1PRFJNX01PRChpbnBfcGVlayh1KSkgPT0gMykgewogICAgICAg ICAgICAgICAgaWYgKHUtPm1uZW1vbmljID09IFVEX0ltb3ZscHMpCiAgICAgICAgICAgICAgICAg ICAgdS0+bW5lbW9uaWMgPSBVRF9JbW92aGxwczsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgICAgIGlmICh1LT5tbmVtb25pYyA9PSBVRF9JbW92aHBzKQogICAgICAgICAgICAgICAg ICAgIHUtPm1uZW1vbmljID0gVURfSW1vdmxocHM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAg ZGVjb2RlX21vZHJtKHUsICYoaW9wWzFdKSwgbW9wMnMsIFRfWE1NLCAmKGlvcFswXSksIG1vcDFz LCBUX1hNTSk7CiAgICAgICAgICAgIGlmIChtb3AzdCA9PSBPUF9JKQogICAgICAgICAgICAgICAg ZGVjb2RlX2ltbSh1LCBtb3AzcywgJihpb3BbMl0pKTsKICAgICAgICB9IGVsc2UgaWYgKG1vcDJ0 ID09IE9QX1EpCiAgICAgICAgICAgIGRlY29kZV9tb2RybSh1LCAmKGlvcFsxXSksIG1vcDJzLCBU X01NWCwgJihpb3BbMF0pLCBtb3AxcywgVF9YTU0pOwogICAgICAgIGVsc2UgaWYgKG1vcDJ0ID09 IE9QX00pIHsKICAgICAgICAgICAgaWYgKE1PRFJNX01PRChpbnBfcGVlayh1KSkgPT0gMykKICAg ICAgICAgICAgICAgIHUtPmVycm9yPSAxOwogICAgICAgICAgICBkZWNvZGVfbW9kcm0odSwgJihp b3BbMV0pLCBtb3AycywgVF9HUFIsICYoaW9wWzBdKSwgbW9wMXMsIFRfWE1NKTsKICAgICAgICB9 IGVsc2UgaWYgKG1vcDJ0ID09IE9QX0UpIHsKICAgICAgICAgICAgZGVjb2RlX21vZHJtKHUsICYo aW9wWzFdKSwgbW9wMnMsIFRfR1BSLCAmKGlvcFswXSksIG1vcDFzLCBUX1hNTSk7CiAgICAgICAg fSBlbHNlIGlmIChtb3AydCA9PSBPUF9QUikgewogICAgICAgICAgICBkZWNvZGVfbW9kcm0odSwg Jihpb3BbMV0pLCBtb3AycywgVF9NTVgsICYoaW9wWzBdKSwgbW9wMXMsIFRfWE1NKTsKICAgICAg ICB9CiAgICAgICAgYnJlYWs7CgogICAgLyogRFgsIGVBWC9BTCAqLwogICAgY2FzZSBPUF9EWCA6 CiAgICAgICAgaW9wWzBdLnR5cGUgPSBVRF9PUF9SRUc7CiAgICAgICAgaW9wWzBdLmJhc2UgPSBV RF9SX0RYOwogICAgICAgIGlvcFswXS5zaXplID0gMTY7CgogICAgICAgIGlmIChtb3AydCA9PSBP UF9lQVgpIHsKICAgICAgICAgICAgaW9wWzFdLnR5cGUgPSBVRF9PUF9SRUc7ICAgIAogICAgICAg ICAgICBpb3BbMV0uYmFzZSA9IHJlc29sdmVfZ3ByMzIodSwgbW9wMnQpOwogICAgICAgIH0gZWxz ZSBpZiAobW9wMnQgPT0gT1BfQUwpIHsKICAgICAgICAgICAgaW9wWzFdLnR5cGUgPSBVRF9PUF9S RUc7CiAgICAgICAgICAgIGlvcFsxXS5iYXNlID0gVURfUl9BTDsKICAgICAgICAgICAgaW9wWzFd LnNpemUgPSA4OwogICAgICAgIH0KCiAgICAgICAgYnJlYWs7CgogICAgLyogSSwgSS9BTC9lQVgg Ki8KICAgIGNhc2UgT1BfSSA6CiAgICAgICAgZGVjb2RlX2ltbSh1LCBtb3AxcywgJihpb3BbMF0p KTsKICAgICAgICBpZiAobW9wMnQgPT0gT1BfSSkKICAgICAgICAgICAgZGVjb2RlX2ltbSh1LCBt b3AycywgJihpb3BbMV0pKTsKICAgICAgICBlbHNlIGlmIChtb3AydCA9PSBPUF9BTCkgewogICAg ICAgICAgICBpb3BbMV0udHlwZSA9IFVEX09QX1JFRzsKICAgICAgICAgICAgaW9wWzFdLmJhc2Ug PSBVRF9SX0FMOwogICAgICAgICAgICBpb3BbMV0uc2l6ZSA9IDE2OwogICAgICAgIH0gZWxzZSBp ZiAobW9wMnQgPT0gT1BfZUFYKSB7CiAgICAgICAgICAgIGlvcFsxXS50eXBlID0gVURfT1BfUkVH OyAgICAKICAgICAgICAgICAgaW9wWzFdLmJhc2UgPSByZXNvbHZlX2dwcjMyKHUsIG1vcDJ0KTsK ICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgLyogTywgQUwvZUFYICovCiAgICBjYXNlIE9Q X08gOgogICAgICAgIGRlY29kZV9vKHUsIG1vcDFzLCAmKGlvcFswXSkpOwogICAgICAgIGlvcFsx XS50eXBlID0gVURfT1BfUkVHOwogICAgICAgIGlvcFsxXS5zaXplID0gcmVzb2x2ZV9vcGVyYW5k X3NpemUodSwgbW9wMXMpOwogICAgICAgIGlmIChtb3AydCA9PSBPUF9BTCkKICAgICAgICAgICAg aW9wWzFdLmJhc2UgPSBVRF9SX0FMOwogICAgICAgIGVsc2UgaWYgKG1vcDJ0ID09IE9QX2VBWCkK ICAgICAgICAgICAgaW9wWzFdLmJhc2UgPSByZXNvbHZlX2dwcjMyKHUsIG1vcDJ0KTsKICAgICAg ICBlbHNlIGlmIChtb3AydCA9PSBPUF9yQVgpCiAgICAgICAgICAgIGlvcFsxXS5iYXNlID0gcmVz b2x2ZV9ncHI2NCh1LCBtb3AydCk7ICAgICAgCiAgICAgICAgYnJlYWs7CgogICAgLyogMyAqLwog ICAgY2FzZSBPUF9JMyA6CiAgICAgICAgaW9wWzBdLnR5cGUgPSBVRF9PUF9DT05TVDsKICAgICAg ICBpb3BbMF0ubHZhbC5zYnl0ZSA9IDM7CiAgICAgICAgYnJlYWs7CgogICAgLyogU1QobiksIFNU KG4pICovCiAgICBjYXNlIE9QX1NUMCA6IGNhc2UgT1BfU1QxIDogY2FzZSBPUF9TVDIgOiBjYXNl IE9QX1NUMyA6CiAgICBjYXNlIE9QX1NUNCA6IGNhc2UgT1BfU1Q1IDogY2FzZSBPUF9TVDYgOiBj YXNlIE9QX1NUNyA6CgogICAgICAgIGlvcFswXS50eXBlID0gVURfT1BfUkVHOwogICAgICAgIGlv cFswXS5iYXNlID0gKG1vcDF0LU9QX1NUMCkgKyBVRF9SX1NUMDsKICAgICAgICBpb3BbMF0uc2l6 ZSA9IDA7CgogICAgICAgIGlmIChtb3AydCA+PSBPUF9TVDAgJiYgbW9wMnQgPD0gT1BfU1Q3KSB7 CiAgICAgICAgICAgIGlvcFsxXS50eXBlID0gVURfT1BfUkVHOwogICAgICAgICAgICBpb3BbMV0u YmFzZSA9IChtb3AydC1PUF9TVDApICsgVURfUl9TVDA7CiAgICAgICAgICAgIGlvcFsxXS5zaXpl ID0gMDsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgLyogQVggKi8KICAgIGNhc2UgT1Bf QVg6CiAgICAgICAgaW9wWzBdLnR5cGUgPSBVRF9PUF9SRUc7CiAgICAgICAgaW9wWzBdLmJhc2Ug PSBVRF9SX0FYOwogICAgICAgIGlvcFswXS5zaXplID0gMTY7CiAgICAgICAgYnJlYWs7CgogICAg Lyogbm9uZSAqLwogICAgZGVmYXVsdCA6CiAgICAgICAgaW9wWzBdLnR5cGUgPSBpb3BbMV0udHlw ZSA9IGlvcFsyXS50eXBlID0gVURfTk9ORTsKICB9CgogIHJldHVybiAwOwp9CgovKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogKiBjbGVhcl9pbnNuKCkgLSBjbGVhciBpbnN0cnVjdGlvbiBwb2ludGVy IAogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKi8Kc3RhdGljIGludCBjbGVhcl9pbnNuKHJlZ2lz dGVyIHN0cnVjdCB1ZCogdSkKewogIHUtPmVycm9yICAgICA9IDA7CiAgdS0+cGZ4X3NlZyAgID0g MDsKICB1LT5wZnhfb3ByICAgPSAwOwogIHUtPnBmeF9hZHIgICA9IDA7CiAgdS0+cGZ4X2xvY2sg ID0gMDsKICB1LT5wZnhfcmVwbmUgPSAwOwogIHUtPnBmeF9yZXAgICA9IDA7CiAgdS0+cGZ4X3Jl cGUgID0gMDsKICB1LT5wZnhfc2VnICAgPSAwOwogIHUtPnBmeF9yZXggICA9IDA7CiAgdS0+cGZ4 X2luc24gID0gMDsKICB1LT5tbmVtb25pYyAgPSBVRF9Jbm9uZTsKICB1LT5pdGFiX2VudHJ5ID0g TlVMTDsKCiAgbWVtc2V0KCAmdS0+b3BlcmFuZFsgMCBdLCAwLCBzaXplb2YoIHN0cnVjdCB1ZF9v cGVyYW5kICkgKTsKICBtZW1zZXQoICZ1LT5vcGVyYW5kWyAxIF0sIDAsIHNpemVvZiggc3RydWN0 IHVkX29wZXJhbmQgKSApOwogIG1lbXNldCggJnUtPm9wZXJhbmRbIDIgXSwgMCwgc2l6ZW9mKCBz dHJ1Y3QgdWRfb3BlcmFuZCApICk7CiAKICByZXR1cm4gMDsKfQoKc3RhdGljIGludCBkb19tb2Rl KCBzdHJ1Y3QgdWQqIHUgKQp7CiAgLyogaWYgaW4gZXJyb3Igc3RhdGUsIGJhaWwgb3V0ICovCiAg aWYgKCB1LT5lcnJvciApIHJldHVybiAtMTsgCgogIC8qIHByb3BhZ2F0ZSBwZXJmaXggZWZmZWN0 cyAqLwogIGlmICggdS0+ZGlzX21vZGUgPT0gNjQgKSB7ICAvKiBzZXQgNjRiaXQtbW9kZSBmbGFn cyAqLwoKICAgIC8qIENoZWNrIHZhbGlkaXR5IG9mICBpbnN0cnVjdGlvbiBtNjQgKi8KICAgIGlm ICggUF9JTlY2NCggdS0+aXRhYl9lbnRyeS0+cHJlZml4ICkgKSB7CiAgICAgICAgdS0+ZXJyb3Ig PSAxOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAvKiBlZmZlY3RpdmUgcmV4IHByZWZp eCBpcyB0aGUgIGVmZmVjdGl2ZSBtYXNrIGZvciB0aGUgCiAgICAgKiBpbnN0cnVjdGlvbiBoYXJk LWNvZGVkIGluIHRoZSBvcGNvZGUgbWFwLgogICAgICovCiAgICB1LT5wZnhfcmV4ID0gKCB1LT5w ZnhfcmV4ICYgMHg0MCApIHwgCiAgICAgICAgICAgICAgICAgKCB1LT5wZnhfcmV4ICYgUkVYX1BG WF9NQVNLKCB1LT5pdGFiX2VudHJ5LT5wcmVmaXggKSApOyAKCiAgICAvKiB3aGV0aGVyIHRoaXMg aW5zdHJ1Y3Rpb24gaGFzIGEgZGVmYXVsdCBvcGVyYW5kIHNpemUgb2YgCiAgICAgKiA2NGJpdCwg YWxzbyBoYXJkY29kZWQgaW50byB0aGUgb3Bjb2RlIG1hcC4KICAgICAqLwogICAgdS0+ZGVmYXVs dDY0ID0gUF9ERUY2NCggdS0+aXRhYl9lbnRyeS0+cHJlZml4ICk7IAogICAgLyogY2FsY3VsYXRl IGVmZmVjdGl2ZSBvcGVyYW5kIHNpemUgKi8KICAgIGlmICggUkVYX1coIHUtPnBmeF9yZXggKSAp IHsKICAgICAgICB1LT5vcHJfbW9kZSA9IDY0OwogICAgfSBlbHNlIGlmICggdS0+cGZ4X29wciAp IHsKICAgICAgICB1LT5vcHJfbW9kZSA9IDE2OwogICAgfSBlbHNlIHsKICAgICAgICAvKiB1bmxl c3MgdGhlIGRlZmF1bHQgb3ByIHNpemUgb2YgaW5zdHJ1Y3Rpb24gaXMgNjQsCiAgICAgICAgICog dGhlIGVmZmVjdGl2ZSBvcGVyYW5kIHNpemUgaW4gdGhlIGFic2VuY2Ugb2YgcmV4LncKICAgICAg ICAgKiBwcmVmaXggaXMgMzIuCiAgICAgICAgICovCiAgICAgICAgdS0+b3ByX21vZGUgPSAoIHUt PmRlZmF1bHQ2NCApID8gNjQgOiAzMjsKICAgIH0KCiAgICAvKiBjYWxjdWxhdGUgZWZmZWN0aXZl IGFkZHJlc3Mgc2l6ZSAqLwogICAgdS0+YWRyX21vZGUgPSAodS0+cGZ4X2FkcikgPyAzMiA6IDY0 OwogIH0gZWxzZSBpZiAoIHUtPmRpc19tb2RlID09IDMyICkgeyAvKiBzZXQgMzJiaXQtbW9kZSBm bGFncyAqLwogICAgdS0+b3ByX21vZGUgPSAoIHUtPnBmeF9vcHIgKSA/IDE2IDogMzI7CiAgICB1 LT5hZHJfbW9kZSA9ICggdS0+cGZ4X2FkciApID8gMTYgOiAzMjsKICB9IGVsc2UgaWYgKCB1LT5k aXNfbW9kZSA9PSAxNiApIHsgLyogc2V0IDE2Yml0LW1vZGUgZmxhZ3MgKi8KICAgIHUtPm9wcl9t b2RlID0gKCB1LT5wZnhfb3ByICkgPyAzMiA6IDE2OwogICAgdS0+YWRyX21vZGUgPSAoIHUtPnBm eF9hZHIgKSA/IDMyIDogMTY7CiAgfQoKICAvKiBUaGVzZSBmbGFncyBkZXRlcm1pbmUgd2hpY2gg b3BlcmFuZCB0byBhcHBseSB0aGUgb3BlcmFuZCBzaXplCiAgICogY2FzdCB0by4KICAgKi8KICB1 LT5jMSA9ICggUF9DMSggdS0+aXRhYl9lbnRyeS0+cHJlZml4ICkgKSA/IDEgOiAwOwogIHUtPmMy ID0gKCBQX0MyKCB1LT5pdGFiX2VudHJ5LT5wcmVmaXggKSApID8gMSA6IDA7CiAgdS0+YzMgPSAo IFBfQzMoIHUtPml0YWJfZW50cnktPnByZWZpeCApICkgPyAxIDogMDsKCiAgLyogc2V0IGZsYWdz IGZvciBpbXBsaWNpdCBhZGRyZXNzaW5nICovCiAgdS0+aW1wbGljaXRfYWRkciA9IFBfSU1QQURE UiggdS0+aXRhYl9lbnRyeS0+cHJlZml4ICk7CgogIHJldHVybiAwOwp9CgpzdGF0aWMgaW50IGdl bl9oZXgoIHN0cnVjdCB1ZCAqdSApCnsKICB1bnNpZ25lZCBpbnQgaTsKICB1bnNpZ25lZCBjaGFy ICpzcmNfcHRyID0gaW5wX3Nlc3MoIHUgKTsKICBjaGFyKiBzcmNfaGV4OwoKICAvKiBiYWlsIG91 dCBpZiBpbiBlcnJvciBzdGF0LiAqLwogIGlmICggdS0+ZXJyb3IgKSByZXR1cm4gLTE7IAogIC8q IG91dHB1dCBidWZmZXIgcG9pbnRlICovCiAgc3JjX2hleCA9ICggY2hhciogKSB1LT5pbnNuX2hl eGNvZGU7CiAgLyogZm9yIGVhY2ggYnl0ZSB1c2VkIHRvIGRlY29kZSBpbnN0cnVjdGlvbiAqLwog IGZvciAoIGkgPSAwOyBpIDwgdS0+aW5wX2N0cjsgKytpLCArK3NyY19wdHIpIHsKICAgIHNucHJp bnRmKCBzcmNfaGV4LCAyLCAiJTAyeCIsICpzcmNfcHRyICYgMHhGRiApOwogICAgc3JjX2hleCAr PSAyOwogIH0KICByZXR1cm4gMDsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogdWRfZGVj b2RlKCkgLSBJbnN0cnVjdGlvbiBkZWNvZGVyLiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMg ZGVjb2RlZC4KICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICovCnVuc2lnbmVkIGludCB1ZF9kZWNv ZGUoIHN0cnVjdCB1ZCogdSApCnsKICBpbnBfc3RhcnQodSk7CgogIGlmICggY2xlYXJfaW5zbigg dSApICkgewogICAgOyAvKiBlcnJvciAqLwogIH0gZWxzZSBpZiAoIGdldF9wcmVmaXhlcyggdSAp ICE9IDAgKSB7CiAgICA7IC8qIGVycm9yICovCiAgfSBlbHNlIGlmICggc2VhcmNoX2l0YWIoIHUg KSAhPSAwICkgewogICAgOyAvKiBlcnJvciAqLwogIH0gZWxzZSBpZiAoIGRvX21vZGUoIHUgKSAh PSAwICkgewogICAgOyAvKiBlcnJvciAqLwogIH0gZWxzZSBpZiAoIGRpc2FzbV9vcGVyYW5kcygg dSApICE9IDAgKSB7CiAgICA7IC8qIGVycm9yICovCiAgfSBlbHNlIGlmICggcmVzb2x2ZV9tbmVt b25pYyggdSApICE9IDAgKSB7CiAgICA7IC8qIGVycm9yICovCiAgfQoKICAvKiBIYW5kbGUgZGVj b2RlIGVycm9yLiAqLwogIGlmICggdS0+ZXJyb3IgKSB7CiAgICAvKiBjbGVhciBvdXQgdGhlIGRl Y29kZSBkYXRhLiAqLwogICAgY2xlYXJfaW5zbiggdSApOwogICAgLyogbWFyayB0aGUgc2VxdWVu Y2Ugb2YgYnl0ZXMgYXMgaW52YWxpZC4gKi8KICAgIHUtPml0YWJfZW50cnkgPSAmIGllX2ludmFs aWQ7CiAgICB1LT5tbmVtb25pYyA9IHUtPml0YWJfZW50cnktPm1uZW1vbmljOwogIH0gCgogIHUt Pmluc25fb2Zmc2V0ID0gdS0+cGM7IC8qIHNldCBvZmZzZXQgb2YgaW5zdHJ1Y3Rpb24gKi8KICB1 LT5pbnNuX2ZpbGwgPSAwOyAgIC8qIHNldCB0cmFuc2xhdGlvbiBidWZmZXIgaW5kZXggdG8gMCAq LwogIHUtPnBjICs9IHUtPmlucF9jdHI7ICAgIC8qIG1vdmUgcHJvZ3JhbSBjb3VudGVyIGJ5IGJ5 dGVzIGRlY29kZWQgKi8KICBnZW5faGV4KCB1ICk7ICAgICAgIC8qIGdlbmVyYXRlIGhleCBjb2Rl ICovCgogIC8qIHJldHVybiBudW1iZXIgb2YgYnl0ZXMgZGlzYXNzZW1ibGVkLiAqLwogIHJldHVy biB1LT5pbnBfY3RyOwp9CgovKiB2aW06Y2luZGVudAogKiB2aW06dHM9NAogKiB2aW06c3c9NAog KiB2aW06ZXhwYW5kdGFiCiAqLwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAa2RiL3g4Ni91ZGlzODYtMS43L3N5bi1hdHQuYwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAADAwMDA2NjQAMDAwMjc1NgAwMDAyNzU2ADAwMDAwMDExMjU3ADExNzY1NDY1NTU2ADAx NTQxNwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg AG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBzeW4tYXR0LmMK ICoKICogQ29weXJpZ2h0IChjKSAyMDA0LCAyMDA1LCAyMDA2IFZpdmVrIE1vaGFuIDx2aXZla0Bz aWc5LmNvbT4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gU2VlIChMSUNFTlNFKQogKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogKi8KCiNpbmNsdWRlICJ0eXBlcy5oIgojaW5jbHVkZSAiZXh0ZXJuLmgi CiNpbmNsdWRlICJkZWNvZGUuaCIKI2luY2x1ZGUgIml0YWIuaCIKI2luY2x1ZGUgInN5bi5oIgoK LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogb3ByX2Nhc3QoKSAtIFByaW50cyBhbiBvcGVyYW5k IGNhc3QuCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqLwpzdGF0aWMgdm9pZCAKb3ByX2Nhc3Qo c3RydWN0IHVkKiB1LCBzdHJ1Y3QgdWRfb3BlcmFuZCogb3ApCnsKICBzd2l0Y2gob3AtPnNpemUp IHsKCWNhc2UgMTYgOiBjYXNlIDMyIDoKCQlta2FzbSh1LCAiKiIpOyAgIGJyZWFrOwoJZGVmYXVs dDogYnJlYWs7CiAgfQp9CgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKiBnZW5fb3BlcmFuZCgp IC0gR2VuZXJhdGVzIGFzc2VtYmx5IG91dHB1dCBmb3IgZWFjaCBvcGVyYW5kLgogKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogKi8Kc3RhdGljIHZvaWQgCmdlbl9vcGVyYW5kKHN0cnVjdCB1ZCogdSwg c3RydWN0IHVkX29wZXJhbmQqIG9wKQp7CiAgc3dpdGNoKG9wLT50eXBlKSB7CgljYXNlIFVEX09Q X1JFRzoKCQlta2FzbSh1LCAiJSUlcyIsIHVkX3JlZ190YWJbb3AtPmJhc2UgLSBVRF9SX0FMXSk7 CgkJYnJlYWs7CgoJY2FzZSBVRF9PUF9NRU06CgkJaWYgKHUtPmJyX2Zhcikgb3ByX2Nhc3QodSwg b3ApOwoJCWlmICh1LT5wZnhfc2VnKQoJCQlta2FzbSh1LCAiJSUlczoiLCB1ZF9yZWdfdGFiW3Ut PnBmeF9zZWcgLSBVRF9SX0FMXSk7CgkJaWYgKG9wLT5vZmZzZXQgPT0gOCkgewoJCQlpZiAob3At Pmx2YWwuc2J5dGUgPCAwKQoJCQkJbWthc20odSwgIi0weCV4IiwgKC1vcC0+bHZhbC5zYnl0ZSkg JiAweGZmKTsKCQkJZWxzZQlta2FzbSh1LCAiMHgleCIsIG9wLT5sdmFsLnNieXRlKTsKCQl9IAoJ CWVsc2UgaWYgKG9wLT5vZmZzZXQgPT0gMTYpIAoJCQlta2FzbSh1LCAiMHgleCIsIG9wLT5sdmFs LnV3b3JkKTsKCQllbHNlIGlmIChvcC0+b2Zmc2V0ID09IDMyKSAKCQkJbWthc20odSwgIjB4JWx4 Iiwgb3AtPmx2YWwudWR3b3JkKTsKCQllbHNlIGlmIChvcC0+b2Zmc2V0ID09IDY0KSAKCQkJbWth c20odSwgIjB4IiBGTVQ2NCAieCIsIG9wLT5sdmFsLnVxd29yZCk7CgoJCWlmIChvcC0+YmFzZSkK CQkJbWthc20odSwgIiglJSVzIiwgdWRfcmVnX3RhYltvcC0+YmFzZSAtIFVEX1JfQUxdKTsKCQlp ZiAob3AtPmluZGV4KSB7CgkJCWlmIChvcC0+YmFzZSkKCQkJCW1rYXNtKHUsICIsIik7CgkJCWVs c2UgbWthc20odSwgIigiKTsKCQkJbWthc20odSwgIiUlJXMiLCB1ZF9yZWdfdGFiW29wLT5pbmRl eCAtIFVEX1JfQUxdKTsKCQl9CgkJaWYgKG9wLT5zY2FsZSkKCQkJbWthc20odSwgIiwlZCIsIG9w LT5zY2FsZSk7CgkJaWYgKG9wLT5iYXNlIHx8IG9wLT5pbmRleCkKCQkJbWthc20odSwgIikiKTsK CQlicmVhazsKCgljYXNlIFVEX09QX0lNTToKCQlzd2l0Y2ggKG9wLT5zaXplKSB7CgkJCWNhc2Ug IDg6IG1rYXNtKHUsICIkMHgleCIsIG9wLT5sdmFsLnVieXRlKTsgICAgYnJlYWs7CgkJCWNhc2Ug MTY6IG1rYXNtKHUsICIkMHgleCIsIG9wLT5sdmFsLnV3b3JkKTsgICAgYnJlYWs7CgkJCWNhc2Ug MzI6IG1rYXNtKHUsICIkMHglbHgiLCBvcC0+bHZhbC51ZHdvcmQpOyAgYnJlYWs7CgkJCWNhc2Ug NjQ6IG1rYXNtKHUsICIkMHgiIEZNVDY0ICJ4Iiwgb3AtPmx2YWwudXF3b3JkKTsgYnJlYWs7CgkJ CWRlZmF1bHQ6IGJyZWFrOwoJCX0KCQlicmVhazsKCgljYXNlIFVEX09QX0pJTU06CgkJc3dpdGNo IChvcC0+c2l6ZSkgewoJCQljYXNlICA4OgoJCQkJbWthc20odSwgIjB4IiBGTVQ2NCAieCIsIHUt PnBjICsgb3AtPmx2YWwuc2J5dGUpOyAKCQkJCWJyZWFrOwoJCQljYXNlIDE2OgoJCQkJbWthc20o dSwgIjB4IiBGTVQ2NCAieCIsIHUtPnBjICsgb3AtPmx2YWwuc3dvcmQpOwoJCQkJYnJlYWs7CgkJ CWNhc2UgMzI6CgkJCQlta2FzbSh1LCAiMHgiIEZNVDY0ICJ4IiwgdS0+cGMgKyBvcC0+bHZhbC5z ZHdvcmQpOwoJCQkJYnJlYWs7CgkJCWRlZmF1bHQ6YnJlYWs7CgkJfQoJCWJyZWFrOwoKCWNhc2Ug VURfT1BfUFRSOgoJCXN3aXRjaCAob3AtPnNpemUpIHsKCQkJY2FzZSAzMjoKCQkJCW1rYXNtKHUs ICIkMHgleCwgJDB4JXgiLCBvcC0+bHZhbC5wdHIuc2VnLCAKCQkJCQlvcC0+bHZhbC5wdHIub2Zm ICYgMHhGRkZGKTsKCQkJCWJyZWFrOwoJCQljYXNlIDQ4OgoJCQkJbWthc20odSwgIiQweCV4LCAk MHglbHgiLCBvcC0+bHZhbC5wdHIuc2VnLCAKCQkJCQlvcC0+bHZhbC5wdHIub2ZmKTsKCQkJCWJy ZWFrOwoJCX0KCQlicmVhazsKCQkJCglkZWZhdWx0OiByZXR1cm47CiAgfQp9CgovKiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogKiB0cmFuc2xhdGVzIHRvIEFUJlQgc3ludGF4IAogKiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogKi8KZXh0ZXJuIHZvaWQgCnVkX3RyYW5zbGF0ZV9hdHQoc3RydWN0IHVkICp1 KQp7CiAgaW50IHNpemUgPSAwOwoKICAvKiBjaGVjayBpZiBQX09TTyBwcmVmaXggaXMgdXNlZCAq LwogIGlmICghIFBfT1NPKHUtPml0YWJfZW50cnktPnByZWZpeCkgJiYgdS0+cGZ4X29wcikgewoJ c3dpdGNoICh1LT5kaXNfbW9kZSkgewoJCWNhc2UgMTY6IAoJCQlta2FzbSh1LCAibzMyICIpOwoJ CQlicmVhazsKCQljYXNlIDMyOgoJCWNhc2UgNjQ6CiAJCQlta2FzbSh1LCAibzE2ICIpOwoJCQli cmVhazsKCX0KICB9CgogIC8qIGNoZWNrIGlmIFBfQVNPIHByZWZpeCB3YXMgdXNlZCAqLwogIGlm ICghIFBfQVNPKHUtPml0YWJfZW50cnktPnByZWZpeCkgJiYgdS0+cGZ4X2FkcikgewoJc3dpdGNo ICh1LT5kaXNfbW9kZSkgewoJCWNhc2UgMTY6IAoJCQlta2FzbSh1LCAiYTMyICIpOwoJCQlicmVh azsKCQljYXNlIDMyOgogCQkJbWthc20odSwgImExNiAiKTsKCQkJYnJlYWs7CgkJY2FzZSA2NDoK IAkJCW1rYXNtKHUsICJhMzIgIik7CgkJCWJyZWFrOwoJfQogIH0KCiAgaWYgKHUtPnBmeF9sb2Nr KQogIAlta2FzbSh1LCAgImxvY2sgIik7CiAgaWYgKHUtPnBmeF9yZXApCglta2FzbSh1LCAgInJl cCAiKTsKICBpZiAodS0+cGZ4X3JlcG5lKQoJCW1rYXNtKHUsICAicmVwbmUgIik7CgogIC8qIHNw ZWNpYWwgaW5zdHJ1Y3Rpb25zICovCiAgc3dpdGNoICh1LT5tbmVtb25pYykgewoJY2FzZSBVRF9J cmV0ZjogCgkJbWthc20odSwgImxyZXQgIik7IAoJCWJyZWFrOwoJY2FzZSBVRF9JZGI6CgkJbWth c20odSwgIi5ieXRlIDB4JXgiLCB1LT5vcGVyYW5kWzBdLmx2YWwudWJ5dGUpOwoJCXJldHVybjsK CWNhc2UgVURfSWptcDoKCWNhc2UgVURfSWNhbGw6CgkJaWYgKHUtPmJyX2ZhcikgbWthc20odSwg ICJsIik7CgkJbWthc20odSwgIiVzIiwgdWRfbG9va3VwX21uZW1vbmljKHUtPm1uZW1vbmljKSk7 CgkJYnJlYWs7CgljYXNlIFVEX0lib3VuZDoKCWNhc2UgVURfSWVudGVyOgoJCWlmICh1LT5vcGVy YW5kWzBdLnR5cGUgIT0gVURfTk9ORSkKCQkJZ2VuX29wZXJhbmQodSwgJnUtPm9wZXJhbmRbMF0p OwoJCWlmICh1LT5vcGVyYW5kWzFdLnR5cGUgIT0gVURfTk9ORSkgewoJCQlta2FzbSh1LCAiLCIp OwoJCQlnZW5fb3BlcmFuZCh1LCAmdS0+b3BlcmFuZFsxXSk7CgkJfQoJCXJldHVybjsKCWRlZmF1 bHQ6CgkJbWthc20odSwgIiVzIiwgdWRfbG9va3VwX21uZW1vbmljKHUtPm1uZW1vbmljKSk7CiAg fQoKICBpZiAodS0+YzEpCglzaXplID0gdS0+b3BlcmFuZFswXS5zaXplOwogIGVsc2UgaWYgKHUt PmMyKQoJc2l6ZSA9IHUtPm9wZXJhbmRbMV0uc2l6ZTsKICBlbHNlIGlmICh1LT5jMykKCXNpemUg PSB1LT5vcGVyYW5kWzJdLnNpemU7CgogIGlmIChzaXplID09IDgpCglta2FzbSh1LCAiYiIpOwog IGVsc2UgaWYgKHNpemUgPT0gMTYpCglta2FzbSh1LCAidyIpOwogIGVsc2UgaWYgKHNpemUgPT0g NjQpCiAJbWthc20odSwgInEiKTsKCiAgbWthc20odSwgIiAiKTsKCiAgaWYgKHUtPm9wZXJhbmRb Ml0udHlwZSAhPSBVRF9OT05FKSB7CglnZW5fb3BlcmFuZCh1LCAmdS0+b3BlcmFuZFsyXSk7Cglt a2FzbSh1LCAiLCAiKTsKICB9CgogIGlmICh1LT5vcGVyYW5kWzFdLnR5cGUgIT0gVURfTk9ORSkg ewoJZ2VuX29wZXJhbmQodSwgJnUtPm9wZXJhbmRbMV0pOwoJbWthc20odSwgIiwgIik7CiAgfQoK ICBpZiAodS0+b3BlcmFuZFswXS50eXBlICE9IFVEX05PTkUpCglnZW5fb3BlcmFuZCh1LCAmdS0+ b3BlcmFuZFswXSk7Cn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAGtkYi94ODYvdWRpczg2LTEuNy9rZGJfZGlzLmMAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NjY0ADAwMDI3NTYAMDAwMjc1NgAwMDAwMDAxNDMzNgAxMTc2NTQ2NTU1NgAwMTU0MjAAIDAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtcmF0aG9yAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAALyoKICogQ29weXJpZ2h0IChDKSAyMDA5LCBNdWtlc2ggUmF0aG9yLCBPcmFjbGUg Q29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgdjIgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAqCiAqIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQogKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy aXRlIHRvIHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQ bGFjZSAtIFN1aXRlIDMzMCwKICogQm9zdG9uLCBNQSAwMjExMTAtMTMwNywgVVNBLgogKi8KCiNp bmNsdWRlIDx4ZW4vY29tcGlsZS5oPiAgICAgICAgICAgICAgICAvKiBmb3IgWEVOX1NVQlZFUlNJ T04gKi8KI2luY2x1ZGUgIi4uLy4uL2luY2x1ZGUva2RiaW5jLmgiCiNpbmNsdWRlICJleHRlcm4u aCIKCnN0YXRpYyB2b2lkICgqZGlzX3N5bnRheCkodWRfdCopID0gVURfU1lOX0FUVDsgLyogZGVm YXVsdCBkaXMtYXNzZW1ibHkgc3ludGF4ICovCgpzdGF0aWMgc3RydWN0IHsgICAgICAgICAgICAg ICAgICAgICAgICAgLyogaW5mbyBmb3Iga2RiX3JlYWRfYnl0ZV9mb3JfdWQoKSAqLwogICAga2Ri dmFfdCBrdWRfaW5zdHJfYWRkcjsKICAgIGRvbWlkX3Qga3VkX2RvbWlkOwp9IGtkYl91ZF9yZF9p bmZvOwoKLyogY2FsbGVkIHZpYSBmdW5jdGlvbiBwdHIgYnkgdWQgd2hlbiBkaXNhc3NlbWJsaW5n LiAKICoga2RiIGluZm8gcGFzc2VkIHZpYSBrZGJfdWRfcmRfaW5mb3t9IAogKi8Kc3RhdGljIGlu dAprZGJfcmVhZF9ieXRlX2Zvcl91ZChzdHJ1Y3QgdWQgKnVkcCkKewogICAga2RiYnl0X3QgYnl0 ZWJ1ZjsKICAgIGRvbWlkX3QgZG9taWQgPSBrZGJfdWRfcmRfaW5mby5rdWRfZG9taWQ7CiAgICBr ZGJ2YV90IGFkZHIgPSBrZGJfdWRfcmRfaW5mby5rdWRfaW5zdHJfYWRkcjsKCiAgICBpZiAoa2Ri X3JlYWRfbWVtKGFkZHIsICZieXRlYnVmLCAxLCBkb21pZCkgPT0gMSkgewogICAgICAgIGtkYl91 ZF9yZF9pbmZvLmt1ZF9pbnN0cl9hZGRyKys7CiAgICAgICAgS0RCR1AxKCJ1ZHJkOmFkZHI6JWx4 IGRvbWlkOiVkIGJ5dDoleFxuIiwgYWRkciwgZG9taWQsIGJ5dGVidWYpOwogICAgICAgIHJldHVy biBieXRlYnVmOwogICAgfQogICAgS0RCR1AxKCJ1ZHJkOmFkZHI6JWx4IGRvbWlkOiVkIGVyclxu IiwgYWRkciwgZG9taWQpOwogICAgcmV0dXJuIFVEX0VPSTsKfQoKLyogCiAqIGdpdmVuIGEgZG9t aWQsIGNvbnZlcnQgYWRkciB0byBzeW1ib2wgYW5kIHByaW50IGl0IAogKiBFZzogZmZmZjgyOGM4 MDEyMzVlMjogaWRsZV9sb29wKzUyICAgICAgICAgICAgICAgICAgam1wICBpZGxlX2xvb3ArNTUK ICogICAgQ2FsbGVkIHR3aWNlIGhlcmUgZm9yIGlkbGVfbG9vcC4gSW4gZmlyc3QgY2FzZSwgbmwg aXMgbnVsbCwgCiAqICAgIGluIHRoZSBzZWNvbmQgY2FzZSBubCA9PSAnXG4nCiAqLwp2b2lkCmtk Yl9wcm50X2FkZHIyc3ltKGRvbWlkX3QgZG9taWQsIGtkYnZhX3QgYWRkciwgY2hhciAqbmwpCnsK ICAgIHVuc2lnbmVkIGxvbmcgc3osIG9mZnM7CiAgICBjaGFyIGJ1ZltLU1lNX05BTUVfTEVOKzFd LCBwYnVmWzE1MF0sIHByZWZpeFs4XTsKICAgIGNoYXIgKnAgPSBidWY7CgogICAgcHJlZml4WzBd PSdcMCc7CiAgICBpZiAoZG9taWQgIT0gRE9NSURfSURMRSkgewogICAgICAgIHNucHJpbnRmKHBy ZWZpeCwgOCwgIiV4OiIsIGRvbWlkKTsKICAgICAgICBwID0ga2RiX2d1ZXN0X2FkZHIyc3ltKGFk ZHIsIGRvbWlkLCAmb2Zmcyk7CiAgICB9IGVsc2UKICAgICAgICBzeW1ib2xzX2xvb2t1cChhZGRy LCAmc3osICZvZmZzLCBidWYpOwoKICAgIHNucHJpbnRmKHBidWYsIDE1MCwgIiVzJXMrJWx4Iiwg cHJlZml4LCBwLCBvZmZzKTsKICAgIGlmICgqbmwgIT0gJ1xuJykKICAgICAgICBrZGJwKCIlLTMw cyVzIiwgcGJ1ZiwgbmwpOyAgLyogcHJpbnRzIG1vcmUgdGhhbiAzMCBpZiBuZWVkZWQgKi8KICAg IGVsc2UKICAgICAgICBrZGJwKCIlcyVzIiwgcGJ1ZiwgbmwpOwoKfQoKc3RhdGljIGludAprZGJf anVtcF9pbnN0cihlbnVtIHVkX21uZW1vbmljX2NvZGUgbW5lbW9uaWMpCnsKICAgIHJldHVybiAo bW5lbW9uaWMgPj0gVURfSWpvICYmIG1uZW1vbmljIDw9IFVEX0lqbXApOwp9CgovKgogKiBwcmlu dCBvbmUgaW5zdHI6IGZ1bmN0aW9uIHNvIHRoYXQgd2UgY2FuIHByaW50IG9mZnNldHMgb2Ygam1w IGV0Yy4uIGFzCiAqICBzeW1ib2wrb2Zmc2V0IGluc3RlYWQgb2YganVzdCBhZGRyZXNzCiAqLwpz dGF0aWMgdm9pZAprZGJfcHJpbnRfb25lX2luc3RyKHN0cnVjdCB1ZCAqdWRwLCBkb21pZF90IGRv bWlkKQp7CiAgICBzaWduZWQgbG9uZyB2YWwgPSAwOwogICAgdWRfdHlwZV90IHR5cGUgPSB1ZHAt Pm9wZXJhbmRbMF0udHlwZTsKCiAgICBpZiAoKHVkcC0+bW5lbW9uaWMgPT0gVURfSWNhbGwgfHwg a2RiX2p1bXBfaW5zdHIodWRwLT5tbmVtb25pYykpICYmCiAgICAgICAgdHlwZSA9PSBVRF9PUF9K SU1NKSB7CiAgICAgICAgCiAgICAgICAgaW50IHN6ID0gdWRwLT5vcGVyYW5kWzBdLnNpemU7CiAg ICAgICAgY2hhciAqcCwgaWJ1Zls0MF0sICpxID0gaWJ1ZjsKICAgICAgICBrZGJ2YV90IGFkZHI7 CgogICAgICAgIGlmIChzeiA9PSA4KSB2YWwgPSB1ZHAtPm9wZXJhbmRbMF0ubHZhbC5zYnl0ZTsK ICAgICAgICBlbHNlIGlmIChzeiA9PSAxNikgdmFsID0gdWRwLT5vcGVyYW5kWzBdLmx2YWwuc3dv cmQ7CiAgICAgICAgZWxzZSBpZiAoc3ogPT0gMzIpIHZhbCA9IHVkcC0+b3BlcmFuZFswXS5sdmFs LnNkd29yZDsKICAgICAgICBlbHNlIGlmIChzeiA9PSA2NCkgdmFsID0gdWRwLT5vcGVyYW5kWzBd Lmx2YWwuc3F3b3JkOwogICAgICAgIGVsc2Uga2RicCgia2RiX3ByaW50X29uZV9pbnN0cjogSW52 YWwgc3o6eiVkXG4iLCBzeik7CgogICAgICAgIGFkZHIgPSB1ZHAtPnBjICsgdmFsOwogICAgICAg IGZvcihwPXVkX2luc25fYXNtKHVkcCk7ICgqcT0qcCkgJiYgKnAhPScgJzsgcCsrLHErKyk7CiAg ICAgICAgKnE9J1wwJzsKICAgICAgICBrZGJwKCIgJS00cyAiLCBpYnVmKTsgICAgLyogc3BhY2Ug YmVmb3JlIGZvciBsb25nIGZ1bmMgbmFtZXMgKi8KICAgICAgICBrZGJfcHJudF9hZGRyMnN5bShk b21pZCwgYWRkciwgIlxuIik7CiAgICB9IGVsc2UKICAgICAgICBrZGJwKCIgJS0yNHNcbiIsIHVk X2luc25fYXNtKHVkcCkpOwojaWYgMAogICAga2RicCgibW5lbW9uaWM6eiVkICIsIHVkcC0+bW5l bW9uaWMpOwogICAgaWYgKHR5cGUgPT0gVURfT1BfQ09OU1QpIGtkYnAoInR5cGUgaXMgY29uc3Rc biIpOwogICAgZWxzZSBpZiAodHlwZSA9PSBVRF9PUF9KSU1NKSBrZGJwKCJ0eXBlIGlzIEpJTU1c biIpOwogICAgZWxzZSBpZiAodHlwZSA9PSBVRF9PUF9JTU0pIGtkYnAoInR5cGUgaXMgSU1NXG4i KTsKICAgIGVsc2UgaWYgKHR5cGUgPT0gVURfT1BfUFRSKSBrZGJwKCJ0eXBlIGlzIFBUUlxuIik7 CiNlbmRpZgp9CgpzdGF0aWMgdm9pZAprZGJfc2V0dXBfdWQoc3RydWN0IHVkICp1ZHAsIGtkYnZh X3QgYWRkciwgZG9taWRfdCBkb21pZCkKewogICAgaW50IGJpdG5lc3MgPSBrZGJfZ3Vlc3RfYml0 bmVzcyhkb21pZCk7CiAgICB1aW50IHZlbmRvciA9IChib290X2NwdV9kYXRhLng4Nl92ZW5kb3Ig PT0gWDg2X1ZFTkRPUl9BTUQpID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFVEX1ZFTkRPUl9BTUQgOiBVRF9WRU5ET1JfSU5URUw7CgogICAgS0RCR1AxKCJzZXR1 cF91ZDpkb21pZDolZCBiaXRuZXNzOiVkIGFkZHI6JWx4XG4iLCBkb21pZCwgYml0bmVzcywgYWRk cik7CiAgICB1ZF9pbml0KHVkcCk7CiAgICB1ZF9zZXRfbW9kZSh1ZHAsIGtkYl9ndWVzdF9iaXRu ZXNzKGRvbWlkKSk7CiAgICB1ZF9zZXRfc3ludGF4KHVkcCwgZGlzX3N5bnRheCk7IAogICAgdWRf c2V0X3ZlbmRvcih1ZHAsIHZlbmRvcik7ICAgICAgICAgICAvKiBIVk06IHZteC9zdm0gZGlmZmVy ZW50IGluc3RycyovCiAgICB1ZF9zZXRfcGModWRwLCBhZGRyKTsgICAgICAgICAgICAgICAgIC8q IGZvciBudW1iZXJzIHByaW50ZWQgb24gbGVmdCAqLwogICAgdWRfc2V0X2lucHV0X2hvb2sodWRw LCBrZGJfcmVhZF9ieXRlX2Zvcl91ZCk7CiAgICBrZGJfdWRfcmRfaW5mby5rdWRfaW5zdHJfYWRk ciA9IGFkZHI7CiAgICBrZGJfdWRfcmRfaW5mby5rdWRfZG9taWQgPSBkb21pZDsKfQoKLyoKICog Z2l2ZW4gYW4gYWRkciwgcHJpbnQgZ2l2ZW4gbnVtYmVyIG9mIGluc3RydWN0aW9ucy4KICogUmV0 dXJuczogYWRkcmVzcyBvZiBuZXh0IGluc3RydWN0aW9uIGluIHRoZSBzdHJlYW0KICovCmtkYnZh X3QKa2RiX3ByaW50X2luc3RyKGtkYnZhX3QgYWRkciwgbG9uZyBudW0sIGRvbWlkX3QgZG9taWQp CnsKICAgIHN0cnVjdCB1ZCB1ZF9zOwoKICAgIEtEQkdQMSgicHJpbnRfaW5zdHI6YWRkcjoweCVs eCBudW06JWxkIGRvbWlkOiV4XG4iLCBhZGRyLCBudW0sIGRvbWlkKTsKCiAgICBrZGJfc2V0dXBf dWQoJnVkX3MsIGFkZHIsIGRvbWlkKTsKICAgIHdoaWxlKG51bS0tKSB7CiAgICAgICAgaWYgKHVk X2Rpc2Fzc2VtYmxlKCZ1ZF9zKSkgewogICAgICAgICAgICB1aW50NjRfdCBwYyA9IHVkX2luc25f b2ZmKCZ1ZF9zKTsKICAgICAgICAgICAgLyoga2RicCgiJTA4eDogIiwoaW50KXBjKTsgKi8KICAg ICAgICAgICAga2RicCgiJTAxNmx4OiAiLCBwYyk7CiAgICAgICAgICAgIGtkYl9wcm50X2FkZHIy c3ltKGRvbWlkLCBwYywgIiIpOwogICAgICAgICAgICBrZGJfcHJpbnRfb25lX2luc3RyKCZ1ZF9z LCBkb21pZCk7CiAgICAgICAgfSBlbHNlCiAgICAgICAgICAgIGtkYnAoIktEQjpDb3VsZG4ndCBk aXNhc3NlbWJsZSBQQzoweCVseFxuIiwgYWRkcik7CiAgICAgICAgICAgIC8qIGZvciBzdGFjayBy ZWFkcywgZG9uJ3QgYWx3YXlzIGRpc3BsYXkgZXJyb3IgKi8KICAgIH0KICAgIEtEQkdQMSgicHJp bnRfaW5zdHI6a3VkYWRkcjoweCVseFxuIiwga2RiX3VkX3JkX2luZm8ua3VkX2luc3RyX2FkZHIp OwogICAgcmV0dXJuIGtkYl91ZF9yZF9pbmZvLmt1ZF9pbnN0cl9hZGRyOwp9Cgp2b2lkCmtkYl9k aXNwbGF5X3BjKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7ICAgCiAgICBkb21pZF90IGRv bWlkOwogICAgc3RydWN0IGNwdV91c2VyX3JlZ3MgcmVnczEgPSAqcmVnczsKICAgIGRvbWlkID0g Z3Vlc3RfbW9kZShyZWdzKSA/IGN1cnJlbnQtPmRvbWFpbi0+ZG9tYWluX2lkIDogRE9NSURfSURM RTsKCiAgICByZWdzMS5LREJJUCA9IHJlZ3MtPktEQklQOwogICAga2RiX3ByaW50X2luc3RyKHJl Z3MxLktEQklQLCAxLCBkb21pZCk7Cn0KCi8qIGNoZWNrIGlmIHRoZSBpbnN0ciBhdCB0aGUgYWRk ciBpcyBjYWxsIGluc3RydWN0aW9uCiAqIFJFVFVSTlM6IHNpemUgb2YgdGhlIGluc3RyIGlmIGl0 J3MgYSBjYWxsIGluc3RyLCBlbHNlIDAKICovCmludAprZGJfY2hlY2tfY2FsbF9pbnN0cihkb21p ZF90IGRvbWlkLCBrZGJ2YV90IGFkZHIpCnsKICAgIHN0cnVjdCB1ZCB1ZF9zOwogICAgaW50IHN6 OwoKICAgIGtkYl9zZXR1cF91ZCgmdWRfcywgYWRkciwgZG9taWQpOwogICAgaWYgKChzej11ZF9k aXNhc3NlbWJsZSgmdWRfcykpICYmIHVkX3MubW5lbW9uaWMgPT0gVURfSWNhbGwpCiAgICAgICAg cmV0dXJuIChzeik7CiAgICByZXR1cm4gMDsKfQoKLyogdG9nZ2xlIEFUVCBhbmQgSW50ZWwgc3lu dGF4ZXMgKi8Kdm9pZAprZGJfdG9nZ2xlX2Rpc19zeW50YXgodm9pZCkKewogICAgaWYgKGRpc19z eW50YXggPT0gVURfU1lOX0lOVEVMKSB7CiAgICAgICAgZGlzX3N5bnRheCA9IFVEX1NZTl9BVFQ7 CiAgICAgICAga2RicCgiZGlzIHN5bnRheCBub3cgc2V0IHRvIEFUVCAoR2FzKVxuIik7CiAgICB9 IGVsc2UgewogICAgICAgIGRpc19zeW50YXggPSBVRF9TWU5fSU5URUw7CiAgICAgICAga2RicCgi ZGlzIHN5bnRheCBub3cgc2V0IHRvIEludGVsIChOQVNNKVxuIik7CiAgICB9Cn0KAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrZGIv eDg2L2tkYl93cC5jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY2NAAwMDAyNzU2ADAw MDI3NTYAMDAwMDAwMjA1MzYAMTE3NjU0NjU1NTYAMDEzNjQxACAwAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qCiAq IENvcHlyaWdodCAoQykgMjAwOSwgTXVrZXNoIFJhdGhvciwgT3JhY2xlIENvcnAuICBBbGwgcmln aHRzIHJlc2VydmVkLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIHYyIGFzIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUKICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKICog TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUKICog RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz MzAsCiAqIEJvc3RvbiwgTUEgMDIxMTEwLTEzMDcsIFVTQS4KICovCgojaW5jbHVkZSAiLi4vaW5j bHVkZS9rZGJpbmMuaCIKCiNpZiAwCiNkZWZpbmUgRFI2X0JUICAweDAwMDA4MDAwCiNkZWZpbmUg RFI2X0JTICAweDAwMDA0MDAwCiNkZWZpbmUgRFI2X0JEICAweDAwMDAyMDAwCiNlbmRpZgojZGVm aW5lIERSNl9CMyAgMHgwMDAwMDAwOAojZGVmaW5lIERSNl9CMiAgMHgwMDAwMDAwNAojZGVmaW5l IERSNl9CMSAgMHgwMDAwMDAwMgojZGVmaW5lIERSNl9CMCAgMHgwMDAwMDAwMQoKI2RlZmluZSBL REJfTUFYV1AgNCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRFIwIHRocnUgRFIzICovCgpz dHJ1Y3Qga2RiX3dwIHsKICAgIGtkYm1hX3QgIHdwX2FkZHI7CiAgICBpbnQgICAgICB3cF9yd2Zs YWc7CiAgICBpbnQgICAgICB3cF9sZW47CiAgICBpbnQgICAgICB3cF9kZWxldGVkOyAgICAgICAg ICAgICAgICAgICAgIC8qIHBlbmRpbmcgZGVsZXRlICovCn07CnN0YXRpYyBzdHJ1Y3Qga2RiX3dw IGtkYl93cGFbS0RCX01BWFdQXTsKCi8qIGZvbGxvd2luZyBiZWNhdXNlIHZtY3MgaGFzIGl0J3Mg b3duIGRyNy4gd2hlbiB2bWNzIHJ1bnMsIGl0IG1lc3NlcyB1cCB0aGUKICogbmF0aXZlIGRyNyBz byB3ZSBuZWVkIHRvIHNhdmUvcmVzdG9yZSBpdCAqLwp1bnNpZ25lZCBsb25nIGtkYl9kcjc7CgoK LyogU2V0IEcwLUczIGJpdHMgaW4gRFI3LiB0aGlzIGRvZXMgZ2xvYmFsIGVuYWJsZSBvZiB0aGUg Y29ycmVzcG9uZGluZyB3cCAqLwpzdGF0aWMgdm9pZAprZGJfc2V0X2d4X2luX2RyNyhpbnQgcmVn bm8sIGtkYm1hX3QgKmRyN3ApCnsKICAgIGlmIChyZWdubyA9PSAwKQogICAgICAgICpkcjdwID0g KmRyN3AgfCAweDI7CiAgICBlbHNlIGlmIChyZWdubyA9PSAxKQogICAgICAgICpkcjdwID0gKmRy N3AgfCAweDg7CiAgICBlbHNlIGlmIChyZWdubyA9PSAyKQogICAgICAgICpkcjdwID0gKmRyN3Ag fCAweDIwOwogICAgZWxzZSBpZiAocmVnbm8gPT0gMykKICAgICAgICAqZHI3cCA9ICpkcjdwIHwg MHg4MDsKfQoKLyogU2V0IExFTjAgLSBMRU4zIHBhaXIgYml0cyBpbiBEUjcgKGxlbiBzaG91bGQg YmUgMSAyIDQgb3IgOCkgKi8Kc3RhdGljIHZvaWQKa2RiX3NldF9sZW5faW5fZHI3KGludCByZWdu bywga2RibWFfdCAqZHI3cCwgaW50IGxlbikKewogICAgaW50IGxlbmJpdHMgPSAobGVuID09IDgp ID8gMiA6IGxlbi0xOwoKICAgICpkcjdwICY9IH4oMHgzIDw8ICgxOCArIDQqcmVnbm8pKTsKICAg ICpkcjdwIHw9ICgodWxvbmcpKGxlbmJpdHMgJiAweDMpIDw8ICgxOCArIDQqcmVnbm8pKTsKfQoK c3RhdGljIHZvaWQKa2RiX3NldF9kcjdfcncoaW50IHJlZ25vLCBrZGJtYV90ICpkcjdwLCBpbnQg cncpCnsKICAgICpkcjdwICY9IH4oMHgzIDw8ICgxNiArIDQqcmVnbm8pKTsKICAgICpkcjdwIHw9 ICgodWxvbmcpKHJ3ICYgMHgzKSkgPDwgKDE2ICsgNCpyZWdubyk7Cn0KCi8qIGdldCB2YWx1ZSBv ZiBhIGRlYnVnIHJlZ2lzdGVyOiBEUjAtRFIzIERSNiBEUjcuIG90aGVyIHZhbHVlcyByZXR1cm4g MCAqLwprZGJtYV90CmtkYl9yZF9kYmdyZWcoaW50IHJlZ251bSkKewogICAga2RibWFfdCBjb250 ZW50cyA9IDA7CgogICAgaWYgKHJlZ251bSA9PSAwKQogICAgICAgIF9fYXNtX18gKCJtb3ZxICUl ZGIwLCUwXG5cdCI6Ij1yIihjb250ZW50cykpOwogICAgZWxzZSBpZiAocmVnbnVtID09IDEpCiAg ICAgICAgX19hc21fXyAoIm1vdnEgJSVkYjEsJTBcblx0IjoiPXIiKGNvbnRlbnRzKSk7CiAgICBl bHNlIGlmIChyZWdudW0gPT0gMikKICAgICAgICBfX2FzbV9fICgibW92cSAlJWRiMiwlMFxuXHQi OiI9ciIoY29udGVudHMpKTsKICAgIGVsc2UgaWYgKHJlZ251bSA9PSAzKQogICAgICAgIF9fYXNt X18gKCJtb3ZxICUlZGIzLCUwXG5cdCI6Ij1yIihjb250ZW50cykpOwogICAgZWxzZSBpZiAocmVn bnVtID09IDYpCiAgICAgICAgX19hc21fXyAoIm1vdnEgJSVkYjYsJTBcblx0IjoiPXIiKGNvbnRl bnRzKSk7CiAgICBlbHNlIGlmIChyZWdudW0gPT0gNykKICAgICAgICBfX2FzbV9fICgibW92cSAl JWRiNywlMFxuXHQiOiI9ciIoY29udGVudHMpKTsKCiAgICByZXR1cm4gY29udGVudHM7Cn0KCnN0 YXRpYyB2b2lkCmtkYl93cl9kYmdyZWcoaW50IHJlZ251bSwga2RibWFfdCBjb250ZW50cykKewog ICAgaWYgKHJlZ251bSA9PSAwKQogICAgICAgIF9fYXNtX18gKCJtb3ZxICUwLCUlZGIwXG5cdCI6 OiJyIihjb250ZW50cykpOwogICAgZWxzZSBpZiAocmVnbnVtID09IDEpCiAgICAgICAgX19hc21f XyAoIm1vdnEgJTAsJSVkYjFcblx0Ijo6InIiKGNvbnRlbnRzKSk7CiAgICBlbHNlIGlmIChyZWdu dW0gPT0gMikKICAgICAgICBfX2FzbV9fICgibW92cSAlMCwlJWRiMlxuXHQiOjoiciIoY29udGVu dHMpKTsKICAgIGVsc2UgaWYgKHJlZ251bSA9PSAzKQogICAgICAgIF9fYXNtX18gKCJtb3ZxICUw LCUlZGIzXG5cdCI6OiJyIihjb250ZW50cykpOwogICAgZWxzZSBpZiAocmVnbnVtID09IDYpCiAg ICAgICAgX19hc21fXyAoIm1vdnEgJTAsJSVkYjZcblx0Ijo6InIiKGNvbnRlbnRzKSk7CiAgICBl bHNlIGlmIChyZWdudW0gPT0gNykKICAgICAgICBfX2FzbV9fICgibW92cSAlMCwlJWRiN1xuXHQi OjoiciIoY29udGVudHMpKTsKfQoKc3RhdGljIHZvaWQKa2RiX3ByaW50X3dwX2luZm8oY2hhciAq c3RycCwgaW50IGlkeCkKewogICAga2RicCgiJXNbJWRdOiUwMTZseCBsZW46JWQgIiwgc3RycCwg aWR4LCBrZGJfd3BhW2lkeF0ud3BfYWRkciwKICAgICAgICAga2RiX3dwYVtpZHhdLndwX2xlbik7 CiAgICBpZiAoa2RiX3dwYVtpZHhdLndwX3J3ZmxhZyA9PSAxKQogICAgICAgIGtkYnAoIm9uIGRh dGEgd3JpdGUgb25seVxuIik7CiAgICBlbHNlIGlmIChrZGJfd3BhW2lkeF0ud3BfcndmbGFnID09 IDIpCiAgICAgICAga2RicCgib24gSU8gcmVhZC93cml0ZVxuIik7CiAgICBlbHNlIAogICAgICAg IGtkYnAoIm9uIGRhdGEgcmVhZC93cml0ZVxuIik7Cn0KCi8qCiAqIFJldHVybnMgOiAwIGlmIG5v dCBvbmUgb2Ygb3VycwogKiAgICAgICAgICAgMSBpZiBvbmUgb2Ygb3VycwogKi8KaW50CmtkYl9j aGVja193YXRjaHBvaW50cyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgaW50IHdw bnVtOwogICAga2RibWFfdCBkcjYgPSBrZGJfcmRfZGJncmVnKDYpOwoKICAgIEtEQkdQMSgiY2hl Y2tfd3A6IElQOiVseCBFRkxBR1M6JWx4XG4iLCByZWdzLT5yaXAsIHJlZ3MtPnJmbGFncyk7CiAg ICBpZiAoZHI2ICYgRFI2X0IwKQogICAgICAgIHdwbnVtID0gMDsKICAgIGVsc2UgaWYgKGRyNiAm IERSNl9CMSkKICAgICAgICB3cG51bSA9IDE7CiAgICBlbHNlIGlmIChkcjYgJiBEUjZfQjIpCiAg ICAgICAgd3BudW0gPSAyOwogICAgZWxzZSBpZiAoZHI2ICYgRFI2X0IzKQogICAgICAgIHdwbnVt ID0gMzsKICAgIGVsc2UKICAgICAgICByZXR1cm4gMDsKCiAgICBrZGJfcHJpbnRfd3BfaW5mbygi V2F0Y2hwb2ludCAiLCB3cG51bSk7CiAgICByZXR1cm4gMTsKfQoKLyogc2V0IGEgd2F0Y2hwb2lu dCBhdCBhIGdpdmVuIGFkZHJlc3MgCiAqIFByZUNvbmRpdGlvbjogYWRkciAhPSAwICovCnN0YXRp YyB2b2lkCmtkYl9zZXRfd3Aoa2RidmFfdCBhZGRyLCBpbnQgcndmbGFnLCBpbnQgbGVuKQp7CiAg ICBpbnQgcmVnbm87CgogICAgZm9yIChyZWdubz0wOyByZWdubyA8IEtEQl9NQVhXUDsgcmVnbm8r KykgewogICAgICAgIGlmIChrZGJfd3BhW3JlZ25vXS53cF9hZGRyID09IGFkZHIgJiYgIWtkYl93 cGFbcmVnbm9dLndwX2RlbGV0ZWQpIHsKICAgICAgICAgICAga2RicCgiV2F0Y2hwb2ludCBhbHJl YWR5IHNldFxuIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKGtk Yl93cGFbcmVnbm9dLndwX2RlbGV0ZWQpCiAgICAgICAgICAgIG1lbXNldCgma2RiX3dwYVtyZWdu b10sIDAsIHNpemVvZihrZGJfd3BhW3JlZ25vXSkpOwogICAgfQogICAgZm9yIChyZWdubz0wOyBy ZWdubyA8IEtEQl9NQVhXUCAmJiBrZGJfd3BhW3JlZ25vXS53cF9hZGRyOyByZWdubysrKTsKICAg IGlmIChyZWdubyA+PSBLREJfTUFYV1ApIHsKICAgICAgICBrZGJwKCJ3YXRjaHBvaW50IHRhYmxl IGZ1bGwuIGxpbWl0OiVkXG4iLCBLREJfTUFYV1ApOwogICAgICAgIHJldHVybjsKICAgIH0KICAg IGtkYl93cGFbcmVnbm9dLndwX2FkZHIgPSBhZGRyOwogICAga2RiX3dwYVtyZWdub10ud3Bfcndm bGFnID0gcndmbGFnOwogICAga2RiX3dwYVtyZWdub10ud3BfbGVuID0gbGVuOwogICAga2RiX3By aW50X3dwX2luZm8oIldhdGNocG9pbnQgc2V0ICIsIHJlZ25vKTsKfQoKLyogd3JpdGUgcmVnIERS MC0zIHdpdGggYWRkcmVzcy4gVXBkYXRlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiBEUjcgKi8Kc3Rh dGljIHZvaWQKa2RiX2luc3RhbGxfd2F0Y2hwb2ludChpbnQgcmVnbm8sIGtkYm1hX3QgKmRyN3Ap CnsKICAgIGtkYl9zZXRfZ3hfaW5fZHI3KHJlZ25vLCBkcjdwKTsKICAgIGtkYl9zZXRfbGVuX2lu X2RyNyhyZWdubywgZHI3cCwga2RiX3dwYVtyZWdub10ud3BfbGVuKTsgCiAgICBrZGJfc2V0X2Ry N19ydyhyZWdubywgZHI3cCwga2RiX3dwYVtyZWdub10ud3BfcndmbGFnKTsKICAgIGtkYl93cl9k YmdyZWcocmVnbm8sIGtkYl93cGFbcmVnbm9dLndwX2FkZHIpOwoKICAgIEtEQkdQMSgiY2NwdTol ZCBpbnN0YWxsZWQgd3AuIGFkZHI6JWx4IHJ3OiV4IGxlbjoleCBkcjc6JTAxNmx4XG4iLAogICAg ICAgICAgIHNtcF9wcm9jZXNzb3JfaWQoKSwga2RiX3dwYVtyZWdub10ud3BfYWRkciwgCiAgICAg ICAgICAga2RiX3dwYVtyZWdub10ud3BfcndmbGFnLCBrZGJfd3BhW3JlZ25vXS53cF9sZW4sICpk cjdwKTsKfQoKLyogY2xlYXIgRzAtRzMgYml0cyBpbiBEUjcgZm9yIGdpdmVuIERSMC0zICovCnN0 YXRpYyB2b2lkCmtkYl9jbGVhcl9kcjdfZ3goaW50IHJlZ25vLCBrZGJtYV90ICpkcjdwKQp7CiAg ICBpZiAocmVnbm8gPT0gMCkKICAgICAgICAqZHI3cCA9ICpkcjdwICYgfjB4MjsKICAgIGVsc2Ug aWYgKHJlZ25vID09IDEpCiAgICAgICAgKmRyN3AgPSAqZHI3cCAmIH4weDg7CiAgICBlbHNlIGlm IChyZWdubyA9PSAyKQogICAgICAgICpkcjdwID0gKmRyN3AgJiB+MHgyMDsKICAgIGVsc2UgaWYg KHJlZ25vID09IDMpCiAgICAgICAgKmRyN3AgPSAqZHI3cCAmIH4weDgwOwp9CgovKiB1cGRhdGUg ZHI3IG9uY2UsIGFzIGl0J3Mgc2xvdyB0byB1cGRhdGUgZGVidWcgcmVncyBhbmQgY3B1J3Mgd2ls bCBzdGlsbCBiZSAKICogcGF1c2VkIHdoZW4gbGVhdmluZyBrZGIuCiAqCiAqIEp1c3QgbGVhdmUg RFIwLTMgY2xvYmJlcmVkIGJ1dCByZW1vdmUgYml0cyBmcm9tIERSNyB0byBkaXNhYmxlIHdwIAog Ki8Kdm9pZAprZGJfaW5zdGFsbF93YXRjaHBvaW50cyh2b2lkKQp7CiAgICBpbnQgcmVnbm87CiAg ICBrZGJtYV90IGRyNyA9IGtkYl9yZF9kYmdyZWcoNyk7CgogICAgZm9yIChyZWdubz0wOyByZWdu byA8IEtEQl9NQVhXUDsgcmVnbm8rKykgewogICAgICAgIC8qIGRvIG5vdCBjbGVhciB3cF9kZWxl dGVkIGhlcmUgYXMgYWxsIGNwdXMgbXVzdCBjbGVhciB3cHMgKi8KICAgICAgICBpZiAoa2RiX3dw YVtyZWdub10ud3BfZGVsZXRlZCkgewogICAgICAgICAgICBrZGJfY2xlYXJfZHI3X2d4KHJlZ25v LCAmZHI3KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmIChrZGJf d3BhW3JlZ25vXS53cF9hZGRyKQogICAgICAgICAgICBrZGJfaW5zdGFsbF93YXRjaHBvaW50KHJl Z25vLCAmZHI3KTsKICAgIH0KICAgIC8qIGFsd2F5cyBjbGVhciBEUjYgd2hlbiBsZWF2aW5nICov CiAgICBrZGJfd3JfZGJncmVnKDYsIDApOwogICAga2RiX3dyX2RiZ3JlZyg3LCBkcjcpOwoKICAg IGlmIChkcjcgJiBEUjdfQUNUSVZFX01BU0spCiAgICAgICAga2RiX2RyNyA9IGRyNzsKICAgIGVs c2UKICAgICAgICBrZGJfZHI3ID0gMDsKI2lmIDAKICAgIGZvcihkcD1kb21haW5fbGlzdDsgZHA7 IGRwPWRwLT5uZXh0X2luX2xpc3QpIHsKICAgICAgICBzdHJ1Y3QgdmNwdSAqdnA7CiAgICAgICAg Zm9yX2VhY2hfdmNwdShkcCwgdnApIHsKICAgICAgICAgICAgZm9yIChyZWdubz0wOyByZWdubyA8 IEtEQl9NQVhXUDsgcmVnbm8rKykKICAgICAgICAgICAgICAgIHZwLT5hcmNoLmd1ZXN0X2NvbnRl eHQuZGVidWdyZWdbcmVnbm9dID0ga2RiX3dwYVtyZWdub10ud3BfYWRkcjsKCiAgICAgICAgICAg IHZwLT5hcmNoLmd1ZXN0X2NvbnRleHQuZGVidWdyZWdbNl0gPSAwOwogICAgICAgICAgICB2cC0+ YXJjaC5ndWVzdF9jb250ZXh0LmRlYnVncmVnWzddID0gZHI3OwogICAgICAgICAgICBLREJHUCgi a2RiX2luc3RhbGxfd2F0Y2hwb2ludHMoKTogdjolcCBkcjc6JWx4XG4iLCB2cCwgZHI3KTsKICAg ICAgICAgICAgLyogaHZtX3NldF9pbmZvX2d1ZXN0KHZwKTs6IENhbid0IGJlY2F1c2UgY2FuJ3Qg dm1jc19lbnRlciBpbiBrZGIgKi8KICAgICAgICB9CiAgICB9CiNlbmRpZgp9CgovKiBjbGVhciB3 YXRjaHBvaW50L3MuIHdwbnVtID09IC0xIHRvIGNsZWFyIGFsbCB3YXRjaHBvaW50cyAqLwp2b2lk CmtkYl9jbGVhcl93cHMoaW50IHdwbnVtKQp7CiAgICBpbnQgaTsKCiAgICBpZiAod3BudW0gPj0g S0RCX01BWFdQKSB7CiAgICAgICAga2RicCgiSW52YWxpZCB3cG51bSAlZFxuIiwgd3BudW0pOwog ICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICh3cG51bSA+PTApIHsKICAgICAgICBpZiAoa2Ri X3dwYVt3cG51bV0ud3BfYWRkcikgewogICAgICAgICAgICBrZGJfd3BhW3dwbnVtXS53cF9kZWxl dGVkID0gMTsKICAgICAgICAgICAga2RiX3ByaW50X3dwX2luZm8oIkRlbGV0ZWQgd2F0Y2hwb2lu dCIsIHdwbnVtKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAga2RicCgid2F0Y2hwb2ludCAl ZCBub3Qgc2V0XG4iLCB3cG51bSk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgZm9yIChpPTA7 IGkgPCBLREJfTUFYV1A7IGkrKykgewogICAgICAgIGlmIChrZGJfd3BhW2ldLndwX2FkZHIpIHsK ICAgICAgICAgICAga2RiX3dwYVtpXS53cF9kZWxldGVkID0gMTsKICAgICAgICAgICAga2RiX3By aW50X3dwX2luZm8oIkRlbGV0ZWQgd2F0Y2hwb2ludCIsIGkpOwogICAgICAgIH0KICAgIH0KfQoK LyogZGlzcGxheSBhbnkgd2F0Y2hwb2ludHMgdGhhdCBhcmUgc2V0ICovCnN0YXRpYyB2b2lkCmtk Yl9kaXNwbGF5X3dwcyh2b2lkKQp7CiAgICBpbnQgaTsKICAgIGZvciAoaT0wOyBpIDwgS0RCX01B WFdQOyBpKyspCiAgICAgICAgaWYgKGtkYl93cGFbaV0ud3BfYWRkciAmJiAha2RiX3dwYVtpXS53 cF9kZWxldGVkKSAKICAgICAgICAgICAga2RiX3ByaW50X3dwX2luZm8oIiIsIGkpOwp9CgovKiAK ICogRGlzcGxheSBvciBTZXQgaGFyZHdhcmUgYnJlYWtwb2ludHMsIGllLCB3YXRjaHBvaW50czoK ICogICAtIFVwdG8gNCBhcmUgYWxsb3dlZAogKiAgIAogKiAgcndfZmxhZyBzaG91bGQgYmUgb25l IG9mOiAKICogICAgIDAxID09IGJyZWFrIG9uIGRhdGEgd3JpdGUgb25seQogKiAgICAgMTAgPT0g YnJlYWsgb24gSU8gcmVhZC93cml0ZQogKiAgICAgMTEgPT0gQnJlYWsgb24gZGF0YSByZWFkcyBv ciB3cml0ZXMKICoKICogIGxlbiBzaG91bGQgYmUgb25lIG9mIDogMSAyIDQgOCAKICovCnZvaWQK a2RiX2RvX3dhdGNocG9pbnRzKGtkYnZhX3QgYWRkciwgaW50IHJ3X2ZsYWcsIGludCBsZW4pCnsK ICAgIGlmIChhZGRyID09IDApIHsKICAgICAgICBrZGJfZGlzcGxheV93cHMoKTsgICAgICAgIC8q IGRpc3BsYXkgc2V0IHdhdGNocG9pbnRzICovCiAgICAgICAgcmV0dXJuOwogICAgfQogICAga2Ri X3NldF93cChhZGRyLCByd19mbGFnLCBsZW4pOwogICAgcmV0dXJuOwp9CgoAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrZGIveDg2L01ha2VmaWxlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY2NAAwMDAyNzU2ADAwMDI3NTYAMDAwMDAwMDAwNTUA MTE3NjU0NjU1NTYAMDEzNjYxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtcmF0aG9yAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApvYmoteSAgICA6PSBrZGJfd3Aubwpz dWJkaXIteSArPSB1ZGlzODYtMS43CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2RiL2tkYl9jbWRzLmMAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NjQAMDAwMjc1NgAwMDAyNzU2ADAwMDAwMzU1NTcyADEy MDE3NTAzNzExADAxMzUwMAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB1c3RhciAgAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbXJhdGhvcgAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKgogKiBDb3B5cmlnaHQgKEMpIDIwMDks IE11a2VzaCBSYXRob3IsIE9yYWNsZSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMKICogTGljZW5zZSB2MiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlCiAqIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAogKiBCb3N0b24sIE1BIDAy MTExMC0xMzA3LCBVU0EuCiAqLwoKI2luY2x1ZGUgImluY2x1ZGUva2RiaW5jLmgiCgojaWYgZGVm aW5lZChfX3g4Nl82NF9fKQogICAgI2RlZmluZSBLREJGNjQgIiVseCIKICAgICNkZWZpbmUgS0RC RkwgIiUwMTZseCIgICAgICAgICAvKiBwcmludCBsb25nIGFsbCBkaWdpdHMgKi8KI2Vsc2UKICAg ICNkZWZpbmUgS0RCRjY0ICIlbGx4IgogICAgI2RlZmluZSBLREJGTCAiJTA4bHgiCiNlbmRpZgoK I2lmIFhFTl9TVUJWRVJTSU9OID4gNCB8fCBYRU5fVkVSU0lPTiA9PSA0ICAgICAgICAgICAgICAv KiB4ZW4gMy41Lnggb3IgYWJvdmUgKi8KICAgICNkZWZpbmUgS0RCX0xLREVGKGwpICgobCkucmF3 LmxvY2spCiAgICAjZGVmaW5lIEtEQl9QR0xMRSh0KSAoKHQpLnRhaWwpICAgIC8qIHBhZ2UgbGlz dCBsYXN0IGVsZW1lbnQgXiUkI0AgKi8KI2Vsc2UKICAgICNkZWZpbmUgS0RCX0xLREVGKGwpICgo bCkubG9jaykKICAgICNkZWZpbmUgS0RCX1BHTExFKHQpICgodCkucHJldikgICAgLyogcGFnZSBs aXN0IGxhc3QgZWxlbWVudCBeJSQjQCAqLwojZW5kaWYKCiNkZWZpbmUgS0RCX0NNRF9ISVNUT1JZ X0NPVU5UICAgMzIKI2RlZmluZSBDTURfQlVGTEVOICAgICAgICAgICAgICAyMDAgICAgIC8qIGtk Yl9wcmludGY6IG1heCBwcmludGxpbmUgPT0gMjU2ICovCgojZGVmaW5lIEtEQk1BWFNCUCAxNiAg ICAgICAgICAgICAgICAgICAgLyogbWF4IG51bWJlciBvZiBzb2Z0d2FyZSBicmVha3BvaW50cyAq LwojZGVmaW5lIEtEQl9NQVhBUkdDIDE2ICAgICAgICAgICAgICAgICAgLyogbWF4IGFyZ3MgaW4g YSBrZGIgY29tbWFuZCAqLwojZGVmaW5lIEtEQl9NQVhCVFAgIDggICAgICAgICAgICAgICAgICAg LyogbWF4IGRpc3BsYXkgYXJncyBpbiBidHAgKi8KCi8qIGNvbmRpdGlvbiBpczogJ3I2ID09IDB4 MTIzZicgb3IgJzB4ZmZmZmZmZmY4MjgwMDAwMCAhPSBkZWFkYmVlZicgICovCnN0cnVjdCBrZGJf YnBjb25kIHsKICAgIGtkYmJ5dF90IGJwX2NvbmRfc3RhdHVzOyAgICAgICAvKiAwID09IG9mZiwg MSA9PSByZWdpc3RlciwgMiA9PSBtZW1vcnkgKi8KICAgIGtkYmJ5dF90IGJwX2NvbmRfdHlwZTsg ICAgICAgICAvKiAwID09IGJhZCwgMSA9PSBlcXVhbCwgMiA9PSBub3QgZXF1YWwgKi8KICAgIHVs b25nICAgIGJwX2NvbmRfbGhzOyAgICAgICAgICAvKiBsaHMgb2YgY29uZGl0aW9uOiByZWcgb2Zm c2V0IG9yIG1lbSBsb2MgKi8KICAgIHVsb25nICAgIGJwX2NvbmRfcmhzOyAgICAgICAgICAvKiBy aWdodCBoYW5kIHNpZGUgb2YgY29uZGl0aW9uICovCn07CgovKiBzb2Z0d2FyZSBicmVha3BvaW50 IHN0cnVjdHVyZSAqLwpzdHJ1Y3Qga2RiX3NicmtwdCB7CiAgICBrZGJ2YV90ICBicF9hZGRyOyAg ICAgICAgICAgICAgLyogYWRkcmVzcyB0aGUgYnAgaXMgc2V0IGF0ICovCiAgICBkb21pZF90ICBi cF9kb21pZDsgICAgICAgICAgICAgLyogd2hpY2ggZG9tYWluIHRoZSBicCBiZWxvbmdzIHRvICov CiAgICBrZGJieXRfdCBicF9vcmlnaW5zdDsgICAgICAgICAgLyogc2F2ZSBvcmlnIGluc3RyL3Mg aGVyZSAqLwogICAga2RiYnl0X3QgYnBfZGVsZXRlZDsgICAgICAgICAgIC8qIGRlbGV0ZSBwZW5k aW5nIG9uIHRoaXMgYnAgKi8KICAgIGtkYmJ5dF90IGJwX25pOyAgICAgICAgICAgICAgICAvKiBz ZXQgZm9yIEtEQl9DUFVfTkkgKi8KICAgIGtkYmJ5dF90IGJwX2p1c3RfYWRkZWQ7ICAgICAgICAv KiBhZGRlZCBpbiB0aGUgY3VycmVudCBrZGIgc2Vzc2lvbiAqLwogICAga2RiYnl0X3QgYnBfdHlw ZTsgICAgICAgICAgICAgIC8qIDAgPSBub3JtYWwsIDEgPT0gY29uZCwgIDIgPT0gYnRwICovCiAg ICB1bmlvbiB7CiAgICAgICAgc3RydWN0IGtkYl9icGNvbmQgYnBfY29uZDsKICAgICAgICB1bG9u ZyAqYnBfYnRwOwogICAgfSB1Owp9OwoKLyogZG9uJ3QgdXNlIGttYWxsb2MgaW4ga2RiIHdoaWNo IGhpamFja3MgYWxsIGNwdXMgKi8Kc3RhdGljIHVsb25nIGtkYl9idHBfYXJnc2FbS0RCTUFYU0JQ XVtLREJfTUFYQlRQXTsKc3RhdGljIHVsb25nICprZGJfYnRwX2FwW0tEQk1BWFNCUF07CgpzdGF0 aWMgc3RydWN0IGtkYl9yZWdfbm1vZnMgewogICAgY2hhciAqcmVnX25tOwogICAgaW50IHJlZ19v ZmZzOwp9IGtkYl9yZWdfbm1fb2Zmc1tdID0gIHsKICAgICAgIHsgInJheCIsIG9mZnNldG9mKHN0 cnVjdCBjcHVfdXNlcl9yZWdzLCByYXgpIH0sCiAgICAgICB7ICJyYngiLCBvZmZzZXRvZihzdHJ1 Y3QgY3B1X3VzZXJfcmVncywgcmJ4KSB9LAogICAgICAgeyAicmN4Iiwgb2Zmc2V0b2Yoc3RydWN0 IGNwdV91c2VyX3JlZ3MsIHJjeCkgfSwKICAgICAgIHsgInJkeCIsIG9mZnNldG9mKHN0cnVjdCBj cHVfdXNlcl9yZWdzLCByZHgpIH0sCiAgICAgICB7ICJyc2kiLCBvZmZzZXRvZihzdHJ1Y3QgY3B1 X3VzZXJfcmVncywgcnNpKSB9LAogICAgICAgeyAicmRpIiwgb2Zmc2V0b2Yoc3RydWN0IGNwdV91 c2VyX3JlZ3MsIHJkaSkgfSwKICAgICAgIHsgInJicCIsIG9mZnNldG9mKHN0cnVjdCBjcHVfdXNl cl9yZWdzLCByYnApIH0sCiAgICAgICB7ICJyc3AiLCBvZmZzZXRvZihzdHJ1Y3QgY3B1X3VzZXJf cmVncywgcnNwKSB9LAogICAgICAgeyAicjgiLCAgb2Zmc2V0b2Yoc3RydWN0IGNwdV91c2VyX3Jl Z3MsIHI4KSB9LAogICAgICAgeyAicjkiLCAgb2Zmc2V0b2Yoc3RydWN0IGNwdV91c2VyX3JlZ3Ms IHI5KSB9LAogICAgICAgeyAicjEwIiwgb2Zmc2V0b2Yoc3RydWN0IGNwdV91c2VyX3JlZ3MsIHIx MCkgfSwKICAgICAgIHsgInIxMSIsIG9mZnNldG9mKHN0cnVjdCBjcHVfdXNlcl9yZWdzLCByMTEp IH0sCiAgICAgICB7ICJyMTIiLCBvZmZzZXRvZihzdHJ1Y3QgY3B1X3VzZXJfcmVncywgcjEyKSB9 LAogICAgICAgeyAicjEzIiwgb2Zmc2V0b2Yoc3RydWN0IGNwdV91c2VyX3JlZ3MsIHIxMykgfSwK ICAgICAgIHsgInIxNCIsIG9mZnNldG9mKHN0cnVjdCBjcHVfdXNlcl9yZWdzLCByMTQpIH0sCiAg ICAgICB7ICJyMTUiLCBvZmZzZXRvZihzdHJ1Y3QgY3B1X3VzZXJfcmVncywgcjE1KSB9LAogICAg ICAgeyAicmZsYWdzIiwgb2Zmc2V0b2Yoc3RydWN0IGNwdV91c2VyX3JlZ3MsIHJmbGFncykgfSB9 OwoKc3RhdGljIGNvbnN0IGludCBLREJCUFNaPTE7ICAgICAgICAgICAgICAgICAgIC8qIHNpemUg b2YgS0RCX0JQSU5TVCBpcyAxIGJ5dGUqLwpzdGF0aWMga2RiYnl0X3Qga2RiX2JwaW5zdCA9IDB4 Y2M7ICAgICAgICAgICAgLyogYnJlYWtwb2ludCBpbnN0cjogSU5UMyAqLwpzdGF0aWMgc3RydWN0 IGtkYl9zYnJrcHQga2RiX3NicGFbS0RCTUFYU0JQXTsgLyogc29mdCBicmtwdCBhcnJheS90YWJs ZSAqLwpzdGF0aWMga2RidGFiX3QgKnRicDsKCnN0YXRpYyBpbnQga2RiX3NldF9icChkb21pZF90 LCBrZGJ2YV90LCBpbnQsIHVsb25nICosIGNoYXIqLCBjaGFyKiwgY2hhciopOwpzdGF0aWMgdm9p ZCBrZGJfcHJpbnRfdXJlZ3Moc3RydWN0IGNwdV91c2VyX3JlZ3MgKik7CgoKLyogPT09PT09PT09 PT09PT09PT09PT09IGNtZGxpbmUgZnVuY3Rpb25zICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PSAqLwoKLyogbHAgcG9pbnRzIHRvIGEgc3RyaW5nIG9mIG9ubHkgYWxwaGEgbnVtZXJp YyBjaGFycyB0ZXJtaW5hdGVkIGJ5ICdcbicuCiAqIFBhcnNlIHRoZSBzdHJpbmcgaW50byBhcmd2 IHBvaW50ZXJzLCBhbmQgUkVUVVJOIGFyZ2MKICogRWc6ICBpZiBscCAtLT4gImRyICBzcFxuIiA6 ICBhcmd2WzBdPT0iZHJcMCIgIGFyZ3ZbMV09PSJzcFwwIiAgYXJnYz09MgogKi8Kc3RhdGljIGlu dAprZGJfcGFyc2VfY21kbGluZShjaGFyICpscCwgY29uc3QgY2hhciAqKmFyZ3YpCnsKICAgIGlu dCBpPTA7CgogICAgZm9yICg7ICpscCA9PSAnICc7IGxwKyspOyAgICAgIC8qIG5vdGU6IGlzc3Bh Y2UoKSBza2lwcyAnXG4nIGFsc28gKi8KICAgIHdoaWxlICggKmxwICE9ICdcbicgKSB7CiAgICAg ICAgaWYgKGkgPT0gS0RCX01BWEFSR0MpIHsKICAgICAgICAgICAgcHJpbnRrKCJrZGI6IG1heCBh cmdzIGV4Y2VlZGVkXG4iKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGFy Z3ZbaSsrXSA9IGxwOwogICAgICAgIGZvciAoOyAqbHAgIT0gJyAnICYmICpscCAhPSAnXG4nOyBs cCsrKTsKICAgICAgICBpZiAoKmxwICE9ICdcbicpCiAgICAgICAgICAgICpscCsrID0gJ1wwJzsK ICAgICAgICBmb3IgKDsgKmxwID09ICcgJzsgbHArKyk7CiAgICB9CiAgICAqbHAgPSAnXDAnOwog ICAgcmV0dXJuIGk7Cn0KCnZvaWQKa2RiX2NsZWFyX3ByZXZfY21kKCkgICAgICAgICAgICAgLyog c28gcHJldmlvdXMgY29tbWFuZCBpcyBub3QgcmVwZWF0ZWQgKi8KewogICAgdGJwID0gTlVMTDsK fQoKdm9pZAprZGJfZG9fY21kcyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgY2hh ciAqY21kbGluZXA7CiAgICBjb25zdCBjaGFyICphcmd2W0tEQl9NQVhBUkdDXTsKICAgIGludCBh cmdjID0gMCwgY3VyY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogICAga2RiX2NwdV9jbWRfdCBy ZXN1bHQgPSBLREJfQ1BVX01BSU5fS0RCOwoKICAgIHNucHJpbnRmKGtkYl9wcm9tcHQsIHNpemVv ZihrZGJfcHJvbXB0KSwgIlslZF14a2RiPiAiLCBjdXJjcHUpOwoKICAgIHdoaWxlIChyZXN1bHQg PT0gS0RCX0NQVV9NQUlOX0tEQikgewogICAgICAgIGNtZGxpbmVwID0ga2RiX2dldF9jbWRsaW5l KGtkYl9wcm9tcHQpOwogICAgICAgIGlmICgqY21kbGluZXAgPT0gJ1xuJykgewogICAgICAgICAg ICBpZiAodGJwPT1OVUxMIHx8IHRicC0+a2RiX2NtZF9mdW5jPT1OVUxMKQogICAgICAgICAgICAg ICAgY29udGludWU7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGFyZ2MgPSAtMTsg ICAgLyogcmVwZWF0IHByZXYgY29tbWFuZCAqLwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg IGFyZ2MgPSBrZGJfcGFyc2VfY21kbGluZShjbWRsaW5lcCwgYXJndik7CiAgICAgICAgICAgIGZv cih0YnA9a2RiX2NtZF90Ymw7IHRicC0+a2RiX2NtZF9mdW5jOyB0YnArKykgIHsKICAgICAgICAg ICAgICAgIGlmIChzdHJjbXAoYXJndlswXSwgdGJwLT5rZGJfY21kX25hbWUpPT0wKSAKICAgICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAo a2RiX3N5c19jcmFzaCAmJiB0YnAtPmtkYl9jbWRfZnVuYyAmJiAhdGJwLT5rZGJfY21kX2NyYXNo X2F2YWlsKSB7CiAgICAgICAgICAgIGtkYnAoImNtZCBub3QgYXZhaWxhYmxlIGluIGZhdGFsL2Ny YXNoZWQgc3RhdGUuLi4uXG4iKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAg ICAgIGlmICh0YnAtPmtkYl9jbWRfZnVuYykgewogICAgICAgICAgICByZXN1bHQgPSAoKnRicC0+ a2RiX2NtZF9mdW5jKShhcmdjLCBhcmd2LCByZWdzKTsKICAgICAgICAgICAgaWYgKHRicC0+a2Ri X2NtZF9yZXBlYXQgPT0gS0RCX1JFUEVBVF9OT05FKQogICAgICAgICAgICAgICAgdGJwID0gTlVM TDsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAga2RicCgia2RiOiBVbmtub3duIGNtZDogJXNc biIsIGNtZGxpbmVwKTsKICAgIH0KICAgIGtkYl9jcHVfY21kW2N1cmNwdV0gPSByZXN1bHQ7CiAg ICByZXR1cm47Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PSBVdGlsIGZ1bmN0aW9ucyAgPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgppbnQKa2RiX3ZjcHVfdmFsaWQo c3RydWN0IHZjcHUgKmluX3ZwKQp7CiAgICBzdHJ1Y3QgZG9tYWluICpkcDsKICAgIHN0cnVjdCB2 Y3B1ICp2cDsKCiAgICBmb3IoZHA9ZG9tYWluX2xpc3Q7IGluX3ZwICYmIGRwOyBkcD1kcC0+bmV4 dF9pbl9saXN0KQogICAgICAgIGZvcl9lYWNoX3ZjcHUoZHAsIHZwKQogICAgICAgICAgICBpZiAo aW5fdnAgPT0gdnApCiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgIHJldHVybiAwOyAgICAg Lyogbm90IGZvdW5kICovCn0KCi8qCiAqIEdpdmVuIGEgc3ltYm9sLCBmaW5kIGl0J3MgYWRkcmVz cwogKi8Kc3RhdGljIGtkYnZhX3QKa2RiX3N5bTJhZGRyKGNvbnN0IGNoYXIgKnAsIGRvbWlkX3Qg ZG9taWQpCnsKICAgIGtkYnZhX3QgYWRkcjsKCiAgICBLREJHUDEoInN5bTJhZGRyOiBwOiVzIGRv bWlkOiVkXG4iLCBwLCBkb21pZCk7CiAgICBpZiAoZG9taWQgPT0gRE9NSURfSURMRSkKICAgICAg ICBhZGRyID0gYWRkcmVzc19sb29rdXAoKGNoYXIgKilwKTsKICAgIGVsc2UKICAgICAgICBhZGRy ID0gKGtkYnZhX3Qpa2RiX2d1ZXN0X3N5bTJhZGRyKChjaGFyICopcCwgZG9taWQpOwogICAgS0RC R1AxKCJzeW0yYWRkcjogZXhpdDogYWRkciByZXR1cm5lZDoweCVseFxuIiwgYWRkcik7CiAgICBy ZXR1cm4gYWRkcjsKfQoKLyoKICogY29udmVydCBhc2NpaSB0byBpbnQgZGVjaW1hbCAoYmFzZSAx MCkuIAogKiBSZXR1cm46IDAgOiBmYWlsZWQgdG8gY29udmVydCwgb3RoZXJ3aXNlIDEgCiAqLwpz dGF0aWMgaW50CmtkYl9zdHIyZGVjaShjb25zdCBjaGFyICpzdHJwLCBpbnQgKmludHApCnsKICAg IGNvbnN0IGNoYXIgKmVuZHA7CgogICAgS0RCR1AyKCJzdHIyZGVjaTogc3RyOiVzXG4iLCBzdHJw KTsKICAgIGlmICghaXNkaWdpdCgqc3RycCkpCiAgICAgICAgcmV0dXJuIDA7CiAgICAqaW50cCA9 IChpbnQpc2ltcGxlX3N0cnRvdWwoc3RycCwgJmVuZHAsIDEwKTsKICAgIGlmIChlbmRwICE9IHN0 cnArc3RybGVuKHN0cnApKQogICAgICAgIHJldHVybiAwOwogICAgS0RCR1AyKCJzdHIyZGVjaTog aW50dmFsOiQlZFxuIiwgKmludHApOwogICAgcmV0dXJuIDE7Cn0KLyoKICogY29udmVydCBhc2Np aSB0byBsb25nLiBOT1RFOiBiYXNlIGlzIDE2CiAqIFJldHVybjogMCA6IGZhaWxlZCB0byBjb252 ZXJ0LCBvdGhlcndpc2UgMSAKICovCnN0YXRpYyBpbnQKa2RiX3N0cjJ1bG9uZyhjb25zdCBjaGFy ICpzdHJwLCB1bG9uZyAqbG9uZ3ApCnsKICAgIHVsb25nIHZhbDsKICAgIGNvbnN0IGNoYXIgKmVu ZHA7CgogICAgS0RCR1AyKCJzdHIybG9uZzogc3RyOiVzXG4iLCBzdHJwKTsKICAgIGlmICghaXN4 ZGlnaXQoKnN0cnApKQogICAgICAgIHJldHVybiAwOwogICAgdmFsID0gKGxvbmcpc2ltcGxlX3N0 cnRvdWwoc3RycCwgJmVuZHAsIDE2KTsgICAvKiBoYW5kbGVzIGxlYWRpbmcgMHggKi8KICAgIGlm IChlbmRwICE9IHN0cnArc3RybGVuKHN0cnApKQogICAgICAgIHJldHVybiAwOwogICAgaWYgKGxv bmdwKQogICAgICAgICpsb25ncCA9IHZhbDsKICAgIEtEQkdQMigic3RyMmxvbmc6IHZhbDoweCVs eFxuIiwgdmFsKTsKICAgIHJldHVybiAxOwp9Ci8qCiAqIGNvbnZlcnQgYSBzeW1ib2wgb3IgYXNj aWkgYWRkcmVzcyB0byBoZXggYWRkcmVzcwogKiBSZXR1cm46IDAgOiBmYWlsZWQgdG8gY29udmVy dCwgb3RoZXJ3aXNlIDEgCiAqLwpzdGF0aWMgaW50CmtkYl9zdHIyYWRkcihjb25zdCBjaGFyICpz dHJwLCBrZGJ2YV90ICphZGRycCwgZG9taWRfdCBpZCkKewogICAga2RidmFfdCBhZGRyOwogICAg Y29uc3QgY2hhciAqZW5kcDsKCiAgICAvKiBhc3N1bWUgaXQncyBhbiBhZGRyZXNzICovCiAgICBL REJHUDIoInN0cjJhZGRyOiBzdHI6JXMgaWQ6JWRcbiIsIHN0cnAsIGlkKTsKICAgIGFkZHIgPSAo a2RidmFfdClzaW1wbGVfc3RydG91bChzdHJwLCAmZW5kcCwgMTYpOyAvKmhhbmRsZXMgbGVhZGlu ZyAweCAqLwogICAgaWYgKGVuZHAgIT0gc3RycCtzdHJsZW4oc3RycCkpCiAgICAgICAgaWYgKCAh KGFkZHI9a2RiX3N5bTJhZGRyKHN0cnAsIGlkKSkgKQogICAgICAgICAgICByZXR1cm4gMDsKICAg ICphZGRycCA9IGFkZHI7CiAgICBLREJHUDIoInN0cjJhZGRyOiBhZGRyOjB4JWx4XG4iLCBhZGRy KTsKICAgIHJldHVybiAxOwp9CgovKiBHaXZlbiBkb21pZCwgcmV0dXJuIHB0ciB0byBzdHJ1Y3Qg ZG9tYWluIAogKiBJRiBkb21pZCA9PSBET01JRF9JRExFIHJldHVybiBwdHIgdG8gaWRsZV9kb21h aW4gCiAqIElGIGRvbWlkID09IHZhbGlkIGRvbWFpbiwgcmV0dXJuIHB0ciB0byBkb21haW4gc3Ry dWN0CiAqIGVsc2UgZG9taWQgaXMgYmFkIGFuZCByZXR1cm4gTlVMTAogKi8Kc3RhdGljIHN0cnVj dCBkb21haW4gKgprZGJfZG9taWQycHRyKGRvbWlkX3QgZG9taWQpCnsKICAgIHN0cnVjdCBkb21h aW4gKmRwOwoKICAgIC8qIGdldF9kb21haW5fYnlfaWQoKSByZXQgTlVMTCBmb3IgYm90aCBET01J RF9JRExFIGFuZCBiYWQgZG9taWRzICovCiAgICBpZiAoZG9taWQgPT0gRE9NSURfSURMRSkKICAg ICAgICBkcCA9IGlkbGVfdmNwdVtzbXBfcHJvY2Vzc29yX2lkKCldLT5kb21haW47CiAgICBlbHNl IAogICAgICAgIGRwID0gZ2V0X2RvbWFpbl9ieV9pZChkb21pZCk7ICAgLyogTlVMTCBub3cgbWVh bnMgYmFkIGRvbWlkICovCiAgICByZXR1cm4gZHA7Cn0KCi8qCiAqIFJldHVybnM6ICAwOiBmYWls ZWQuIGludmFsaWQgZG9taWQgb3Igc3RyaW5nLCAqaWRwIG5vdCBjaGFuZ2VkLgogKi8Kc3RhdGlj IGludAprZGJfc3RyMmRvbWlkKGNvbnN0IGNoYXIgKmRvbXN0ciwgZG9taWRfdCAqaWRwLCBpbnQg cGVycikKewogICAgaW50IGlkOwogICAgaWYgKCFrZGJfc3RyMmRlY2koZG9tc3RyLCAmaWQpIHx8 ICFrZGJfZG9taWQycHRyKChkb21pZF90KWlkKSkgewogICAgICAgIGlmIChwZXJyKQogICAgICAg ICAgICBrZGJwKCJJbnZhbGlkIGRvbWlkOiVzXG4iLCBkb21zdHIpOwogICAgICAgIHJldHVybiAw OwogICAgfQogICAgKmlkcCA9IChkb21pZF90KWlkOwogICAgcmV0dXJuIDE7Cn0KCnN0YXRpYyBz dHJ1Y3QgZG9tYWluICoKa2RiX3N0cmRvbWlkMnB0cihjb25zdCBjaGFyICpkb21zdHIsIGludCBw ZXJyb3IpCnsKICAgIGRvbWlkX3QgZG9taWQ7CiAgICBpZiAoa2RiX3N0cjJkb21pZChkb21zdHIs ICZkb21pZCwgcGVycm9yKSkgewogICAgICAgIHJldHVybihrZGJfZG9taWQycHRyKGRvbWlkKSk7 CiAgICB9CiAgICByZXR1cm4gTlVMTDsKfQoKLyogcmV0dXJuIGEgZ3Vlc3QgYml0bmVzczogMzIg b3IgNjQgKi8KaW50CmtkYl9ndWVzdF9iaXRuZXNzKGRvbWlkX3QgZG9taWQpCnsKICAgIGNvbnN0 IGludCBIWVBTWiA9IHNpemVvZihsb25nKSAqIDg7CiAgICBzdHJ1Y3QgZG9tYWluICpkcCA9IGtk Yl9kb21pZDJwdHIoZG9taWQpOwogICAgaW50IHJldHZhbDsgCgogICAgaWYgKGlzX2lkbGVfZG9t YWluKGRwKSkKICAgICAgICByZXR2YWwgPSBIWVBTWjsKICAgIGVsc2UgaWYgKGlzX2h2bV9vcl9o eWJfZG9tYWluKGRwKSkKICAgICAgICByZXR2YWwgPSAoaHZtX2xvbmdfbW9kZV9lbmFibGVkKGRw LT52Y3B1WzBdKSkgPyBIWVBTWiA6IDMyOwogICAgZWxzZSAKICAgICAgICByZXR2YWwgPSBpc19w dl8zMmJpdF9kb21haW4oZHApID8gMzIgOiBIWVBTWjsKICAgIEtEQkdQMSgiZ2JpdG5lc3M6IGRv bWlkOiVkIGRwOiVwIGJpdG5lc3M6JWRcbiIsIGRvbWlkLCBkcCwgcmV0dmFsKTsKICAgIHJldHVy biByZXR2YWw7Cn0KCi8qIGtkYl9wcmludF9zcGluX2xvY2soJnh5el9sb2NrLCAieHl6X2xvY2s6 IiwgIlxuIik7ICovCnN0YXRpYyB2b2lkCmtkYl9wcmludF9zcGluX2xvY2soY2hhciAqc3RycCwg c3BpbmxvY2tfdCAqbGtwLCBjaGFyICpubHApCnsKICAgIGtkYnAoIiVzICUwNGh4ICVkICVkJXMi LCBzdHJwLCBLREJfTEtERUYoKmxrcCksIGxrcC0+cmVjdXJzZV9jcHUsCiAgICAgICAgIGxrcC0+ cmVjdXJzZV9jbnQsIG5scCk7Cn0KCi8qIGNoZWNrIGlmIHJlZ2lzdGVyIHN0cmluZyBpcyB2YWxp ZC4gaWYgeWVzLCByZXR1cm4gb2Zmc2V0IHRvIHRoZSByZWdpc3RlcgogKiBpbiBjcHVfdXNlcl9y ZWdzLCBlbHNlIHJldHVybiAtMSAqLwpzdGF0aWMgaW50CmtkYl92YWxpZF9yZWcoY29uc3QgY2hh ciAqbm1wKSAKewogICAgaW50IGk7CiAgICBmb3IgKGk9MDsgaSA8IHNpemVvZihrZGJfcmVnX25t X29mZnMpL3NpemVvZihrZGJfcmVnX25tX29mZnNbMF0pOyBpKyspCiAgICAgICAgaWYgKHN0cmNt cChrZGJfcmVnX25tX29mZnNbaV0ucmVnX25tLCBubXApID09IDApCiAgICAgICAgICAgIHJldHVy biBrZGJfcmVnX25tX29mZnNbaV0ucmVnX29mZnM7CiAgICByZXR1cm4gLTE7Cn0KCi8qIGdpdmVu IG9mZnNldCBvZiByZWdpc3RlciwgcmV0dXJuIHJlZ2lzdGVyIG5hbWUgc3RyaW5nLiBpZiBvZmZz ZXQgaXMgaW52YWxpZAogKiByZXR1cm4gTlVMTCAqLwpzdGF0aWMgY2hhciAqa2RiX3JlZ29mZnNf dG9fbmFtZShpbnQgb2ZmcykKewogICAgaW50IGk7CiAgICBmb3IgKGk9MDsgaSA8IHNpemVvZihr ZGJfcmVnX25tX29mZnMpL3NpemVvZihrZGJfcmVnX25tX29mZnNbMF0pOyBpKyspCiAgICAgICAg aWYgKGtkYl9yZWdfbm1fb2Zmc1tpXS5yZWdfb2ZmcyA9PSBvZmZzKQogICAgICAgICAgICByZXR1 cm4ga2RiX3JlZ19ubV9vZmZzW2ldLnJlZ19ubTsKICAgIHJldHVybiBOVUxMOwp9CgovKiA9PT09 PT09PT09PT09PT09PT09PT0gdXRpbCBzdHJ1Y3QgZnVuY3MgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ICovCnN0YXRpYyB2b2lkCmtkYl9wcm50X3RpbWVyKHN0cnVjdCB0aW1lciAq dHApCnsKI2lmIFhFTl9TVUJWRVJTSU9OID09IDAgCiAgICBrZGJwKCIgZXhwaXJlczolMDE2bHgg ZXhwaXJlc19lbmQ6JTAxNmx4IGNwdTolZCBzdGF0dXM6JXhcbiIsIHRwLT5leHBpcmVzLCAKICAg ICAgICAgdHAtPmV4cGlyZXNfZW5kLCB0cC0+Y3B1LCB0cC0+c3RhdHVzKTsKI2Vsc2UKICAgIGtk YnAoIiBleHBpcmVzOiUwMTZseCBjcHU6JWQgc3RhdHVzOiV4XG4iLCB0cC0+ZXhwaXJlcywgdHAt PmNwdSx0cC0+c3RhdHVzKTsKI2VuZGlmCiAgICBrZGJwKCIgZnVuY3Rpb24gZGF0YTolcCBwdHI6 JXAgIiwgdHAtPmRhdGEsIHRwLT5mdW5jdGlvbik7CiAgICBrZGJfcHJudF9hZGRyMnN5bShET01J RF9JRExFLCAoa2RidmFfdCl0cC0+ZnVuY3Rpb24sICJcbiIpOwp9CgpzdGF0aWMgdm9pZCAKa2Ri X3BybnRfcGVyaW9kaWNfdGltZShzdHJ1Y3QgcGVyaW9kaWNfdGltZSAqcHRwKQp7CiAgICBrZGJw KCIgbmV4dDolcCBwcmV2OiVwXG4iLCBwdHAtPmxpc3QubmV4dCwgcHRwLT5saXN0LnByZXYpOwog ICAga2RicCgiIG9uX2xpc3Q6JWQgb25lX3Nob3Q6JWQgZG9udF9mcmVlemU6JWQgaXJxX2lzc3Vl ZDolZCBzcmM6JXggaXJxOiV4XG4iLAogICAgICAgICBwdHAtPm9uX2xpc3QsIHB0cC0+b25lX3No b3QsIHB0cC0+ZG9fbm90X2ZyZWV6ZSwgcHRwLT5pcnFfaXNzdWVkLAogICAgICAgICBwdHAtPnNv dXJjZSwgcHRwLT5pcnEpOwogICAga2RicCgiIHZjcHU6JXAgcGVuZGluZ19pbnRyX25yOiUwOHgg cGVyaW9kOiUwMTZseFxuIiwgcHRwLT52Y3B1LAogICAgICAgICBwdHAtPnBlbmRpbmdfaW50cl9u ciwgcHRwLT5wZXJpb2QpOwogICAga2RicCgiIHNjaGVkdWxlZDolMDE2bHggbGFzdF9wbHRfZ3Rp bWU6JTAxNmx4XG4iLCBwdHAtPnNjaGVkdWxlZCwKICAgICAgICAgcHRwLT5sYXN0X3BsdF9ndGlt ZSk7CiAgICBrZGJwKCIgXG4gICAgICAgICAgdGltZXIgaW5mbzpcbiIpOwogICAga2RiX3BybnRf dGltZXIoJnB0cC0+dGltZXIpOwogICAga2RicCgiXG4iKTsKfQoKLyogPT09PT09PT09PT09PT09 PT09PT09IGNtZCBmdW5jdGlvbnMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSAqLwoKLyoKICogRlVOQ1RJT046IERpc2Fzc2VtYmxlIGluc3RydWN0aW9ucwogKi8Kc3RhdGlj IGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfZGlzKHZvaWQpCnsKICAgIGtkYnAoImRpcyBbYWRkcnxz eW1dW251bV1bZG9taWRdIDogRGlzYXNzZW1ibGUgaW5zdHJzXG4iKTsKICAgIHJldHVybiBLREJf Q1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90IAprZGJfY21kZl9kaXMoaW50IGFy Z2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAg aW50IG51bSA9IDg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZGlzcGxheSA4IGluc3Ry IGJ5IGRlZmF1bHQgKi8KICAgIHN0YXRpYyBrZGJ2YV90IGFkZHIgPSBCRkRfSU5WQUw7CiAgICBz dGF0aWMgZG9taWRfdCBkb21pZDsKCiAgICBpZiAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0gJz8n KQogICAgICAgIHJldHVybiBrZGJfdXNnZl9kaXMoKTsKCiAgICBpZiAoYXJnYyAhPSAtMSkgICAg ICAvKiBub3QgYSBjb21tYW5kIHJlcGVhdCAqLwogICAgICAgIGRvbWlkID0gZ3Vlc3RfbW9kZShy ZWdzKSA/ICBjdXJyZW50LT5kb21haW4tPmRvbWFpbl9pZCA6IERPTUlEX0lETEU7CgogICAgaWYg KGFyZ2MgPj0gNCAmJiAha2RiX3N0cjJkb21pZChhcmd2WzNdLCAmZG9taWQsIDEpKSB7IAogICAg ICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfSAKICAgIGlmIChhcmdjID49IDMgJiYg IWtkYl9zdHIyZGVjaShhcmd2WzJdLCAmbnVtKSkgewogICAgICAgIGtkYnAoImtkYjpJbnZhbGlk IG51bVxuIik7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICB9IAogICAgaWYg KGFyZ2MgPiAxICYmICFrZGJfc3RyMmFkZHIoYXJndlsxXSwgJmFkZHIsIGRvbWlkKSkgewogICAg ICAgIGtkYnAoImtkYjpJbnZhbGlkIGFkZHIvc3ltXG4iKTsKICAgICAgICBrZGJwKCIobnVtIGhh cyB0byBiZSBzcGVjaWZpZWQgaWYgcHJvdmlkaW5nIGRvbWlkKVxuIik7CiAgICAgICAgcmV0dXJu IEtEQl9DUFVfTUFJTl9LREI7CiAgICB9IAogICAgaWYgKGFyZ2MgPT0gMSkgICAgICAgICAgICAg ICAgICAgIC8qIG5vdCBjb21tYW5kIHJlcGVhdCAqLwogICAgICAgIGFkZHIgPSByZWdzLT5LREJJ UDsgICAgICAgICAgIC8qIFBDIGlzIHRoZSBkZWZhdWx0ICovCiAgICBlbHNlIGlmIChhZGRyID09 IEJGRF9JTlZBTCkgewogICAgICAgIGtkYnAoImtkYjpJbnZhbGlkIGFkZHIvc3ltXG4iKTsKICAg ICAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KICAgIGFkZHIgPSBrZGJfcHJpbnRf aW5zdHIoYWRkciwgbnVtLCBkb21pZCk7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoK LyogRlVOQ1RJT046IGtkYl9jbWRmX2Rpc20oKSBUb2dnbGUgZGlzYXNzZW1ibHkgc3ludGF4IGZy b20gSW50ZWwgdG8gQVRUL0dBUyAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl9kaXNt KHZvaWQpCnsKICAgIGtkYnAoImRpc206IHRvZ2dsZSBkaXNhc3NlbWJseSBtb2RlIGJldHdlZW4g QVRUL0dBUyBhbmQgSU5URUxcbiIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3Rh dGljIGtkYl9jcHVfY21kX3QgCmtkYl9jbWRmX2Rpc20oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiph cmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgaWYgKGFyZ2MgPiAxICYmICph cmd2WzFdID09ICc/JykKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfZGlzbSgpOwoKICAgIGtkYl90 b2dnbGVfZGlzX3N5bnRheCgpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCnN0YXRp YyB2b2lkCl9rZGJfc2hvd19ndWVzdF9zdGFjayhkb21pZF90IGRvbWlkLCBrZGJ2YV90IGlwYWRk ciwga2RidmFfdCBzcGFkZHIpCnsKICAgIGtkYnZhX3QgdmFsOwogICAgaW50IG51bT0wLCBtYXg9 MCwgcmQgPSBrZGJfZ3Vlc3RfYml0bmVzcyhkb21pZCkvODsKCiAgICBrZGJfcHJpbnRfaW5zdHIo aXBhZGRyLCAxLCBkb21pZCk7CiAgICBLREJHUCgiX2d1ZXN0X3N0YWNrOnNwOiVseCBkb21pZDol ZCByZDokJWRcbiIsIHNwYWRkciwgZG9taWQsIHJkKTsKICAgIHZhbCA9IDA7ICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiBtdXN0IHplcm8sIGluIGNhc2UgZ3Vlc3QgaXMgMzJiaXQgKi8KICAg IHdoaWxlKChrZGJfcmVhZF9tZW0oc3BhZGRyLChrZGJieXRfdCAqKSZ2YWwscmQsZG9taWQpPT1y ZCkgJiYgbnVtIDwgMTYpewogICAgICAgIEtEQkdQMSgiZ3N0azphZGRyOiVseCB2YWw6JWx4XG4i LCBzcGFkZHIsIHZhbCk7CiAgICAgICAgaWYgKGtkYl9pc19hZGRyX2d1ZXN0X3RleHQodmFsLCBk b21pZCkpIHsKICAgICAgICAgICAga2RiX3ByaW50X2luc3RyKHZhbCwgMSwgZG9taWQpOwogICAg ICAgICAgICBudW0rKzsKICAgICAgICB9CiAgICAgICAgaWYgKG1heCsrID4gMTAwMDApICAgICAg ICAgICAgLyogZG9uJ3Qgd2FsayBkb3duIHRoZSBzdGFjayBmb3JldmVyICovCiAgICAgICAgICAg IGJyZWFrOyAgICAgICAgICAgICAgICAgICAgLyogMTBrIGlzIGNob3NlbiByYW5kb21seSAqLwog ICAgICAgIHNwYWRkciArPSByZDsKICAgIH0KfQoKLyogUmVhZCBndWVzdCBtZW1vcnkgYW5kIGRp c3BsYXkgYWRkcmVzcyB0aGF0IGxvb2tzIGxpa2UgdGV4dC4gKi8Kc3RhdGljIHZvaWQKa2RiX3No b3dfZ3Vlc3Rfc3RhY2soc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHN0cnVjdCB2Y3B1ICp2 Y3B1cCkKewogICAga2RidmFfdCBpcGFkZHI9cmVncy0+S0RCSVAsIHNwYWRkciA9IHJlZ3MtPktE QlNQOwogICAgZG9taWRfdCBkb21pZCA9IHZjcHVwLT5kb21haW4tPmRvbWFpbl9pZDsKCiAgICBB U1NFUlQoZG9taWQgIT0gRE9NSURfSURMRSk7CiAgICBfa2RiX3Nob3dfZ3Vlc3Rfc3RhY2soZG9t aWQsIGlwYWRkciwgc3BhZGRyKTsKfQoKLyogZGlzcGxheSBzdGFjay4gaWYgdmNwdSBwdHIgZ2l2 ZW4sIHRoZW4gZGlzcGxheSBzdGFjayBmb3IgdGhhdC4gT3RoZXJ3aXNlLAogKiB1c2UgY3VycmVu dCByZWdzICovCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX2Yodm9pZCkKewogICAga2Ri cCgiZiBbdmNwdS1wdHJdOiBkdW1wIGN1cnJlbnQvdmNwdSBzdGFja1xuIik7CiAgICByZXR1cm4g S0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdCAKa2RiX2NtZGZfZihpbnQg YXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAg ICBpZiAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJldHVybiBrZGJfdXNn Zl9mKCk7CgogICAgaWYgKGFyZ2MgPiAxICkgewogICAgICAgIHN0cnVjdCB2Y3B1ICp2cDsKICAg ICAgICBpZiAoIWtkYl9zdHIydWxvbmcoYXJndlsxXSwgKHVsb25nICopJnZwKSB8fCAha2RiX3Zj cHVfdmFsaWQodnApKSB7CiAgICAgICAgICAgIGtkYnAoImtkYjogQmFkIFZDUFUgcHRyOiVzXG4i LCBhcmd2WzFdKTsKICAgICAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICAgICAg fQogICAgICAgIGtkYl9zaG93X2d1ZXN0X3N0YWNrKCZ2cC0+YXJjaC51c2VyX3JlZ3MsIHZwKTsK ICAgICAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KICAgIGlmIChndWVzdF9tb2Rl KHJlZ3MpKQogICAgICAgIGtkYl9zaG93X2d1ZXN0X3N0YWNrKHJlZ3MsIGN1cnJlbnQpOwogICAg ZWxzZQogICAgICAgIHNob3dfdHJhY2UocmVncyk7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tE QjsKfQoKLyogZ2l2ZW4gYW4gc3BhZGRyIGFuZCBkb21pZCBmb3IgZ3Vlc3QsIGR1bXAgc3RhY2sg Ki8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfZmcodm9pZCkKewogICAga2RicCgiZmcg ZG9taWQgUklQIEVTUDogZHVtcCBndWVzdCBzdGFjayBnaXZlbiBkb21pZCwgUklQLCBhbmQgRVNQ XG4iKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90 IAprZGJfY21kZl9mZyhpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNl cl9yZWdzICpyZWdzKQp7CiAgICBkb21pZF90IGRvbWlkOwogICAga2RidmFfdCBpcGFkZHIsIHNw YWRkcjsKCiAgICBpZiAoYXJnYyAhPSA0KSAKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfZmcoKTsK CiAgICBpZiAoa2RiX3N0cjJkb21pZChhcmd2WzFdLCAmZG9taWQsIDEpPT0wKSB7CiAgICAgICAg cmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICB9CiAgICBpZiAoa2RiX3N0cjJ1bG9uZyhhcmd2 WzJdLCAmaXBhZGRyKT09MCkgewogICAgICAgIGtkYnAoIkJhZCBpcGFkZHI6JXNcbiIsIGFyZ3Zb Ml0pOwogICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfQogICAgaWYgKGtkYl9z dHIydWxvbmcoYXJndlszXSwgJnNwYWRkcik9PTApIHsKICAgICAgICBrZGJwKCJCYWQgc3BhZGRy OiVzXG4iLCBhcmd2WzNdKTsKICAgICAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0K ICAgIF9rZGJfc2hvd19ndWVzdF9zdGFjayhkb21pZCwgaXBhZGRyLCBzcGFkZHIpOwogICAgcmV0 dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIERpc3BsYXkga2RiIHN0YWNrLiBmb3IgZGVidWdn aW5nIGtkYiBpdHNlbGYgKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2Zfa2RiZih2b2lk KQp7CiAgICBrZGJwKCJrZGJmOiBkaXNwbGF5IGtkYiBzdGFjay4gZm9yIGRlYnVnZ2luZyBrZGIg b25seVxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9j bWRfdCAKa2RiX2NtZGZfa2RiZihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBj cHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICBpZiAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0gJz8n KQogICAgICAgIHJldHVybiBrZGJfdXNnZl9rZGJmKCk7CgogICAga2RiX3RyYXBfaW1tZWQoS0RC X1RSQVBfS0RCU1RBQ0spOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIHdvcmtl ciBmdW5jdGlvbiB0byBkaXNwbGF5IG1lbW9yeS4gUmVxdWVzdCBjb3VsZCBiZSBmb3IgYW55IGd1 ZXN0LCBkb21pZC4KICogQWxzbyBhZGRyZXNzIGNvdWxkIGJlIG1hY2hpbmUgb3IgdmlydHVhbCAq LwpzdGF0aWMgdm9pZApfa2RiX2Rpc3BsYXlfbWVtKGtkYnZhX3QgKmFkZHJwLCBpbnQgKmxlbnAs IGludCB3b3Jkc3osIGludCBkb21pZCwgaW50IGlzX21hZGRyKQp7CiAgICAjZGVmaW5lIEREQlVG U1ogNDA5NgoKICAgIGtkYmJ5dF90IGJ1ZltEREJVRlNaXSwgKmJwOwogICAgaW50IG51bXJkLCBi eXRlczsKICAgIGludCBsZW4gPSAqbGVucDsKICAgIGtkYnZhX3QgYWRkciA9ICphZGRycDsKCiAg ICAvKiByb3VuZCBsZW4gZG93biB0byB3b3Jkc3ogYm91bmRyeSBiZWNhdXNlIG9uIGludGVsIGVu ZGlhbiwgcHJpbnRpbmcKICAgICAqIGNoYXJhY3RlcnMgaXMgbm90IHBydWRlbnQsIChsb25nIGFu ZCBpbnRzIGNhbid0IGJlIGludGVycHJldGVkIAogICAgICogZWFzaWx5KSAqLwogICAgbGVuICY9 IH4od29yZHN6LTEpOwogICAgbGVuID0gS0RCTUlOKEREQlVGU1osIGxlbik7CiAgICBsZW4gPSBs ZW4gPyBsZW4gOiB3b3Jkc3o7CgogICAgS0RCR1AoImRtZW06YWRkcjolbHggYnVmOiVwIGxlbjok JWQgZG9taWQ6JWQgc3o6JCVkIG1hZGRyOiVkXG4iLCBhZGRyLAogICAgICAgICAgYnVmLCBsZW4s IGRvbWlkLCB3b3Jkc3osIGlzX21hZGRyKTsKICAgIGlmIChpc19tYWRkcikKICAgICAgICBudW1y ZD1rZGJfcmVhZF9tbWVtKChrZGJtYV90KWFkZHIsIGJ1ZiwgbGVuKTsKICAgIGVsc2UKICAgICAg ICBudW1yZD1rZGJfcmVhZF9tZW0oYWRkciwgYnVmLCBsZW4sIGRvbWlkKTsKICAgIGlmIChudW1y ZCAhPSBsZW4pCiAgICAgICAga2RicCgiTWVtb3J5IHJlYWQgZXJyb3IuIEJ5dGVzIHJlYWQ6JCVk XG4iLCBudW1yZCk7CgogICAgZm9yIChicCA9IGJ1ZjsgbnVtcmQgPiAwOykgewogICAgICAgIGtk YnAoIiUwMTZseDogIiwgYWRkcik7IAoKICAgICAgICAvKiBkaXNwbGF5IDE2IGJ5dGVzIHBlciBs aW5lICovCiAgICAgICAgZm9yIChieXRlcz0wOyBieXRlcyA8IDE2ICYmIG51bXJkID4gMDsgYnl0 ZXMgKz0gd29yZHN6KSB7CiAgICAgICAgICAgIGlmIChudW1yZCA+PSB3b3Jkc3opIHsKICAgICAg ICAgICAgICAgIGlmICh3b3Jkc3ogPT0gOCkKICAgICAgICAgICAgICAgICAgICBrZGJwKCIgJTAx Nmx4IiwgKihsb25nICopYnApOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg ICAgIGtkYnAoIiAlMDh4IiwgKihpbnQgKilicCk7CiAgICAgICAgICAgICAgICBicCArPSB3b3Jk c3o7CiAgICAgICAgICAgICAgICBudW1yZCAtPSB3b3Jkc3o7CiAgICAgICAgICAgICAgICBhZGRy ICs9IHdvcmRzejsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBrZGJwKCJcbiIpOwog ICAgICAgIGNvbnRpbnVlOwogICAgfQogICAgKmxlbnAgPSBsZW47CiAgICAqYWRkcnAgPSBhZGRy Owp9CgovKiBkaXNwbGF5IG1hY2hpbmUgbWVtLCBpZSwgdGhlIGdpdmVuIGFkZHJlc3MgaXMgbWFj aGluZSBhZGRyZXNzICovCnN0YXRpYyBrZGJfY3B1X2NtZF90IAprZGJfZGlzcGxheV9tbWVtKGlu dCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgaW50IHdvcmRzeiwga2RiX3VzZ2ZfdCB1c2dfZnAp CnsKICAgIHN0YXRpYyBrZGJtYV90IG1hZGRyOwogICAgc3RhdGljIGludCBsZW47CiAgICBzdGF0 aWMgZG9taWRfdCBpZCA9IERPTUlEX0lETEU7CgogICAgaWYgKGFyZ2MgPT0gLTEpIHsKICAgICAg ICBfa2RiX2Rpc3BsYXlfbWVtKCZtYWRkciwgJmxlbiwgd29yZHN6LCBpZCwgMSk7ICAvKiBjbWQg cmVwZWF0ICovCiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICB9CiAgICBpZiAo YXJnYyA8PSAxIHx8ICphcmd2WzFdID09ICc/JykKICAgICAgICByZXR1cm4gKCp1c2dfZnApKCk7 CgogICAgLyogY2hlY2sgaWYgbnVtIG9mIGJ5dGVzIHRvIGRpc3BsYXkgaXMgZ2l2ZW4gYnkgdXNl ciAqLwogICAgaWYgKGFyZ2MgPj0gMykgewogICAgICAgIGlmICgha2RiX3N0cjJkZWNpKGFyZ3Zb Ml0sICZsZW4pKSB7CiAgICAgICAgICAgIGtkYnAoIkludmFsaWQgbGVuZ3RoOiVzXG4iLCBhcmd2 WzJdKTsKICAgICAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICAgICAgfSAKICAg IH0gZWxzZQogICAgICAgIGxlbiA9IDMyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBkZWZhdWx0IHJlYWQgbGVuICovCgogICAgaWYgKCFrZGJfc3RyMnVsb25nKGFyZ3Zb MV0sICZtYWRkcikpIHsKICAgICAgICBrZGJwKCJJbnZhbGlkIGFyZ3VtZW50OiVzXG4iLCBhcmd2 WzFdKTsKICAgICAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KICAgIF9rZGJfZGlz cGxheV9tZW0oJm1hZGRyLCAmbGVuLCB3b3Jkc3osIDAsIDEpOwogICAgcmV0dXJuIEtEQl9DUFVf TUFJTl9LREI7Cn0KCi8qIAogKiBGVU5DVElPTjogRGlzcGFseSBtYWNoaW5lIE1lbW9yeSBXb3Jk CiAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl9kd20odm9pZCkKewogICAga2RicCgi ZHdtOiAgbWFkZHJ8c3ltIFtudW1dIDogZHVtcCBtZW1vcnkgd29yZCBnaXZlbiBtYWNoaW5lIGFk ZHJcbiIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3RhdGljIGtkYl9jcHVfY21k X3QgCmtkYl9jbWRmX2R3bShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQp7CiAgICByZXR1cm4ga2RiX2Rpc3BsYXlfbW1lbShhcmdjLCBhcmd2 LCA0LCBrZGJfdXNnZl9kd20pOwp9CgovKiAKICogRlVOQ1RJT046IERpc3BhbHkgbWFjaGluZSBN ZW1vcnkgRG91YmxlV29yZCAKICovCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX2RkbSh2 b2lkKQp7CiAgICBrZGJwKCJkZG06ICBtYWRkcnxzeW0gW251bV0gOiBkdW1wIGRvdWJsZSB3b3Jk IGdpdmVuIG1hY2hpbmUgYWRkclxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpz dGF0aWMga2RiX2NwdV9jbWRfdCAKa2RiX2NtZGZfZGRtKGludCBhcmdjLCBjb25zdCBjaGFyICoq YXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIHJldHVybiBrZGJfZGlzcGxh eV9tbWVtKGFyZ2MsIGFyZ3YsIDgsIGtkYl91c2dmX2RkbSk7Cn0KCi8qIAogKiBGVU5DVElPTjog RGlzcGFseSBNZW1vcnkgOiB3b3JkIG9yIGRvdWJsZXdvcmQKICogICAgICAgICAgIHdvcmRzeiA6 IGJ5dGVzIGluIHdvcmQuIDQgb3IgOAogKgogKiAgICAgICAgICAgV2UgZGlzcGxheSB1cHRvIEJV RlNaIGJ5dGVzLiBVc2VyIGNhbiBqdXN0IHByZXNzIGVudGVyIGZvciBtb3JlLgogKiAgICAgICAg ICAgYWRkciBpcyBhbHdheXMgaW4gaGV4IHdpdGggb3Igd2l0aG91dCBsZWFkaW5nIDB4CiAqLwpz dGF0aWMga2RiX2NwdV9jbWRfdCAKa2RiX2Rpc3BsYXlfbWVtKGludCBhcmdjLCBjb25zdCBjaGFy ICoqYXJndiwgaW50IHdvcmRzeiwga2RiX3VzZ2ZfdCB1c2dfZnApCnsKICAgIHN0YXRpYyBrZGJ2 YV90IGFkZHI7CiAgICBzdGF0aWMgaW50IGxlbjsKICAgIHN0YXRpYyBkb21pZF90IGlkID0gRE9N SURfSURMRTsKCiAgICBpZiAoYXJnYyA9PSAtMSkgewogICAgICAgIF9rZGJfZGlzcGxheV9tZW0o JmFkZHIsICZsZW4sIHdvcmRzeiwgaWQsIDApOyAgLyogY21kIHJlcGVhdCAqLwogICAgICAgIHJl dHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfQogICAgaWYgKGFyZ2MgPD0gMSB8fCAqYXJndlsx XSA9PSAnPycpCiAgICAgICAgcmV0dXJuICgqdXNnX2ZwKSgpOwoKICAgIGlkID0gRE9NSURfSURM RTsgICAgICAgICAgICAgICAgLyogbm90IGEgY29tbWFuZCByZXBlYXQsIHJlc2V0IGRvbSBpZCAq LwogICAgaWYgKGFyZ2MgPj0gNCkgeyAKICAgICAgICBpZiAoIWtkYl9zdHIyZG9taWQoYXJndlsz XSwgJmlkLCAxKSkgCiAgICAgICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfQog ICAgLyogY2hlY2sgaWYgbnVtIG9mIGJ5dGVzIHRvIGRpc3BsYXkgaXMgZ2l2ZW4gYnkgdXNlciAq LwogICAgaWYgKGFyZ2MgPj0gMykgewogICAgICAgIGlmICgha2RiX3N0cjJkZWNpKGFyZ3ZbMl0s ICZsZW4pKSB7CiAgICAgICAgICAgIGtkYnAoIkludmFsaWQgbGVuZ3RoOiVzXG4iLCBhcmd2WzJd KTsKICAgICAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICAgICAgfSAKICAgIH0g ZWxzZQogICAgICAgIGxlbiA9IDMyOyAgICAgICAgICAgICAgICAgICAgICAgLyogZGVmYXVsdCBy ZWFkIGxlbiAqLwogICAgaWYgKCFrZGJfc3RyMmFkZHIoYXJndlsxXSwgJmFkZHIsIGlkKSkgewog ICAgICAgIGtkYnAoIkludmFsaWQgYXJndW1lbnQ6JXNcbiIsIGFyZ3ZbMV0pOwogICAgICAgIHJl dHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfQoKICAgIF9rZGJfZGlzcGxheV9tZW0oJmFkZHIs ICZsZW4sIHdvcmRzeiwgaWQsIDApOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8q IAogKiBGVU5DVElPTjogRGlzcGFseSBNZW1vcnkgV29yZAogKi8Kc3RhdGljIGtkYl9jcHVfY21k X3QKa2RiX3VzZ2ZfZHcodm9pZCkKewogICAga2RicCgiZHcgdmFkZHJ8c3ltIFtudW1dW2RvbWlk XSA6IGR1bXAgbWVtIHdvcmQuIG51bSByZXF1aXJlZCBmb3IgZG9taWRcbiIpOwogICAgcmV0dXJu IEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3RhdGljIGtkYl9jcHVfY21kX3QgCmtkYl9jbWRmX2R3KGlu dCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsK ICAgIHJldHVybiBrZGJfZGlzcGxheV9tZW0oYXJnYywgYXJndiwgNCwga2RiX3VzZ2ZfZHcpOwp9 CgovKiAKICogRlVOQ1RJT046IERpc3BhbHkgTWVtb3J5IERvdWJsZVdvcmQgCiAqLwpzdGF0aWMg a2RiX2NwdV9jbWRfdAprZGJfdXNnZl9kZCh2b2lkKQp7CiAgICBrZGJwKCJkZCB2YWRkcnxzeW0g W251bV1bZG9taWRdIDogZHVtcCBkd29yZC4gbnVtIHJlcXVpcmVkIGZvciBkb21pZFxuIik7CiAg ICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdCAKa2RiX2Nt ZGZfZGQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKewogICAgcmV0dXJuIGtkYl9kaXNwbGF5X21lbShhcmdjLCBhcmd2LCA4LCBrZGJfdXNn Zl9kZCk7Cn0KCi8qIAogKiBGVU5DVElPTjogTW9kaWZ5IE1lbW9yeSBXb3JkIAogKi8Kc3RhdGlj IGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfbXcodm9pZCkKewogICAga2RicCgibXcgdmFkZHJ8c3lt IHZhbCBbZG9taWRdIDogbW9kaWZ5IG1lbW9yeSB3b3JkIGluIHZhZGRyXG4iKTsKICAgIHJldHVy biBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90IAprZGJfY21kZl9tdyhp bnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7 CiAgICB1bG9uZyB2YWw7CiAgICBrZGJ2YV90IGFkZHI7CiAgICBkb21pZF90IGlkID0gRE9NSURf SURMRTsKCiAgICBpZiAoYXJnYyA8IDMpIHsKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfbXcoKTsK ICAgIH0KICAgIGlmIChhcmdjID49NCkgewogICAgICAgIGlmICgha2RiX3N0cjJkb21pZChhcmd2 WzNdLCAmaWQsIDEpKSAKICAgICAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICB9 CiAgICBpZiAoIWtkYl9zdHIydWxvbmcoYXJndlsyXSwgJnZhbCkpIHsKICAgICAgICBrZGJwKCJJ bnZhbGlkIHZhbDogJXNcbiIsIGFyZ3ZbMl0pOwogICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5f S0RCOwogICAgfQogICAgaWYgKCFrZGJfc3RyMmFkZHIoYXJndlsxXSwgJmFkZHIsIGlkKSkgewog ICAgICAgIGtkYnAoIkludmFsaWQgYWRkci9zeW06ICVzXG4iLCBhcmd2WzFdKTsKICAgICAgICBy ZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KICAgIGlmIChrZGJfd3JpdGVfbWVtKGFkZHIs IChrZGJieXRfdCAqKSZ2YWwsIDQsIGlkKSAhPSA0KQogICAgICAgIGtkYnAoIlVuYWJsZSB0byBz ZXQgMHglbHggdG8gMHglbHhcbiIsIGFkZHIsIHZhbCk7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlO X0tEQjsKfQoKLyogCiAqIEZVTkNUSU9OOiBNb2RpZnkgTWVtb3J5IERvdWJsZVdvcmQgCiAqLwpz dGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl9tZCh2b2lkKQp7CiAgICBrZGJwKCJtZCB2YWRk cnxzeW0gdmFsIFtkb21pZF0gOiBtb2RpZnkgbWVtb3J5IGR3b3JkIGluIHZhZGRyXG4iKTsKICAg IHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90IAprZGJfY21k Zl9tZChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpy ZWdzKQp7CiAgICB1bG9uZyB2YWw7CiAgICBrZGJ2YV90IGFkZHI7CiAgICBkb21pZF90IGlkID0g RE9NSURfSURMRTsKCiAgICBpZiAoYXJnYyA8IDMpIHsKICAgICAgICByZXR1cm4ga2RiX3VzZ2Zf bWQoKTsKICAgIH0KICAgIGlmIChhcmdjID49NCkgewogICAgICAgIGlmICgha2RiX3N0cjJkb21p ZChhcmd2WzNdLCAmaWQsIDEpKSB7CiAgICAgICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RC OwogICAgICAgIH0KICAgIH0KICAgIGlmICgha2RiX3N0cjJ1bG9uZyhhcmd2WzJdLCAmdmFsKSkg ewogICAgICAgIGtkYnAoIkludmFsaWQgdmFsOiAlc1xuIiwgYXJndlsyXSk7CiAgICAgICAgcmV0 dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICB9CiAgICBpZiAoIWtkYl9zdHIyYWRkcihhcmd2WzFd LCAmYWRkciwgaWQpKSB7CiAgICAgICAga2RicCgiSW52YWxpZCBhZGRyL3N5bTogJXNcbiIsIGFy Z3ZbMV0pOwogICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfQogICAgaWYgKGtk Yl93cml0ZV9tZW0oYWRkciwgKGtkYmJ5dF90ICopJnZhbCxzaXplb2YodmFsKSxpZCkgIT0gc2l6 ZW9mKHZhbCkpCiAgICAgICAga2RicCgiVW5hYmxlIHRvIHNldCAweCVseCB0byAweCVseFxuIiwg YWRkciwgdmFsKTsKCiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKc3RydWN0ICBYZ3Rf ZGVzY19zdHJ1Y3QgewogICAgdW5zaWduZWQgc2hvcnQgc2l6ZTsKICAgIHVuc2lnbmVkIGxvbmcg YWRkcmVzcyBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKfTsKCnZvaWQKa2RiX3Nob3dfc3BlY2lh bF9yZWdzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICBzdHJ1Y3QgWGd0X2Rlc2Nf c3RydWN0IGRlc2M7CiAgICB1bnNpZ25lZCBzaG9ydCB0cjsgICAgICAgICAgICAgICAgIC8qIFRh c2sgUmVnaXN0ZXIgc2VnbWVudCBzZWxlY3RvciAqLwogICAgX191NjQgZWZlcjsKCiAgICBrZGJw KCJcblNwZWNpYWwgUmVnaXN0ZXJzOlxuIik7CiAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInNp ZHQgICglMCkgXG4iIDo6ICJhIigmZGVzYykgOiAibWVtb3J5Iik7CiAgICBrZGJwKCJJRFRSOiBh ZGRyOiAlMDE2bHggbGltaXQ6ICUwNHhcbiIsIGRlc2MuYWRkcmVzcywgZGVzYy5zaXplKTsKICAg IF9fYXNtX18gX192b2xhdGlsZV9fICgic2dkdCAgKCUwKSBcbiIgOjogImEiKCZkZXNjKSA6ICJt ZW1vcnkiKTsKICAgIGtkYnAoIkdEVFI6IGFkZHI6ICUwMTZseCBsaW1pdDogJTA0eFxuIiwgZGVz Yy5hZGRyZXNzLCBkZXNjLnNpemUpOwoKICAgIGtkYnAoImNyMDogJTAxNmx4ICBjcjI6ICUwMTZs eFxuIiwgcmVhZF9jcjAoKSwgcmVhZF9jcjIoKSk7CiAgICBrZGJwKCJjcjM6ICUwMTZseCAgY3I0 OiAlMDE2bHhcbiIsIHJlYWRfY3IzKCksIHJlYWRfY3I0KCkpOwogICAgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCJzdHIgKCUwKSBcbiI6OiAiYSIoJnRyKSA6ICJtZW1vcnkiKTsKICAgIGtkYnAoIlRS OiAleFxuIiwgdHIpOwoKICAgIHJkbXNybChNU1JfRUZFUiwgZWZlcik7ICAgIC8qIElBMzJfRUZF UiAqLwogICAga2RicCgiZWZlcjoiS0RCRjY0IiBMTUEoSUEtMzJlIG1vZGUpOiVkIFNDRShzeXNj YWxsL3N5c3JldCk6JWRcbiIsCiAgICAgICAgIGVmZXIsICgoZWZlciZFRkVSX0xNQSkgIT0gMCks ICgoZWZlciZFRkVSX1NDRSkgIT0gMCkpOwoKICAgIGtkYnAoIkRSMDogJTAxNmx4ICBEUjE6JTAx Nmx4ICBEUjI6JTAxNmx4XG4iLCBrZGJfcmRfZGJncmVnKDApLAogICAgICAgICBrZGJfcmRfZGJn cmVnKDEpLCBrZGJfcmRfZGJncmVnKDIpKTsgCiAgICBrZGJwKCJEUjM6ICUwMTZseCAgRFI2OiUw MTZseCAgRFI3OiUwMTZseFxuIiwga2RiX3JkX2RiZ3JlZygzKSwKICAgICAgICAga2RiX3JkX2Ri Z3JlZyg2KSwga2RiX3JkX2RiZ3JlZyg3KSk7IAp9CgovKiAKICogRlVOQ1RJT046IERpc3BhbHkg UmVnaXN0ZXJzLiBJZiAic3AiIGFyZ3VtZW50LCB0aGVuIGRpc3BsYXkgYWRkaXRpb25hbCByZWdz CiAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl9kcih2b2lkKQp7CiAgICBrZGJwKCJk ciBbc3BdOiBkaXNwbGF5IHJlZ2lzdGVycy4gc3AgdG8gZGlzcGxheSBzcGVjaWFsIHJlZ3MgYWxz b1xuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRf dCAKa2RiX2NtZGZfZHIoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncykKewogICAgaWYgKGFyZ2MgPiAxICYmICphcmd2WzFdID09ICc/JykKICAg ICAgICByZXR1cm4ga2RiX3VzZ2ZfZHIoKTsKCiAgICBLREJHUDEoInJlZ3M6JXAgLnJzcDolbHgg LnJpcDolbHhcbiIsIHJlZ3MsIHJlZ3MtPnJzcCwgcmVncy0+cmlwKTsKICAgIHNob3dfcmVnaXN0 ZXJzKHJlZ3MpOwogICAgaWYgKGFyZ2MgPiAxICYmICFzdHJjbXAoYXJndlsxXSwgInNwIikpIAog ICAgICAgIGtkYl9zaG93X3NwZWNpYWxfcmVncyhyZWdzKTsKICAgIHJldHVybiBLREJfQ1BVX01B SU5fS0RCOwp9CgovKiBzaG93IHJlZ2lzdGVycyBvbiBzdGFjayBib3R0b20gd2hlcmUgZ3Vlc3Qg Y29udGV4dCBpcy4gc2FtZSBhcyBkciBpZgogKiBub3QgcnVubmluZyBpbiBndWVzdCBtb2RlICov CnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX2RyZyh2b2lkKQp7CiAgICBrZGJwKCJkcmc6 IGRpc3BsYXkgYWN0aXZlIGd1ZXN0IHJlZ2lzdGVycyBhdCBzdGFjayBib3R0b21cbiIpOwogICAg cmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3RhdGljIGtkYl9jcHVfY21kX3QgCmtkYl9jbWRm X2RyZyhpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpy ZWdzKQp7CiAgICBpZiAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJldHVy biBrZGJfdXNnZl9kcmcoKTsKCiAgICBrZGJwKCJcdE5vdGU6IGRzL2VzL2ZzL2dzIGV0Yy4uIGFy ZSBub3Qgc2F2ZWQgZnJvbSB0aGUgY3B1XG4iKTsKICAgIGtkYl9wcmludF91cmVncyhndWVzdF9j cHVfdXNlcl9yZWdzKCkpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIAogKiBG VU5DVElPTjogTW9kaWZ5IFJlZ2lzdGVyCiAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNn Zl9tcih2b2lkKQp7CiAgICBrZGJwKCJtciByZWcgdmFsIDogTW9kaWZ5IFJlZ2lzdGVyLiB2YWwg YXNzdW1lZCBpbiBoZXhcbiIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3RhdGlj IGtkYl9jcHVfY21kX3QgCmtkYl9jbWRmX21yKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwg c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIGNvbnN0IGNoYXIgKmFyZ3A7CiAgICBp bnQgcmVnb2ZmczsKICAgIHVsb25nIHZhbDsKCiAgICBpZiAoYXJnYyAhPSAzIHx8ICFrZGJfc3Ry MnVsb25nKGFyZ3ZbMl0sICZ2YWwpKSB7CiAgICAgICAgcmV0dXJuIGtkYl91c2dmX21yKCk7CiAg ICB9CiAgICBhcmdwID0gYXJndlsxXTsKCiNpZiBkZWZpbmVkKF9feDg2XzY0X18pCiAgICBpZiAo KHJlZ29mZnM9a2RiX3ZhbGlkX3JlZyhhcmdwKSkgIT0gLTEpCiAgICAgICAgKigodWludDY0X3Qg KikoKGNoYXIgKilyZWdzK3JlZ29mZnMpKSA9IHZhbDsKI2Vsc2UKICAgIGlmICghc3RyY21wKGFy Z3AsICJlYXgiKSkKICAgICAgICByZWdzLT5lYXggPSB2YWw7CiAgICBlbHNlIGlmICghc3RyY21w KGFyZ3AsICJlYngiKSkKICAgICAgICByZWdzLT5lYnggPSB2YWw7CiAgICBlbHNlIGlmICghc3Ry Y21wKGFyZ3AsICJlY3giKSkKICAgICAgICByZWdzLT5lY3ggPSB2YWw7CiAgICBlbHNlIGlmICgh c3RyY21wKGFyZ3AsICJlZHgiKSkKICAgICAgICByZWdzLT5lZHggPSB2YWw7CiAgICBlbHNlIGlm ICghc3RyY21wKGFyZ3AsICJlc2kiKSkKICAgICAgICByZWdzLT5lc2kgPSB2YWw7CiAgICBlbHNl IGlmICghc3RyY21wKGFyZ3AsICJlZGkiKSkKICAgICAgICByZWdzLT5lZGkgPSB2YWw7CiAgICBl bHNlIGlmICghc3RyY21wKGFyZ3AsICJlYnAiKSkKICAgICAgICByZWdzLT5lYnAgPSB2YWw7CiAg ICBlbHNlIGlmICghc3RyY21wKGFyZ3AsICJlc3AiKSkKICAgICAgICByZWdzLT5lc3AgPSB2YWw7 CiAgICBlbHNlIGlmICghc3RyY21wKGFyZ3AsICJlZmxhZ3MiKSB8fCAhc3RyY21wKGFyZ3AsICJy ZmxhZ3MiKSkKICAgICAgICByZWdzLT5lZmxhZ3MgPSB2YWw7CiNlbmRpZgogICAgZWxzZQogICAg ICAgIGtkYnAoIkVycm9yLiBCYWQgcmVnaXN0ZXIgOiAlc1xuIiwgYXJncCk7CgogICAgcmV0dXJu IEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIAogKiBGVU5DVElPTjogU2luZ2xlIFN0ZXAKICovCnN0 YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX3NzKHZvaWQpCnsKICAgIGtkYnAoInNzOiBzaW5n bGUgc3RlcFxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2Nw dV9jbWRfdCAKa2RiX2NtZGZfc3MoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3Qg Y3B1X3VzZXJfcmVncyAqcmVncykKewogICAgI2RlZmluZSBLREJfSEFMVF9JTlNUUiAweGY0Cgog ICAga2RiYnl0X3QgYnl0ZTsKICAgIHN0cnVjdCBkb21haW4gKmRwID0gY3VycmVudC0+ZG9tYWlu OwogICAgZG9taWRfdCBpZCA9IGd1ZXN0X21vZGUocmVncykgPyBkcC0+ZG9tYWluX2lkIDogRE9N SURfSURMRTsKCiAgICBpZiAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJl dHVybiBrZGJfdXNnZl9zcygpOwoKICAgIEtEQkdQKCJlbnRlciBrZGJfY21kZl9zcyBcbiIpOwog ICAgaWYgKCFyZWdzKSB7CiAgICAgICAga2RicCgiJXM6IHJlZ3Mgbm90IGF2YWlsYWJsZVxuIiwg X19GVU5DVElPTl9fKTsKICAgICAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KICAg IGlmIChrZGJfcmVhZF9tZW0ocmVncy0+S0RCSVAsICZieXRlLCAxLCBpZCkgPT0gMSkgewogICAg ICAgIGlmIChieXRlID09IEtEQl9IQUxUX0lOU1RSKSB7CiAgICAgICAgICAgIGtkYnAoImtkYjog anVtcGluZyBvdmVyIGhhbHQgaW5zdHJ1Y3Rpb25cbiIpOwogICAgICAgICAgICByZWdzLT5LREJJ UCsrOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAga2RicCgia2RiOiBGYWlsZWQgdG8g cmVhZCBieXRlIGF0OiAlbHhcbiIsIHJlZ3MtPktEQklQKTsKICAgICAgICByZXR1cm4gS0RCX0NQ VV9NQUlOX0tEQjsKICAgIH0KICAgIGlmIChndWVzdF9tb2RlKHJlZ3MpICYmIGlzX2h2bV9vcl9o eWJfdmNwdShjdXJyZW50KSkgewogICAgICAgIGRwLT5kZWJ1Z2dlcl9hdHRhY2hlZCA9IDE7ICAv KiBzZWUgc3ZtX2RvX3Jlc3VtZS92bXhfZG9fICovCiAgICAgICAgY3VycmVudC0+YXJjaC5odm1f dmNwdS5zaW5nbGVfc3RlcCA9IDE7CiAgICB9IGVsc2UKICAgICAgICByZWdzLT5lZmxhZ3MgfD0g WDg2X0VGTEFHU19URjsKCiAgICByZXR1cm4gS0RCX0NQVV9TUzsKfQoKLyogCiAqIEZVTkNUSU9O OiBOZXh0IEluc3RydWN0aW9uLCBzdGVwIG92ZXIgdGhlIGNhbGwgaW5zdHIgdG8gdGhlIG5leHQg aW5zdHIKICovCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX25pKHZvaWQpCnsKICAgIGtk YnAoIm5pOiBzaW5nbGUgc3RlcCwgc3RlcHBpbmcgb3ZlciBmdW5jdGlvbiBjYWxsc1xuIik7CiAg ICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdCAKa2RiX2Nt ZGZfbmkoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKewogICAgaW50IHN6LCBpOwogICAgZG9taWRfdCBpZD1ndWVzdF9tb2RlKHJlZ3MpID8g Y3VycmVudC0+ZG9tYWluLT5kb21haW5faWQ6RE9NSURfSURMRTsKCiAgICBpZiAoYXJnYyA+IDEg JiYgKmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJldHVybiBrZGJfdXNnZl9uaSgpOwoKICAgIEtE QkdQKCJlbnRlciBrZGJfY21kZl9uaSBcbiIpOwogICAgaWYgKCFyZWdzKSB7CiAgICAgICAga2Ri cCgiJXM6IHJlZ3Mgbm90IGF2YWlsYWJsZVxuIiwgX19GVU5DVElPTl9fKTsKICAgICAgICByZXR1 cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KICAgIGlmICgoc3o9a2RiX2NoZWNrX2NhbGxfaW5z dHIoaWQsIHJlZ3MtPktEQklQKSkgPT0gMCkgIC8qICFjYWxsIGluc3RyICovCiAgICAgICAgcmV0 dXJuIGtkYl9jbWRmX3NzKGFyZ2MsIGFyZ3YsIHJlZ3MpOyAgICAgICAgIC8qIGp1c3QgZG8gc3Mg Ki8KCiAgICBpZiAoKGk9a2RiX3NldF9icChpZCwgcmVncy0+S0RCSVArc3osIDEsMCwwLDAsMCkp ID49IEtEQk1BWFNCUCkgLyogZmFpbGVkICovCiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9L REI7CgogICAga2RiX3NicGFbaV0uYnBfbmkgPSAxOwogICAgaWYgKGd1ZXN0X21vZGUocmVncykg JiYgaXNfaHZtX29yX2h5Yl92Y3B1KGN1cnJlbnQpKQogICAgICAgIGN1cnJlbnQtPmFyY2guaHZt X3ZjcHUuc2luZ2xlX3N0ZXAgPSAwOwogICAgZWxzZQogICAgICAgIHJlZ3MtPmVmbGFncyAmPSB+ WDg2X0VGTEFHU19URjsKCiAgICByZXR1cm4gS0RCX0NQVV9OSTsKfQoKc3RhdGljIHZvaWQKa2Ri X2J0Zl9lbmFibGUodm9pZCkKewogICAgdTY0IGRlYnVnY3RsOwogICAgcmRtc3JsKE1TUl9JQTMy X0RFQlVHQ1RMTVNSLCBkZWJ1Z2N0bCk7CiAgICB3cm1zcmwoTVNSX0lBMzJfREVCVUdDVExNU1Is IGRlYnVnY3RsIHwgMHgyKTsKfQoKLyogCiAqIEZVTkNUSU9OOiBTaW5nbGUgU3RlcCB0byBicmFu Y2guIERvZXNuJ3Qgc2VlbSB0byB3b3JrIHZlcnkgd2VsbC4KICovCnN0YXRpYyBrZGJfY3B1X2Nt ZF90CmtkYl91c2dmX3NzYih2b2lkKQp7CiAgICBrZGJwKCJzc2I6IHNpbmdlIHN0ZXAgdG8gYnJh bmNoXG4iKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2Nt ZF90IAprZGJfY21kZl9zc2IoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqcmVncykKewogICAgaWYgKGFyZ2MgPiAxICYmICphcmd2WzFdID09ICc/JykK ICAgICAgICByZXR1cm4ga2RiX3VzZ2Zfc3NiKCk7CgogICAgS0RCR1AoIk1VSzogZW50ZXIga2Ri X2NtZGZfc3NiXG4iKTsKICAgIGlmICghcmVncykgewogICAgICAgIGtkYnAoIiVzOiByZWdzIG5v dCBhdmFpbGFibGVcbiIsIF9fRlVOQ1RJT05fXyk7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJ Tl9LREI7CiAgICB9CiAgICBpZiAoaXNfaHZtX29yX2h5Yl92Y3B1KGN1cnJlbnQpKSAKICAgICAg ICBjdXJyZW50LT5kb21haW4tPmRlYnVnZ2VyX2F0dGFjaGVkID0gMTsgICAgICAgIC8qIHZteC9z dm1fZG9fcmVzdW1lKCkqLwoKICAgIHJlZ3MtPmVmbGFncyB8PSBYODZfRUZMQUdTX1RGOwogICAg a2RiX2J0Zl9lbmFibGUoKTsKICAgIHJldHVybiBLREJfQ1BVX1NTOwp9CgovKiAKICogRlVOQ1RJ T046IENvbnRpbnVlIEV4ZWN1dGlvbi4gVEYgbXVzdCBiZSBjbGVhcmVkIGhlcmUgYXMgdGhpcyBj b3VsZCBydW4gb24gCiAqICAgICAgICAgICBhbnkgY3B1LiBIZW5jZSBub3QgT0sgdG8gZG8gaXQg ZnJvbSBrZGJfZW5kX3Nlc3Npb24uCiAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl9n byh2b2lkKQp7CiAgICBrZGJwKCJnbzogbGVhdmUga2RiIGFuZCBjb250aW51ZSBleGVjdXRpb25c biIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3RhdGljIGtkYl9jcHVfY21kX3Qg CmtkYl9jbWRmX2dvKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MpCnsKICAgIGlmIChhcmdjID4gMSAmJiAqYXJndlsxXSA9PSAnPycpCiAgICAg ICAgcmV0dXJuIGtkYl91c2dmX2dvKCk7CgogICAgcmVncy0+ZWZsYWdzICY9IH5YODZfRUZMQUdT X1RGOwogICAgcmV0dXJuIEtEQl9DUFVfR087Cn0KCi8qIEFsbCBjcHVzIG11c3QgZGlzcGxheSB0 aGVpciBjdXJyZW50IGNvbnRleHQgKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QgCmtkYl9jcHVfc3Rh dHVzX2FsbChpbnQgY2NwdSwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIGludCBj cHU7CiAgICBmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgewogICAgICAgIGlmIChjcHUgPT0gY2Nw dSkgewogICAgICAgICAgICBrZGJwKCJbJWRdIiwgY2NwdSk7CiAgICAgICAgICAgIGtkYl9kaXNw bGF5X3BjKHJlZ3MpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChrZGJfY3B1X2Nt ZFtjcHVdICE9IEtEQl9DUFVfUEFVU0UpICAgLyogaHVuZyBjcHUgKi8KICAgICAgICAgICAgICAg IGNvbnRpbnVlOwogICAgICAgICAgICBrZGJfY3B1X2NtZFtjcHVdID0gS0RCX0NQVV9TSE9XUEM7 CiAgICAgICAgICAgIHdoaWxlIChrZGJfY3B1X2NtZFtjcHVdPT1LREJfQ1BVX1NIT1dQQyk7CiAg ICAgICAgfQogICAgfQogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIAogKiBkaXNw bGF5L3N3aXRjaCBDUFUuIAogKiAgQXJndW1lbnQ6CiAqICAgICBub25lOiAgIGp1c3QgZ28gYmFj ayB0byBpbml0aWFsIGNwdQogKiAgICAgY3B1bnVtOiBzd2l0Y2ggdG8gZ2l2ZW4gdnB1CiAqICAg ICAiYWxsIjogIHNob3cgb25lIGxpbmUgc3RhdHVzIG9mIGFsbCBjcHVzCiAqLwpleHRlcm4gdm9s YXRpbGUgaW50IGtkYl9pbml0X2NwdTsKc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfY3B1 KHZvaWQpCnsKICAgIGtkYnAoImNwdSBbYWxsfG51bV06IG5vbmUgd2lsbCBzd2l0Y2ggYmFjayB0 byBpbml0aWFsIGNwdVxuIik7CiAgICBrZGJwKCIgICAgICAgICAgICAgICBjcHVudW0gdG8gc3dp dGNoIHRvIHRoZSB2Y3B1LiBhbGwgdG8gc2hvdyBzdGF0dXNcbiIpOwogICAgcmV0dXJuIEtEQl9D UFVfTUFJTl9LREI7Cn0Kc3RhdGljIGtkYl9jcHVfY21kX3QgCmtkYl9jbWRmX2NwdShpbnQgYXJn YywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICBp bnQgY3B1OwogICAgaW50IGNjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CgogICAgaWYgKGFyZ2Mg PiAxICYmICphcmd2WzFdID09ICc/JykKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfY3B1KCk7Cgog ICAgaWYgKGFyZ2MgPiAxKSB7CiAgICAgICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImFsbCIpKQog ICAgICAgICAgICByZXR1cm4ga2RiX2NwdV9zdGF0dXNfYWxsKGNjcHUsIHJlZ3MpOwoKICAgICAg ICAgICAgY3B1ID0gKGludClzaW1wbGVfc3RydG91bChhcmd2WzFdLCBOVUxMLCAwKTsgLyogaGFu ZGxlcyAweCAqLwogICAgICAgICAgICBpZiAoY3B1ID49IDAgJiYgY3B1IDwgTlJfQ1BVUyAmJiBj cHUgIT0gY2NwdSAmJiAKICAgICAgICAgICAgICAgIGNwdV9vbmxpbmUoY3B1KSAmJiBrZGJfY3B1 X2NtZFtjcHVdID09IEtEQl9DUFVfUEFVU0UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IGtkYnAoIlN3aXRjaGluZyB0byBjcHU6JWRcbiIsIGNwdSk7CiAgICAgICAgICAgICAgICBrZGJf Y3B1X2NtZFtjcHVdID0gS0RCX0NQVV9NQUlOX0tEQjsKCiAgICAgICAgICAgICAgICAvKiBjbGVh ciBhbnkgc2luZ2xlIHN0ZXAgb24gdGhlIGN1cnJlbnQgY3B1ICovCiAgICAgICAgICAgICAgICBy ZWdzLT5lZmxhZ3MgJj0gflg4Nl9FRkxBR1NfVEY7CiAgICAgICAgICAgICAgICByZXR1cm4gS0RC X0NQVV9QQVVTRTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChjcHUg IT0gY2NwdSkKICAgICAgICAgICAgICAgICAgICBrZGJwKCJVbmFibGUgdG8gc3dpdGNoIHRvIGNw dTolZFxuIiwgY3B1KTsKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAg IGtkYl9kaXNwbGF5X3BjKHJlZ3MpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg cmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICAgICAgICAgIH0KICAgIH0KICAgIC8qIG5vIGFy ZyBtZWFucyBiYWNrIHRvIGluaXRpYWwgY3B1ICovCiAgICBpZiAoIWtkYl9zeXNfY3Jhc2ggJiYg Y2NwdSAhPSBrZGJfaW5pdF9jcHUpIHsKICAgICAgICBpZiAoa2RiX2NwdV9jbWRba2RiX2luaXRf Y3B1XSA9PSBLREJfQ1BVX1BBVVNFKSB7CiAgICAgICAgICAgIHJlZ3MtPmVmbGFncyAmPSB+WDg2 X0VGTEFHU19URjsKICAgICAgICAgICAga2RiX2NwdV9jbWRba2RiX2luaXRfY3B1XSA9IEtEQl9D UFVfTUFJTl9LREI7CiAgICAgICAgICAgIHJldHVybiBLREJfQ1BVX1BBVVNFOwogICAgICAgIH0g ZWxzZQogICAgICAgICAgICBrZGJwKCJVbmFibGUgdG8gc3dpdGNoIHRvOiAlZFxuIiwga2RiX2lu aXRfY3B1KTsKICAgIH0KICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CgovKiBzZW5kIE5N SSB0byBhbGwgb3IgZ2l2ZW4gQ1BVLiBNdXN0IGJlIGNyYXNoZWQvZmF0YWwgc3RhdGUgKi8Kc3Rh dGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2Zfbm1pKHZvaWQpCnsKICAgIGtkYnAoIm5taSBjcHUj fGFsbDogc2VuZCBubWkgY3B1L3MuIG11c3QgcmVib290IHdoZW4gZG9uZSB3aXRoIGtkYlxuIik7 CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdCAKa2Ri X2NtZGZfbm1pKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3Jl Z3MgKnJlZ3MpCnsKICAgIGNwdW1hc2tfdCBjcHVtYXNrOwogICAgaW50IGNjcHUgPSBzbXBfcHJv Y2Vzc29yX2lkKCk7CgogICAgaWYgKGFyZ2MgPD0gMSB8fCAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0g PT0gJz8nKSkKICAgICAgICByZXR1cm4ga2RiX3VzZ2Zfbm1pKCk7CgogICAgaWYgKCFrZGJfc3lz X2NyYXNoKSB7CiAgICAgICAga2RicCgia2RiOiBubWkgY21kIGF2YWlsYWJsZSBpbiBjcmFzaGVk IHN0YXRlIG9ubHlcbiIpOwogICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfQog ICAgaWYgKCFzdHJjbXAoYXJndlsxXSwgImFsbCIpKQogICAgICAgIGNwdW1hc2sgPSBjcHVfb25s aW5lX21hcDsKICAgIGVsc2UgewogICAgICAgIGludCBjcHUgPSAoaW50KXNpbXBsZV9zdHJ0b3Vs KGFyZ3ZbMV0sIE5VTEwsIDApOwogICAgICAgIGlmIChjcHUgPj0gMCAmJiBjcHUgPCBOUl9DUFVT ICYmIGNwdSAhPSBjY3B1ICYmIGNwdV9vbmxpbmUoY3B1KSkKICAgICAgICAgICAgY3B1bWFzayA9 ICpjcHVtYXNrX29mKGNwdSk7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGtkYnAoIktEQiBu bWk6IGludmFsaWQgY3B1ICVzXG4iLCBhcmd2WzFdKTsKICAgICAgICAgICAgcmV0dXJuIEtEQl9D UFVfTUFJTl9LREI7CiAgICAgICAgfQogICAgfQogICAga2RiX25taV9wYXVzZV9jcHVzKGNwdW1h c2spOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCnN0YXRpYyBrZGJfY3B1X2NtZF90 CmtkYl91c2dmX3BlcmNwdSh2b2lkKQp7CiAgICBrZGJwKCJwZXJjcHU6IGRpc3BsYXkgcGVyIGNw dSBwb2ludGVyc1xuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2Ri X2NwdV9jbWRfdCAKa2RiX2NtZGZfcGVyY3B1KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwg c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIGlmIChhcmdjID4gMSAmJiAqYXJndlsx XSA9PSAnPycpCiAgICAgICAgcmV0dXJuIGtkYl91c2dmX3BlcmNwdSgpOwogICAga2RiX2R1bXBf dGltZV9wY3B1KCk7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKLyogPT09PT09PT09 PT09PT09PT09PT09PT09PSBCcmVha3BvaW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0gKi8KCnN0YXRpYyB2b2lkCmtkYl9wcm50X2JwX2NvbmQoaW50IGJwbnVtKQp7CiAg ICBzdHJ1Y3Qga2RiX2JwY29uZCAqYnBjcCA9ICZrZGJfc2JwYVticG51bV0udS5icF9jb25kOwoK ICAgIGlmIChicGNwLT5icF9jb25kX3N0YXR1cyA9PSAxKSB7CiAgICAgICAga2RicCgiICAgICAo ICVzICVjJWMgJWx4IClcbiIsIAogICAgICAgICAgICAga2RiX3JlZ29mZnNfdG9fbmFtZShicGNw LT5icF9jb25kX2xocyksCiAgICAgICAgICAgICBicGNwLT5icF9jb25kX3R5cGUgPT0gMSA/ICc9 JyA6ICchJywgJz0nLCBicGNwLT5icF9jb25kX3Jocyk7CiAgICB9IGVsc2UgewogICAgICAgIGtk YnAoIiAgICAgKCAlbHggJWMlYyAlbHggKVxuIiwgYnBjcC0+YnBfY29uZF9saHMsCiAgICAgICAg ICAgICBicGNwLT5icF9jb25kX3R5cGUgPT0gMSA/ICc9JyA6ICchJywgJz0nLCBicGNwLT5icF9j b25kX3Jocyk7CiAgICB9Cn0KCnN0YXRpYyB2b2lkCmtkYl9wcm50X2JwX2V4dHJhKGludCBicG51 bSkKewogICAgaWYgKGtkYl9zYnBhW2JwbnVtXS5icF90eXBlID09IDIpIHsKICAgICAgICB1bG9u ZyBpLCBhcmcsICpidHAgPSBrZGJfc2JwYVticG51bV0udS5icF9idHA7CiAgICAgICAgCiAgICAg ICAga2RicCgiICAgd2lsbCB0cmFjZSAiKTsKICAgICAgICBmb3IgKGk9MDsgaSA8IEtEQl9NQVhC VFAgJiYgYnRwW2ldOyBpKyspCiAgICAgICAgICAgIGlmICgoYXJnPWJ0cFtpXSkgPCBzaXplb2Yg KHN0cnVjdCBjcHVfdXNlcl9yZWdzKSkgewogICAgICAgICAgICAgICAga2RicCgiICVzICIsIGtk Yl9yZWdvZmZzX3RvX25hbWUoYXJnKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg ICAgICBrZGJwKCIgJWx4ICIsIGFyZyk7CiAgICAgICAgICAgIH0KICAgICAgICBrZGJwKCJcbiIp OwoKICAgIH0gZWxzZSBpZiAoa2RiX3NicGFbYnBudW1dLmJwX3R5cGUgPT0gMSkKICAgICAgICBr ZGJfcHJudF9icF9jb25kKGJwbnVtKTsKfQoKLyoKICogTGlzdCBzb2Z0d2FyZSBicmVha3BvaW50 cwogKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX2Rpc3BsYXlfc2JrcHRzKHZvaWQpCnsKICAg IGludCBpOwogICAgZm9yKGk9MDsgaSA8IEtEQk1BWFNCUDsgaSsrKQogICAgICAgIGlmIChrZGJf c2JwYVtpXS5icF9hZGRyICYmICFrZGJfc2JwYVtpXS5icF9kZWxldGVkKSB7CiAgICAgICAgICAg IHN0cnVjdCBkb21haW4gKmRwID0ga2RiX2RvbWlkMnB0cihrZGJfc2JwYVtpXS5icF9kb21pZCk7 CgogICAgICAgICAgICBpZiAoZHAgPT0gTlVMTCB8fCBkcC0+aXNfZHlpbmcpIHsKICAgICAgICAg ICAgICAgIG1lbXNldCgma2RiX3NicGFbaV0sIDAsIHNpemVvZihrZGJfc2JwYVtpXSkpOwogICAg ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAga2RicCgiWyVk XTogZG9taWQ6JWQgMHglbHggICAiLCBpLCAKICAgICAgICAgICAgICAgICBrZGJfc2JwYVtpXS5i cF9kb21pZCwga2RiX3NicGFbaV0uYnBfYWRkcik7CiAgICAgICAgICAgIGtkYl9wcm50X2FkZHIy c3ltKGtkYl9zYnBhW2ldLmJwX2RvbWlkLCBrZGJfc2JwYVtpXS5icF9hZGRyLCJcbiIpOwogICAg ICAgICAgICBrZGJfcHJudF9icF9leHRyYShpKTsKICAgICAgICB9CiAgICByZXR1cm4gS0RCX0NQ VV9NQUlOX0tEQjsKfQoKLyoKICogQ2hlY2sgaWYgYW55IGJyZWFrcG9pbnRzIHRoYXQgd2UgbmVl ZCB0byBpbnN0YWxsIChkZWxheWVkIGluc3RhbGwpCiAqIFJldHVybnM6IDEgaWYgeWVzLCAwIGlm IG5vbmUuCiAqLwppbnQKa2RiX3N3YnBfZXhpc3RzKHZvaWQpCnsKICAgIGludCBpOwogICAgZm9y IChpPTA7IGkgPCBLREJNQVhTQlA7IGkrKykKICAgICAgICBpZiAoa2RiX3NicGFbaV0uYnBfYWRk ciAmJiAha2RiX3NicGFbaV0uYnBfZGVsZXRlZCkKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICBy ZXR1cm4gMDsKfQovKgogKiBDaGVjayBpZiBhbnkgYnJlYWtwb2ludHMgd2VyZSBkZWxldGVkIHRo aXMga2RiIHNlc3Npb24KICogUmV0dXJuczogMCBpZiBub25lLCAxIGlmIHllcwogKi8Kc3RhdGlj IGludAprZGJfc3dicF9kZWxldGVkKHZvaWQpCnsKICAgIGludCBpOwogICAgZm9yIChpPTA7IGkg PCBLREJNQVhTQlA7IGkrKykKICAgICAgICBpZiAoa2RiX3NicGFbaV0uYnBfYWRkciAmJiBrZGJf c2JwYVtpXS5icF9kZWxldGVkKQogICAgICAgICAgICByZXR1cm4gMTsKICAgIHJldHVybiAwOwp9 CgovKgogKiBGbHVzaCBkZWxldGVkIHN3IGJyZWFrcG9pbnRzCiAqLwp2b2lkCmtkYl9mbHVzaF9z d2JwX3RhYmxlKHZvaWQpCnsKICAgIGludCBpOwogICAgS0RCR1AoImNjcHU6JWQgZmx1c2hfc3di cF90YWJsZTogZGVsZXRlZDoleFxuIiwgc21wX3Byb2Nlc3Nvcl9pZCgpLCAKICAgICAgICAgIGtk Yl9zd2JwX2RlbGV0ZWQoKSk7CiAgICBmb3IoaT0wOyBpIDwgS0RCTUFYU0JQOyBpKyspCiAgICAg ICAgaWYgKGtkYl9zYnBhW2ldLmJwX2FkZHIgJiYga2RiX3NicGFbaV0uYnBfZGVsZXRlZCkgewog ICAgICAgICAgICBLREJHUCgiZmx1c2g6WyV4XSBhZGRyOjB4JWx4XG4iLGksa2RiX3NicGFbaV0u YnBfYWRkcik7CiAgICAgICAgICAgIG1lbXNldCgma2RiX3NicGFbaV0sIDAsIHNpemVvZihrZGJf c2JwYVtpXSkpOwogICAgICAgIH0KfQoKLyoKICogRGVsZXRlL0NsZWFyIGEgc3cgYnJlYWtwb2lu dAogKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfYmModm9pZCkKewogICAga2RicCgi YmMgJG51bXxhbGwgOiBjbGVhciBnaXZlbiBvciBhbGwgYnJlYWtwb2ludHNcbiIpOwogICAgcmV0 dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3RhdGljIGtkYl9jcHVfY21kX3QgCmtkYl9jbWRmX2Jj KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Mp CnsKICAgIGludCBpLCBicG51bSA9IC0xLCBkZWxhbGwgPSAwOwogICAgY29uc3QgY2hhciAqYXJn cDsKCiAgICBpZiAoYXJnYyAhPSAyIHx8ICphcmd2WzFdID09ICc/JykKICAgICAgICByZXR1cm4g a2RiX3VzZ2ZfYmMoKTsKCiAgICBpZiAoIWtkYl9zd2JwX2V4aXN0cygpKSB7CiAgICAgICAga2Ri cCgiTm8gYnJlYWtwb2ludHMgYXJlIHNldFxuIik7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJ Tl9LREI7CiAgICB9CiAgICBhcmdwID0gYXJndlsxXTsKCiAgICBpZiAoIXN0cmNtcChhcmdwLCAi YWxsIikpCiAgICAgICAgZGVsYWxsID0gMTsKICAgIGVsc2UgaWYgKCFrZGJfc3RyMmRlY2koYXJn cCwgJmJwbnVtKSB8fCBicG51bSA8IDAgfHwgYnBudW0gPiBLREJNQVhTQlApIHsKICAgICAgICBr ZGJwKCJJbnZhbGlkIGJwbnVtOiAlc1xuIiwgYXJncCk7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVf TUFJTl9LREI7CiAgICB9CiAgICBmb3IgKGk9MDsgaSA8IEtEQk1BWFNCUDsgaSsrKSB7CiAgICAg ICAgaWYgKGRlbGFsbCAmJiBrZGJfc2JwYVtpXS5icF9hZGRyKSB7CiAgICAgICAgICAgIGtkYnAo IkRlbGV0ZWQgYnJlYWtwb2ludCBbJXhdIGFkZHI6MHglbHggZG9taWQ6JWRcbiIsIAogICAgICAg ICAgICAgICAgIChpbnQpaSwga2RiX3NicGFbaV0uYnBfYWRkciwga2RiX3NicGFbaV0uYnBfZG9t aWQpOwogICAgICAgICAgICBpZiAoa2RiX3NicGFbaV0uYnBfanVzdF9hZGRlZCkKICAgICAgICAg ICAgICAgIG1lbXNldCgma2RiX3NicGFbaV0sIDAsIHNpemVvZihrZGJfc2JwYVtpXSkpOwogICAg ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBrZGJfc2JwYVtpXS5icF9kZWxldGVkID0gMTsK ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmIChicG51bSAhPSAtMSAm JiBicG51bSA9PSBpKSB7CiAgICAgICAgICAgIGtkYnAoIkRlbGV0ZWQgYnJlYWtwb2ludCBbJXhd IGF0IDB4JWx4IGRvbWlkOiVkXG4iLCAKICAgICAgICAgICAgICAgICAoaW50KWksIGtkYl9zYnBh W2ldLmJwX2FkZHIsIGtkYl9zYnBhW2ldLmJwX2RvbWlkKTsKICAgICAgICAgICAgaWYgKGtkYl9z YnBhW2ldLmJwX2p1c3RfYWRkZWQpCiAgICAgICAgICAgICAgICBtZW1zZXQoJmtkYl9zYnBhW2ld LCAwLCBzaXplb2Yoa2RiX3NicGFbaV0pKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg ICAga2RiX3NicGFbaV0uYnBfZGVsZXRlZCA9IDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAg IH0KICAgIH0KICAgIGlmIChpID49IEtEQk1BWFNCUCAmJiAhZGVsYWxsKQogICAgICAgIGtkYnAo IlVuYWJsZSB0byBkZWxldGUgYnJlYWtwb2ludDogJXNcbiIsIGFyZ3ApOwoKICAgIHJldHVybiBL REJfQ1BVX01BSU5fS0RCOwp9CgovKgogKiBJbnN0YWxsIGEgYnJlYWtwb2ludCBpbiB0aGUgZ2l2 ZW4gYXJyYXkgZW50cnkKICogUmV0dXJuczogMCA6IGZhaWxlZCB0byBpbnN0YWxsCiAqICAgICAg ICAgIDEgOiBpbnN0YWxsZWQgc3VjY2Vzc2Z1bGx5CiAqLwpzdGF0aWMgaW50CmtkYl9pbnN0YWxs X3N3YnAoaW50IGlkeCkgICAgICAgICAgICAgICAgICAgLyogd2hpY2ggZW50cnkgaW4gdGhlIGJw IGFycmF5ICovCnsKICAgIGtkYnZhX3QgYWRkciA9IGtkYl9zYnBhW2lkeF0uYnBfYWRkcjsKICAg IGRvbWlkX3QgZG9taWQgPSBrZGJfc2JwYVtpZHhdLmJwX2RvbWlkOwogICAga2RiYnl0X3QgKnAg PSAma2RiX3NicGFbaWR4XS5icF9vcmlnaW5zdDsKICAgIHN0cnVjdCBkb21haW4gKmRwID0ga2Ri X2RvbWlkMnB0cihkb21pZCk7CgogICAgaWYgKGRwID09IE5VTEwgfHwgZHAtPmlzX2R5aW5nKSB7 CiAgICAgICAgbWVtc2V0KCZrZGJfc2JwYVtpZHhdLCAwLCBzaXplb2Yoa2RiX3NicGFbaWR4XSkp OwogICAgICAgIGtkYnAoIlJlbW92ZWQgYnAgJWQgYWRkcjolcCBkb21pZDolZFxuIiwgaWR4LCBh ZGRyLCBkb21pZCk7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgaWYgKGtkYl9yZWFkX21l bShhZGRyLCBwLCBLREJCUFNaLCBkb21pZCkgIT0gS0RCQlBTWil7CiAgICAgICAga2RicCgiRmFp bGVkKFIpIHRvIGluc3RhbGwgYnA6JXggYXQ6MHglbHggZG9taWQ6JWRcbiIsCiAgICAgICAgICAg ICBpZHgsIGtkYl9zYnBhW2lkeF0uYnBfYWRkciwgZG9taWQpOwogICAgICAgIHJldHVybiAwOwog ICAgfQogICAgaWYgKGtkYl93cml0ZV9tZW0oYWRkciwgJmtkYl9icGluc3QsIEtEQkJQU1osIGRv bWlkKSAhPSBLREJCUFNaKSB7CiAgICAgICAga2RicCgiRmFpbGVkKFcpIHRvIGluc3RhbGwgYnA6 JXggYXQ6MHglbHggZG9taWQ6JWRcbiIsCiAgICAgICAgICAgICBpZHgsIGtkYl9zYnBhW2lkeF0u YnBfYWRkciwgZG9taWQpOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgS0RCR1AoImluc3Rh bGxfc3dicDogaW5zdGFsbGVkIGJwOiV4IGF0OjB4JWx4IGNjcHU6JXggZG9taWQ6JWRcbiIsCiAg ICAgICAgICBpZHgsIGtkYl9zYnBhW2lkeF0uYnBfYWRkciwgc21wX3Byb2Nlc3Nvcl9pZCgpLCBk b21pZCk7CiAgICByZXR1cm4gMTsKfQoKLyoKICogSW5zdGFsbCBhbGwgdGhlIHNvZnR3YXJlIGJy ZWFrcG9pbnRzCiAqLwp2b2lkCmtkYl9pbnN0YWxsX2FsbF9zd2JwKHZvaWQpCnsKICAgIGludCBp OwogICAgZm9yKGk9MDsgaSA8IEtEQk1BWFNCUDsgaSsrKQogICAgICAgIGlmICgha2RiX3NicGFb aV0uYnBfZGVsZXRlZCAmJiBrZGJfc2JwYVtpXS5icF9hZGRyKQogICAgICAgICAgICBrZGJfaW5z dGFsbF9zd2JwKGkpOwp9CgpzdGF0aWMgdm9pZAprZGJfdW5pbnN0YWxsX2Ffc3dicChpbnQgaSkK ewogICAga2RidmFfdCBhZGRyID0ga2RiX3NicGFbaV0uYnBfYWRkcjsKICAgIGtkYmJ5dF90IG9y aWdpbnN0ID0ga2RiX3NicGFbaV0uYnBfb3JpZ2luc3Q7CiAgICBkb21pZF90IGlkID0ga2RiX3Ni cGFbaV0uYnBfZG9taWQ7CgogICAga2RiX3NicGFbaV0uYnBfanVzdF9hZGRlZCA9IDA7CiAgICBp ZiAoIWFkZHIpCiAgICAgICAgcmV0dXJuOwogICAgaWYgKGtkYl93cml0ZV9tZW0oYWRkciwgJm9y aWdpbnN0LCBLREJCUFNaLCBpZCkgIT0gS0RCQlBTWikgewogICAgICAgIGtkYnAoIkZhaWxlZCB0 byB1bmluc3RhbGwgYnJlYWtwb2ludCAleCBhdDoweCVseCBkb21pZDolZFxuIiwKICAgICAgICAg ICAgIGksIGtkYl9zYnBhW2ldLmJwX2FkZHIsIGlkKTsKICAgIH0KfQoKLyoKICogVW5pbnN0YWxs IGFsbCB0aGUgc29mdHdhcmUgYnJlYWtwb2ludHMgYXQgYmVnaW5uaW5nIG9mIGtkYiBzZXNzaW9u CiAqLwp2b2lkCmtkYl91bmluc3RhbGxfYWxsX3N3YnAodm9pZCkKewogICAgaW50IGk7CiAgICBm b3IoaT0wOyBpIDwgS0RCTUFYU0JQOyBpKyspIAogICAgICAgIGtkYl91bmluc3RhbGxfYV9zd2Jw KGkpOwogICAgS0RCR1AoImNjcHU6JWQgdW5pbnN0YWxsZWQgYWxsIGJwc1xuIiwgc21wX3Byb2Nl c3Nvcl9pZCgpKTsKfQoKLyogUkVUVVJOUzogcmMgPT0gMjogY29uZGl0aW9uIHdhcyBub3QgbWV0 LCAgcmMgPT0gMzogY29uZGl0aW9uIHdhcyBtZXQgKi8Kc3RhdGljIGludAprZGJfY2hlY2tfYnBf Y29uZGl0aW9uKGludCBicG51bSwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGRvbWlkX3Qg ZG9taWQpCnsKICAgIHVsb25nIHJlcyA9IDAsIGxoc3ZhbD0wOwogICAgc3RydWN0IGtkYl9icGNv bmQgKmJwY3AgPSAma2RiX3NicGFbYnBudW1dLnUuYnBfY29uZDsKCiAgICBpZiAoYnBjcC0+YnBf Y29uZF9zdGF0dXMgPT0gMSkgeyAgICAgICAgICAgICAvKiByZWdpc3RlciBjb25kaXRpb24gKi8K ICAgICAgICB1aW50NjRfdCAqcnAgPSAodWludDY0X3QgKikoKGNoYXIgKilyZWdzICsgYnBjcC0+ YnBfY29uZF9saHMpOwogICAgICAgIGxoc3ZhbCA9ICpycDsKICAgIH0gZWxzZSBpZiAoYnBjcC0+ YnBfY29uZF9zdGF0dXMgPT0gMikgeyAgICAgIC8qIG1lbWFkZHIgY29uZGl0aW9uICovCiAgICAg ICAgdWxvbmcgYWRkciA9IGJwY3AtPmJwX2NvbmRfbGhzOwogICAgICAgIGludCBudW0gPSBzaXpl b2YobGhzdmFsKTsKCiAgICAgICAgaWYgKGtkYl9yZWFkX21lbShhZGRyLCAoa2RiYnl0X3QgKikm bGhzdmFsLCBudW0sIGRvbWlkKSAhPSBudW0pIHsKICAgICAgICAgICAga2RicCgia2RiOiB1bmFi bGUgdG8gcmVhZCAlZCBieXRlcyBhdCAlbHhcbiIsIG51bSwgYWRkcik7CiAgICAgICAgICAgIHJl dHVybiAzOwogICAgICAgIH0KICAgIH0KICAgIGlmIChicGNwLT5icF9jb25kX3R5cGUgPT0gMSkg ICAgICAgICAgICAgICAgIC8qIGxocyA9PSByaHMgKi8KICAgICAgICByZXMgPSAobGhzdmFsID09 IGJwY3AtPmJwX2NvbmRfcmhzKTsKICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIGxocyAhPSByaHMgKi8KICAgICAgICByZXMgPSAobGhzdmFsICE9IGJw Y3AtPmJwX2NvbmRfcmhzKTsKCiAgICBpZiAoIXJlcykKICAgICAgICBrZGJwKCJLREI6IFslZF1J Z25vcmluZyBicDolZCBjb25kaXRpb24gbm90IG1ldC4gdmFsOiVseFxuIiwgCiAgICAgICAgICAg ICAgc21wX3Byb2Nlc3Nvcl9pZCgpLCBicG51bSwgbGhzdmFsKTsgCgogICAgS0RCR1AxKCJicG51 bTolZCBkb21pZDolZCBjb25kOiAlZCAlZCAlbHggJWx4IHJlczolZFxuIiwgYnBudW0sIGRvbWlk LCAKICAgICAgICAgICBicGNwLT5icF9jb25kX3N0YXR1cywgYnBjcC0+YnBfY29uZF90eXBlLCBi cGNwLT5icF9jb25kX2xocywgCiAgICAgICAgICAgYnBjcC0+YnBfY29uZF9yaHMsIHJlcyk7Cgog ICAgcmV0dXJuIChyZXMgPyAzIDogMik7Cn0KCnN0YXRpYyB2b2lkCmtkYl9wcm50X2J0cF9pbmZv KGludCBicG51bSwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGRvbWlkX3QgZG9taWQpCnsK ICAgIHVsb25nIGksIGFyZywgdmFsLCBudW0sICpidHAgPSBrZGJfc2JwYVticG51bV0udS5icF9i dHA7CgogICAga2RiX3BybnRfYWRkcjJzeW0oZG9taWQsIHJlZ3MtPktEQklQLCAiXG4iKTsKICAg IG51bSA9IGtkYl9ndWVzdF9iaXRuZXNzKGRvbWlkKS84OwogICAgZm9yIChpPTA7IGkgPCBLREJf TUFYQlRQICYmIChhcmc9YnRwW2ldKTsgaSsrKSB7CiAgICAgICAgaWYgKGFyZyA8IHNpemVvZiAo c3RydWN0IGNwdV91c2VyX3JlZ3MpKSB7CiAgICAgICAgICAgIHVpbnQ2NF90ICpycCA9ICh1aW50 NjRfdCAqKSgoY2hhciAqKXJlZ3MgKyBhcmcpOwogICAgICAgICAgICBrZGJwKCIgJXM6ICUwMTZs eCAiLCBrZGJfcmVnb2Zmc190b19uYW1lKGFyZyksICpycCk7CiAgICAgICAgfSBlbHNlIHsKICAg ICAgICAgICAgaWYgKGtkYl9yZWFkX21lbShhcmcsIChrZGJieXRfdCAqKSZ2YWwsIG51bSwgZG9t aWQpICE9IG51bSkKICAgICAgICAgICAgICAgIGtkYnAoImtkYjogdW5hYmxlIHRvIHJlYWQgJWQg Ynl0ZXMgYXQgJWx4XG4iLCBudW0sIGFyZyk7CiAgICAgICAgICAgIGlmIChudW0gPT0gOCkKICAg ICAgICAgICAgICAgIGtkYnAoIiAlMDE2bHg6JTAxNmx4ICIsIGFyZywgdmFsKTsKICAgICAgICAg ICAgZWxzZQogICAgICAgICAgICAgICAga2RicCgiICUwOGx4OiUwOGx4ICIsIGFyZywgdmFsKTsK ICAgICAgICB9CiAgICB9CiAgICBrZGJwKCJcbiIpOwogICAgS0RCR1AxKCJicG51bTolZCBkb21p ZDolZCBidHA6JXAgbnVtOiVkXG4iLCBicG51bSwgZG9taWQsIGJ0cCwgbnVtKTsKfQoKLyoKICog Q2hlY2sgaWYgdGhlIEJQIHRyYXAgYmVsb25ncyB0byB1cy4gCiAqIFJldHVybjogMCA6IG5vdCBv bmUgb2Ygb3Vycy4gSVAgbm90IGNoYW5nZWQuIChsZWF2ZSBrZGIpCiAqICAgICAgICAgMSA6IG9u ZSBvZiBvdXJzIGJ1dCBkZWxldGVkLiBJUCBkZWNyZW1lbnRlZC4gKGxlYXZlIGtkYikKICogICAg ICAgICAyIDogb25lIG9mIG91cnMgYnV0IGNvbmRpdGlvbiBub3QgbWV0LCBvciBidHAuIElQIGRl Y3JlbWVudGVkLihsZWF2ZSkKICogICAgICAgICAzIDogb25lIG9mIG91cnMgYW5kIGFjdGl2ZS4g SVAgZGVjcmVtZW50ZWQuIChzdGF5IGluIGtkYikKICovCmludCAKa2RiX2NoZWNrX3N3X2JrcHRz KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICBpbnQgaSwgcmM9MDsKICAgIGRvbWlk X3QgY3VyaWQ7CgogICAgY3VyaWQgPSBndWVzdF9tb2RlKHJlZ3MpID8gY3VycmVudC0+ZG9tYWlu LT5kb21haW5faWQgOiBET01JRF9JRExFOwogICAgZm9yKGk9MDsgaSA8IEtEQk1BWFNCUDsgaSsr KSB7CiAgICAgICAgaWYgKGtkYl9zYnBhW2ldLmJwX2RvbWlkID09IGN1cmlkICAmJiAKICAgICAg ICAgICAga2RiX3NicGFbaV0uYnBfYWRkciA9PSAocmVncy0+S0RCSVAtIEtEQkJQU1opKSB7Cgog ICAgICAgICAgICByZWdzLT5LREJJUCAtPSBLREJCUFNaOwogICAgICAgICAgICByYyA9IDM7Cgog ICAgICAgICAgICBpZiAoa2RiX3NicGFbaV0uYnBfbmkpIHsKICAgICAgICAgICAgICAgIGtkYl91 bmluc3RhbGxfYV9zd2JwKGkpOwogICAgICAgICAgICAgICAgbWVtc2V0KCZrZGJfc2JwYVtpXSwg MCwgc2l6ZW9mKGtkYl9zYnBhW2ldKSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2RiX3NicGFb aV0uYnBfZGVsZXRlZCkgewogICAgICAgICAgICAgICAgcmMgPSAxOwogICAgICAgICAgICB9IGVs c2UgaWYgKGtkYl9zYnBhW2ldLmJwX3R5cGUgPT0gMSkgewogICAgICAgICAgICAgICAgcmMgPSBr ZGJfY2hlY2tfYnBfY29uZGl0aW9uKGksIHJlZ3MsIGN1cmlkKTsKICAgICAgICAgICAgfSBlbHNl IGlmIChrZGJfc2JwYVtpXS5icF90eXBlID09IDIpIHsKICAgICAgICAgICAgICAgIGtkYl9wcm50 X2J0cF9pbmZvKGksIHJlZ3MsIGN1cmlkKTsKICAgICAgICAgICAgICAgIHJjID0gMjsKICAgICAg ICAgICAgfQogICAgICAgICAgICBLREJHUDEoImNjcHU6JWQgcmM6JWQgY3VyaWQ6JWQgZG9taWQ6 JWQgYWRkcjolbHhcbiIsIAogICAgICAgICAgICAgICAgICAgc21wX3Byb2Nlc3Nvcl9pZCgpLCBy YywgY3VyaWQsIGtkYl9zYnBhW2ldLmJwX2RvbWlkLCAKICAgICAgICAgICAgICAgICAgIGtkYl9z YnBhW2ldLmJwX2FkZHIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBy ZXR1cm4gKHJjKTsKfQoKLyogRWc6IHI2ID09IDB4MTIzRURGICBvciAweEZGRkYyMDM0ICE9IDB4 REVBREJFRUYKICogcmVnb2ZmczogLTEgbWVhbnMgbGhzIGlzIG5vdCByZWcuIGVsc2Ugb2Zmc2V0 IG9mIHJlZyBpbiBjcHVfdXNlcl9yZWdzCiAqIGFkZHI6IG1lbW9yeSBsb2NhdGlvbiBpZiBsaHMg aXMgbm90IHJlZ2lzdGVyLCBlZywgMHhGRkZGMjAzNAogKiBjb25kcCA6IHBvaW50cyB0byAhPSBv ciA9PQogKiByaHN2YWwgOiByaWdodCBoYW5kIHNpZGUgdmFsdWUKICovCnN0YXRpYyB2b2lkCmtk Yl9zZXRfYnBfY29uZChpbnQgYnBudW0sIGludCByZWdvZmZzLCB1bG9uZyBhZGRyLCBjaGFyICpj b25kcCwgdWxvbmcgcmhzdmFsKQp7CiAgICBpZiAoYnBudW0gPj0gS0RCTUFYU0JQKSB7CiAgICAg ICAga2RicCgiQlVHOiAlcyBnb3QgaW52YWxpZCBicG51bVxuIiwgX19GVU5DVElPTl9fKTsKICAg ICAgICByZXR1cm47CiAgICB9CiAgICBpZiAocmVnb2ZmcyAhPSAtMSkgewogICAgICAgIGtkYl9z YnBhW2JwbnVtXS51LmJwX2NvbmQuYnBfY29uZF9zdGF0dXMgPSAxOwogICAgICAgIGtkYl9zYnBh W2JwbnVtXS51LmJwX2NvbmQuYnBfY29uZF9saHMgPSByZWdvZmZzOwogICAgfSBlbHNlIGlmIChh ZGRyICE9IDApIHsKICAgICAgICBrZGJfc2JwYVticG51bV0udS5icF9jb25kLmJwX2NvbmRfc3Rh dHVzID0gMjsKICAgICAgICBrZGJfc2JwYVticG51bV0udS5icF9jb25kLmJwX2NvbmRfbGhzID0g YWRkcjsKICAgIH0gZWxzZSB7CiAgICAgICAga2RicCgiZXJyb3I6IGludmFsaWQgY2FsbCB0byBr ZGJfc2V0X2JwX2NvbmRcbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGtkYl9zYnBhW2Jw bnVtXS51LmJwX2NvbmQuYnBfY29uZF9yaHMgPSByaHN2YWw7CgogICAgaWYgKCpjb25kcCA9PSAn IScpCiAgICAgICAga2RiX3NicGFbYnBudW1dLnUuYnBfY29uZC5icF9jb25kX3R5cGUgPSAyOwog ICAgZWxzZQogICAgICAgIGtkYl9zYnBhW2JwbnVtXS51LmJwX2NvbmQuYnBfY29uZF90eXBlID0g MTsKfQoKLyogaW5zdGFsbCBicmVha3B0IGF0IGdpdmVuIGFkZHIuIAogKiBuaTogYnAgZm9yIG5l eHQgaW5zdHIgCiAqIGJ0cGE6IHB0ciB0byBhcmdzIGZvciBidHAgZm9yIHByaW50aW5nIHdoZW4g YnAgaXMgaGl0CiAqIGxoc3AvY29uZHAvcmhzcDogcG9pbnQgdG8gc3RyaW5ncyBvZiBjb25kaXRp b24KICoKICogUkVUVVJOUzogdGhlIGluZGV4IGluIGFycmF5IHdoZXJlIGluc3RhbGxlZC4gS0RC TUFYU0JQIGlmIGVycm9yIAogKi8Kc3RhdGljIGludAprZGJfc2V0X2JwKGRvbWlkX3QgZG9taWQs IGtkYnZhX3QgYWRkciwgaW50IG5pLCB1bG9uZyAqYnRwYSwgY2hhciAqbGhzcCwgCiAgICAgICAg ICAgY2hhciAqY29uZHAsIGNoYXIgKnJoc3ApCnsKICAgIGludCBpLCBwcmVfZXhpc3RpbmcgPSAw LCByZWdvZmZzID0gLTE7CiAgICB1bG9uZyBtZW1sb2M9MCwgcmhzdmFsPTAsIHRtcHVsOwoKICAg IGlmIChidHBhICYmIChsaHNwIHx8IHJoc3AgfHwgY29uZHApKSB7CiAgICAgICAga2RicCgiaW50 ZXJuYWwgZXJyb3IuIGJ0cGEgYW5kIChsaHNwIHx8IHJoc3AgfHwgY29uZHApIHNldFxuIik7CiAg ICAgICAgcmV0dXJuIEtEQk1BWFNCUDsKICAgIH0KICAgIGlmIChsaHNwICYmICgocmVnb2Zmcz1r ZGJfdmFsaWRfcmVnKGxoc3ApKSA9PSAtMSkgICYmCiAgICAgICAga2RiX3N0cjJ1bG9uZyhsaHNw LCAmbWVtbG9jKSAmJgogICAgICAgIGtkYl9yZWFkX21lbShtZW1sb2MsIChrZGJieXRfdCAqKSZ0 bXB1bCwgc2l6ZW9mKHRtcHVsKSwgZG9taWQpPT0wKSB7CgogICAgICAgIGtkYnAoImVycm9yOiBp bnZhbGlkIGFyZ3VtZW50OiAlc1xuIiwgbGhzcCk7CiAgICAgICAgcmV0dXJuIEtEQk1BWFNCUDsK ICAgIH0KICAgIGlmIChyaHNwICYmICEga2RiX3N0cjJ1bG9uZyhyaHNwLCAmcmhzdmFsKSkgewog ICAgICAgIGtkYnAoImVycm9yOiBpbnZhbGlkIGFyZ3VtZW50OiAlc1xuIiwgcmhzcCk7CiAgICAg ICAgcmV0dXJuIEtEQk1BWFNCUDsKICAgIH0KCiAgICAvKiBzZWUgaWYgYnAgYWxyZWFkeSBzZXQg Ki8KICAgIGZvciAoaT0wOyBpIDwgS0RCTUFYU0JQOyBpKyspIHsKICAgICAgICBpZiAoa2RiX3Ni cGFbaV0uYnBfYWRkcj09YWRkciAmJiBrZGJfc2JwYVtpXS5icF9kb21pZD09ZG9taWQpIHsKCiAg ICAgICAgICAgIGlmIChrZGJfc2JwYVtpXS5icF9kZWxldGVkKSB7CiAgICAgICAgICAgICAgICAv KiBqdXN0IHJlLXNldCB0aGlzIGJwIGFnYWluICovCiAgICAgICAgICAgICAgICBtZW1zZXQoJmtk Yl9zYnBhW2ldLCAwLCBzaXplb2Yoa2RiX3NicGFbaV0pKTsKICAgICAgICAgICAgICAgIHByZV9l eGlzdGluZyA9IDE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBrZGJwKCJC cmVha3BvaW50IGFscmVhZHkgc2V0IFxuIik7CiAgICAgICAgICAgICAgICByZXR1cm4gS0RCTUFY U0JQOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgLyogc2VlIGlmIGFueSByb29t IGxlZnQgZm9yIGFub3RoZXIgYnJlYWtwb2ludCAqLwogICAgZm9yIChpPTA7IGkgPCBLREJNQVhT QlA7IGkrKykKICAgICAgICBpZiAoIWtkYl9zYnBhW2ldLmJwX2FkZHIpCiAgICAgICAgICAgIGJy ZWFrOwogICAgaWYgKGkgPj0gS0RCTUFYU0JQKSB7CiAgICAgICAga2RicCgiRVJST1I6IEJyZWFr cG9pbnQgdGFibGUgZnVsbC4uLi5cbiIpOwogICAgICAgIHJldHVybiBpOwogICAgfQogICAga2Ri X3NicGFbaV0uYnBfYWRkciA9IGFkZHI7CiAgICBrZGJfc2JwYVtpXS5icF9kb21pZCA9IGRvbWlk OwogICAgaWYgKGJ0cGEpIHsKICAgICAgICBrZGJfc2JwYVtpXS5icF90eXBlID0gMjsKICAgICAg ICBrZGJfc2JwYVtpXS51LmJwX2J0cCA9IGJ0cGE7CiAgICB9IGVsc2UgaWYgKHJlZ29mZnMgIT0g LTEgfHwgbWVtbG9jKSB7CiAgICAgICAga2RiX3NicGFbaV0uYnBfdHlwZSA9IDE7CiAgICAgICAg a2RiX3NldF9icF9jb25kKGksIHJlZ29mZnMsIG1lbWxvYywgY29uZHAsIHJoc3ZhbCk7CiAgICB9 IGVsc2UKICAgICAgICBrZGJfc2JwYVtpXS5icF90eXBlID0gMDsKCiAgICBpZiAoa2RiX2luc3Rh bGxfc3dicChpKSkgeyAgICAgICAgICAgICAgICAgIC8qIG1ha2Ugc3VyZSBpdCBjYW4gYmUgZG9u ZSAqLwogICAgICAgIGlmIChuaSkKICAgICAgICAgICAgcmV0dXJuIGk7CgogICAgICAgIGtkYl91 bmluc3RhbGxfYV9zd2JwKGkpOyAgICAgICAgICAgICAgICAvKiBkb250JyBzaG93IHVzZXIgSU5U MyAqLwogICAgICAgIGlmICghcHJlX2V4aXN0aW5nKSAgICAgICAgICAgICAgIC8qIG1ha2Ugc3Vy ZSBubyBpcyBjcHUgc2l0dGluZyBvbiBpdCAqLwogICAgICAgICAgICBrZGJfc2JwYVtpXS5icF9q dXN0X2FkZGVkID0gMTsKCiAgICAgICAga2RicCgiYnAgJWQgc2V0IGZvciBkb21pZDolZCBhdDog MHglbHggIiwgaSwga2RiX3NicGFbaV0uYnBfZG9taWQsIAogICAgICAgICAgICAga2RiX3NicGFb aV0uYnBfYWRkcik7CiAgICAgICAga2RiX3BybnRfYWRkcjJzeW0oZG9taWQsIGFkZHIsICJcbiIp OwogICAgICAgIGtkYl9wcm50X2JwX2V4dHJhKGkpOwogICAgfSBlbHNlIHsKICAgICAgICBrZGJw KCJFUlJPUjpDYW4ndCBpbnN0YWxsIGJwOiAweCVseCBkb21pZDolZFxuIiwgYWRkciwgZG9taWQp OwogICAgICAgIGlmIChwcmVfZXhpc3RpbmcpICAgICAvKiBpbiBjYXNlIGEgY3B1IGlzIHNpdHRp bmcgb24gdGhpcyBicCBpbiB0cmFwcyAqLwogICAgICAgICAgICBrZGJfc2JwYVtpXS5icF9kZWxl dGVkID0gMTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIG1lbXNldCgma2RiX3NicGFbaV0sIDAs IHNpemVvZihrZGJfc2JwYVtpXSkpOwogICAgICAgIHJldHVybiBLREJNQVhTQlA7CiAgICB9CiAg ICAvKiBtYWtlIHN1cmUgc3dicCByZXBvcnRpbmcgaXMgZW5hYmxlZCBpbiB0aGUgdm1jYi92bWNz ICovCiAgICBpZiAoaXNfaHZtX29yX2h5Yl9kb21haW4oa2RiX2RvbWlkMnB0cihkb21pZCkpKSB7 CiAgICAgICAgc3RydWN0IGRvbWFpbiAqZHAgPSBrZGJfZG9taWQycHRyKGRvbWlkKTsKICAgICAg ICBkcC0+ZGVidWdnZXJfYXR0YWNoZWQgPSAxOyAgICAgICAgICAgICAgLyogc2VlIHN2bV9kb19y ZXN1bWUvdm14X2RvXyAqLwogICAgICAgIEtEQkdQKCJkZWJ1Z2dlcl9hdHRhY2hlZCBzZXQuIGRv bWlkOiVkXG4iLCBkb21pZCk7CiAgICB9CiAgICByZXR1cm4gaTsKfQoKLyogCiAqIFNldC9MaXN0 IFNvZnR3YXJlIEJyZWFrcG9pbnQvcwogKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2Zf YnAodm9pZCkKewogICAga2RicCgiYnAgW2FkZHJ8c3ltXVtkb21pZF1bY29uZGl0aW9uXTogZGlz cGxheSBvciBzZXQgYSBicmVha3BvaW50XG4iKTsKICAgIGtkYnAoIiAgd2hlcmUgY29uZCBpcyBs aWtlOiByNiA9PSAweDEyM0Ygb3IgcmF4ICE9IERFQURCRUVGIG9yIFxuIik7CiAgICBrZGJwKCIg ICAgICAgZmZmZjgyYzQ4MDM4ZmU1OCA9PSAzMjFFIG9yIDB4ZmZmZjgyYzQ4MDM4ZmU1OCAhPSAw XG4iKTsKICAgIGtkYnAoIiAgcmVnczogcmF4IHJieCByY3ggcmR4IHJzaSByZGkgcmJwIHJzcCBy OCByOSIpOwogICAga2RicCgiIHIxMCByMTEgcjEyIHIxMyByMTQgcjE1IHJmbGFnc1xuIik7CiAg ICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdCAKa2RiX2Nt ZGZfYnAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKewogICAga2RidmFfdCBhZGRyOwogICAgaW50IGlkeCA9IC0xOwogICAgZG9taWRfdCBk b21pZCA9IERPTUlEX0lETEU7CiAgICBjaGFyICpkb21pZHN0cnAsICpsaHNwPU5VTEwsICpjb25k cD1OVUxMLCAqcmhzcD1OVUxMOwoKICAgIGlmICgoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0gJz8n KSB8fCBhcmdjID09IDQgfHwgYXJnYyA+IDYpCiAgICAgICAgcmV0dXJuIGtkYl91c2dmX2JwKCk7 CgogICAgaWYgKGFyZ2MgPCAyIHx8IGtkYl9zeXNfY3Jhc2gpICAgICAgICAgLyogbGlzdCBhbGwg c2V0IGJyZWFrcG9pbnRzICovCiAgICAgICAgcmV0dXJuIGtkYl9kaXNwbGF5X3Nia3B0cygpOwoK ICAgIC8qIHZhbGlkIGFyZ2MgZWl0aGVyOiAyIDMgNSBvciA2IAogICAgICogJ2JwIGlkbGVfbG9v cCByNiA9PSAweGMwMDAnIE9SICdicCBpZGxlX2xvb3AgMyByOSAhPSAweGRlYWRiZWVmJyAqLwog ICAgaWR4ID0gKGFyZ2MgPT0gNSkgPyAyIDogKChhcmdjID09IDYpID8gMyA6IGlkeCk7CiAgICBp ZiAoYXJnYyA+PSA1ICkgewogICAgICAgIGxoc3AgPSAoY2hhciAqKWFyZ3ZbaWR4XTsKICAgICAg ICBjb25kcCA9IChjaGFyICopYXJndltpZHgrMV07CiAgICAgICAgcmhzcCA9IChjaGFyICopYXJn dltpZHgrMl07CgogICAgICAgIGlmICgha2RiX3N0cjJ1bG9uZyhyaHNwLCBOVUxMKSB8fCAqKGNv bmRwKzEpICE9ICc9JyB8fCAKICAgICAgICAgICAgKCpjb25kcCAhPSAnPScgJiYgKmNvbmRwICE9 ICchJykpIHsKCiAgICAgICAgICAgIHJldHVybiBrZGJfdXNnZl9icCgpOwogICAgICAgIH0KICAg IH0KICAgIGRvbWlkc3RycCA9IChhcmdjID09IDMgfHwgYXJnYyA9PSA2ICkgPyAoY2hhciAqKWFy Z3ZbMl0gOiBOVUxMOwogICAgaWYgKGRvbWlkc3RycCAmJiAha2RiX3N0cjJkb21pZChkb21pZHN0 cnAsICZkb21pZCwgMSkpIHsKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfYnAoKTsKICAgIH0KICAg IGlmIChhcmdjID4gMyAmJiBpc19odm1fb3JfaHliX2RvbWFpbihrZGJfZG9taWQycHRyKGRvbWlk KSkpIHsKICAgICAgICBrZGJwKCJIVk0gZG9tYWluIG5vdCBzdXBwb3J0ZWQgeWV0IGZvciBjb25k aXRpb25hbCBicFxuIik7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICB9Cgog ICAgaWYgKCFrZGJfc3RyMmFkZHIoYXJndlsxXSwgJmFkZHIsIGRvbWlkKSB8fCBhZGRyID09IDAp IHsKICAgICAgICBrZGJwKCJJbnZhbGlkIGFyZ3VtZW50OiVzXG4iLCBhcmd2WzFdKTsKICAgICAg ICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KCiAgICAvKiBtYWtlIHN1cmUgeGVuIGFk ZHIgaXMgaW4geGVuIHRleHQsIG90aGVyd2lzZSBicCBzZXQgaW4gNjRiaXQgZG9tMC9VICovCiAg ICBpZiAoZG9taWQgPT0gRE9NSURfSURMRSAmJiAKICAgICAgICAoYWRkciA8IFhFTl9WSVJUX1NU QVJUIHx8IGFkZHIgPiBYRU5fVklSVF9FTkQpKQogICAgewogICAgICAgIGtkYnAoImFkZHI6JWx4 IG5vdCBpbiAgeGVuIHRleHRcbiIsIGFkZHIpOwogICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5f S0RCOwogICAgfQogICAga2RiX3NldF9icChkb21pZCwgYWRkciwgMCwgTlVMTCwgbGhzcCwgY29u ZHAsIHJoc3ApOyAgICAgLyogMCBpcyBuaSBmbGFnICovCiAgICByZXR1cm4gS0RCX0NQVV9NQUlO X0tEQjsKfQoKCi8qIHRyYWNlIGJyZWFrcG9pbnQsIG1lYW5pbmcsIHVwb24gYnAgdHJhY2UvcHJp bnQgc29tZSBpbmZvIGFuZCBjb250aW51ZSAqLwoKc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3Vz Z2ZfYnRwKHZvaWQpCnsKICAgIGtkYnAoImJ0cCBhZGRyfHN5bSBbZG9taWRdIHJlZ3xkb21pZC1t ZW0tYWRkci4uLiA6IGJyZWFrcG9pbnQgdHJhY2VcbiIpOwogICAga2RicCgiICByZWdzOiByYXgg cmJ4IHJjeCByZHggcnNpIHJkaSByYnAgcnNwIHI4IHI5ICIpOwogICAga2RicCgicjEwIHIxMSBy MTIgcjEzIHIxNCByMTUgcmZsYWdzXG4iKTsKICAgIGtkYnAoIiAgRWcuIGJ0cCBpZGxlX2NwdSA3 IHJheCByYnggMHgyMGVmNWE1IHI5XG4iKTsKICAgIGtkYnAoIiAgICAgIHdpbGwgcHJpbnQgcmF4 LCByYngsICoobG9uZyAqKTB4MjBlZjVhNSwgcjkgYW5kIGNvbnRpbnVlXG4iKTsKICAgIHJldHVy biBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90IAprZGJfY21kZl9idHAo aW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykK ewogICAgaW50IGksIGJ0cGlkeCwgbnVtcmQsIGFyZ3NpZHgsIHJlZ29mZnMgPSAtMTsKICAgIGtk YnZhX3QgYWRkciwgbWVtbG9jPTA7CiAgICBkb21pZF90IGRvbWlkID0gRE9NSURfSURMRTsKICAg IHVsb25nICpidHBhLCB0bXB1bDsKCiAgICBpZiAoKGFyZ2MgPiAxICYmICphcmd2WzFdID09ICc/ JykgfHwgYXJnYyA8IDMpCiAgICAgICAgcmV0dXJuIGtkYl91c2dmX2J0cCgpOwoKICAgIGFyZ3Np ZHggPSAyOyAgICAgICAgICAgICAgICAgICAvKiBhc3N1bWUgM3JkIGFyZyBpcyBub3QgZG9taWQg Ki8KICAgIGlmIChhcmdjID4gMyAmJiBrZGJfc3RyMmRvbWlkKGFyZ3ZbMl0sICZkb21pZCwgMCkp IHsKCiAgICAgICAgaWYgKGlzX2h2bV9vcl9oeWJfZG9tYWluKGtkYl9kb21pZDJwdHIoZG9taWQp KSkgewogICAgICAgICAgICBrZGJwKCJIVk0gZG9tYWlucyBhcmUgbm90IGN1cnJlbnRseSBzdXBw cnRlZFxuIik7CiAgICAgICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgICAgIH0g ZWxzZQogICAgICAgICAgICBhcmdzaWR4ID0gMzsgICAgICAgICAgICAgICAvKiAzcmQgYXJnIGlz IGEgZG9taWQgKi8KICAgIH0KICAgIGlmICgha2RiX3N0cjJhZGRyKGFyZ3ZbMV0sICZhZGRyLCBk b21pZCkgfHwgYWRkciA9PSAwKSB7CiAgICAgICAga2RicCgiSW52YWxpZCBhcmd1bWVudDolc1xu IiwgYXJndlsxXSk7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICB9CiAgICAv KiBtYWtlIHN1cmUgeGVuIGFkZHIgaXMgaW4geGVuIHRleHQsIG90aGVyd2lzZSB3aWxsIHRyYWNl IDY0Yml0IGRvbTAvVSAqLwogICAgaWYgKGRvbWlkID09IERPTUlEX0lETEUgJiYgCiAgICAgICAg KGFkZHIgPCBYRU5fVklSVF9TVEFSVCB8fCBhZGRyID4gWEVOX1ZJUlRfRU5EKSkKICAgIHsKICAg ICAgICBrZGJwKCJhZGRyOiVseCBub3QgaW4gIHhlbiB0ZXh0XG4iLCBhZGRyKTsKICAgICAgICBy ZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KCiAgICBudW1yZCA9IGtkYl9ndWVzdF9iaXRu ZXNzKGRvbWlkKS84OwogICAgaWYgKGtkYl9yZWFkX21lbShhZGRyLCAoa2RiYnl0X3QgKikmdG1w dWwsIG51bXJkLCBkb21pZCkgIT0gbnVtcmQpIHsKICAgICAgICBrZGJwKCJVbmFibGUgdG8gcmVh ZCBtZW0gZnJvbSAlcyAoJWx4KVxuIiwgYXJndlsxXSwgYWRkcik7CiAgICAgICAgcmV0dXJuIEtE Ql9DUFVfTUFJTl9LREI7CiAgICB9CgogICAgZm9yIChidHBpZHg9MDsgYnRwaWR4IDwgS0RCTUFY U0JQICYmIGtkYl9idHBfYXBbYnRwaWR4XTsgYnRwaWR4KyspOwogICAgaWYgKGJ0cGlkeCA+PSBL REJNQVhTQlApIHsKICAgICAgICBrZGJwKCJlcnJvcjogdGFibGUgZnVsbC4gZGVsZXRlIGZldyBi cmVha3BvaW50c1xuIik7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICB9CiAg ICBidHBhID0ga2RiX2J0cF9hcmdzYVtidHBpZHhdOwogICAgbWVtc2V0KGJ0cGEsIDAsIHNpemVv ZihrZGJfYnRwX2FyZ3NhWzBdKSk7CgogICAgZm9yIChpPTA7IGFyZ3ZbYXJnc2lkeF07IGkrKywg YXJnc2lkeCsrKSB7CgogICAgICAgIGlmICgoKHJlZ29mZnM9a2RiX3ZhbGlkX3JlZyhhcmd2W2Fy Z3NpZHhdKSkgPT0gLTEpICAmJgogICAgICAgICAgICBrZGJfc3RyMnVsb25nKGFyZ3ZbYXJnc2lk eF0sICZtZW1sb2MpICYmCiAgICAgICAgICAgIChtZW1sb2MgPCBzaXplb2YgKHN0cnVjdCBjcHVf dXNlcl9yZWdzKSB8fAogICAgICAgICAgICBrZGJfcmVhZF9tZW0obWVtbG9jLCAoa2RiYnl0X3Qg KikmdG1wdWwsIHNpemVvZih0bXB1bCksIGRvbWlkKT09MCkpewoKICAgICAgICAgICAga2RicCgi ZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICVzXG4iLCBhcmd2W2FyZ3NpZHhdKTsKICAgICAgICAg ICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7CiAgICAgICAgfQogICAgICAgIGlmIChpID49IEtE Ql9NQVhCVFApIHsKICAgICAgICAgICAga2RicCgiZXJyb3I6IGNhbm5vdCBzcGVjaWZ5IG1vcmUg dGhhbiAlZCBhcmdzXG4iLCBLREJfTUFYQlRQKTsKICAgICAgICAgICAgcmV0dXJuIEtEQl9DUFVf TUFJTl9LREI7CiAgICAgICAgfQogICAgICAgIGJ0cGFbaV0gPSAocmVnb2ZmcyA9PSAtMSkgPyBt ZW1sb2MgOiByZWdvZmZzOwogICAgfQoKICAgIGkgPSBrZGJfc2V0X2JwKGRvbWlkLCBhZGRyLCAw LCBidHBhLCAwLCAwLCAwKTsgICAgIC8qIDAgaXMgbmkgZmxhZyAqLwogICAgaWYgKGkgPCBLREJN QVhTQlApCiAgICAgICAga2RiX2J0cF9hcFtidHBpZHhdID0ga2RiX2J0cF9hcmdzYVtidHBpZHhd OwoKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CgovKiAKICogU2V0L0xpc3Qgd2F0Y2hw b2ludHMsIGllLCBoYXJkd2FyZSBicmVha3BvaW50L3MsIGluIGh5cGVydmlzb3IKICogICBVc2Fn ZTogd3AgW3N5bXxhZGRyXSBbd3xpXSAgIHcgPT0gd3JpdGUgb25seSBkYXRhIHdhdGNocG9pbnQK ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPT0gSU8gd2F0Y2hwb2ludCAocmVh ZC93cml0ZSkKICoKICogICBFZzogIHdwICAgICAgICA6IGxpc3QgYWxsIHdhdGNocG9pbnRzIHNl dAogKiAgICAgICAgd3AgYWRkciAgIDogc2V0IGEgcmVhZC93cml0ZSB3cCBhdCBnaXZlbiBhZGRy CiAqICAgICAgICB3cCBhZGRyIHcgOiBzZXQgYSB3cml0ZSBvbmx5IHdwIGF0IGdpdmVuIGFkZHIK ICogICAgICAgIHdwIGFkZHIgaSA6IHNldCBhbiBJTyB3cCBhdCBnaXZlbiBhZGRyICgxNmJpdHMg cG9ydCAjKQogKgogKiAgVEJEOiBhbGxvdyB0byBiZSBzZXQgb24gcGFydGljdWxhciBjcHUKICov CnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX3dwKHZvaWQpCnsKICAgIGtkYnAoIndwIFth ZGRyfHN5bV1bd3xpXTogZGlzcGxheSBvciBzZXQgd2F0Y2hwb2ludC4gd3JpdGVvbmx5IG9yIElP XG4iKTsKICAgIGtkYnAoIlx0bm90ZTogd2F0Y2hwb2ludCBpcyB0cmlnZ2VyZWQgYWZ0ZXIgdGhl IGluc3RydWN0aW9uIGV4ZWN1dGVzXG4iKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9 CnN0YXRpYyBrZGJfY3B1X2NtZF90IAprZGJfY21kZl93cChpbnQgYXJnYywgY29uc3QgY2hhciAq KmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICBrZGJ2YV90IGFkZHI7CiAg ICBkb21pZF90IGRvbWlkID0gRE9NSURfSURMRTsKICAgIGludCBydyA9IDMsIGxlbiA9IDQ7ICAg ICAgIC8qIGZvciBub3cganVzdCBkZWZhdWx0IHRvIDQgYnl0ZXMgbGVuICovCgogICAgaWYgKGFy Z2MgPiAxICYmICphcmd2WzFdID09ICc/JykKICAgICAgICByZXR1cm4ga2RiX3VzZ2Zfd3AoKTsK CiAgICBpZiAoYXJnYyA8PSAxIHx8IGtkYl9zeXNfY3Jhc2gpIHsgICAgICAgLyogbGlzdCBhbGwg c2V0IHdhdGNocG9pbnRzICovCiAgICAgICAga2RiX2RvX3dhdGNocG9pbnRzKDAsIDAsIDApOwog ICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfQogICAgaWYgKCFrZGJfc3RyMmFk ZHIoYXJndlsxXSwgJmFkZHIsIGRvbWlkKSB8fCBhZGRyID09IDApIHsKICAgICAgICBrZGJwKCJJ bnZhbGlkIGFyZ3VtZW50OiVzXG4iLCBhcmd2WzFdKTsKICAgICAgICByZXR1cm4gS0RCX0NQVV9N QUlOX0tEQjsKICAgIH0KICAgIGlmIChhcmdjID4gMikgewogICAgICAgIGlmICghc3RyY21wKGFy Z3ZbMl0sICJ3IikpCiAgICAgICAgICAgIHJ3ID0gMTsKICAgICAgICBlbHNlIGlmICghc3RyY21w KGFyZ3ZbMl0sICJpIikpCiAgICAgICAgICAgIHJ3ID0gMjsKICAgICAgICBlbHNlIHsKICAgICAg ICAgICAgcmV0dXJuIGtkYl91c2dmX3dwKCk7CiAgICAgICAgfQogICAgfQogICAga2RiX2RvX3dh dGNocG9pbnRzKGFkZHIsIHJ3LCBsZW4pOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0K CnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX3djKHZvaWQpCnsKICAgIGtkYnAoIndjICRu dW18YWxsIDogY2xlYXIgZ2l2ZW4gb3IgYWxsIHdhdGNocG9pbnRzXG4iKTsKICAgIHJldHVybiBL REJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90IAprZGJfY21kZl93YyhpbnQg YXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAg ICBjb25zdCBjaGFyICphcmdwOwogICAgaW50IHdwbnVtOyAgICAgICAgICAgICAgLyogd3AgbnVt IHRvIGRlbGV0ZS4gLTEgZm9yIGFsbCAqLwoKICAgIGlmIChhcmdjICE9IDIgfHwgKmFyZ3ZbMV0g PT0gJz8nKSAKICAgICAgICByZXR1cm4ga2RiX3VzZ2Zfd2MoKTsKCiAgICBhcmdwID0gYXJndlsx XTsKCiAgICBpZiAoIXN0cmNtcChhcmdwLCAiYWxsIikpCiAgICAgICAgd3BudW0gPSAtMTsKICAg IGVsc2UgaWYgKCFrZGJfc3RyMmRlY2koYXJncCwgJndwbnVtKSkgewogICAgICAgIGtkYnAoIklu dmFsaWQgd3BudW06ICVzXG4iLCBhcmdwKTsKICAgICAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tE QjsKICAgIH0KICAgIGtkYl9jbGVhcl93cHMod3BudW0pOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJ Tl9LREI7Cn0KCnN0YXRpYyB2b2lkCmtkYl9kaXNwbGF5X2h2bV92Y3B1KHN0cnVjdCB2Y3B1ICp2 cCkKewogICAgc3RydWN0IGh2bV92Y3B1ICpodnA7CiAgICBzdHJ1Y3QgdmxhcGljICp2bHA7CiAg ICBzdHJ1Y3QgaHZtX2lvX29wICppb29wOwoKICAgIGh2cCA9ICZ2cC0+YXJjaC5odm1fdmNwdTsK ICAgIHZscCA9ICZodnAtPnZsYXBpYzsKICAgIGtkYnAoInZjcHU6JWx4IGlkOiVkIGRvbWlkOiVk XG4iLCB2cCwgdnAtPnZjcHVfaWQsIHZwLT5kb21haW4tPmRvbWFpbl9pZCk7CgojaWYgMAogICAg aWYgKGlzX2h5YnJpZF92Y3B1KHZwKSkgewogICAgICAgIHN0cnVjdCBoeWJyaWRfZXh0ICpocCA9 ICZodnAtPmh2X2h5YnJpZDsKICAgICAgICBrZGJwKCIgICAgJmh5YnJpZF9leHQ6JXAgbGltaXQ6 JXggaW9wbDoleCB2Y3B1X2luZm9fbWZuOiVseFxuIiwKICAgICAgICAgICAgIGhwLCBocC0+aHli X2lvYm1wX2xpbWl0LCBocC0+aHliX2lvcGwsIGhwLT5oeWJfdmNwdV9pbmZvX21mbik7CiAgICB9 CiNlbmRpZgoKICAgIGlvb3AgPSBOVUxMOyAgIC8qIGNvbXBpbGVyIHdhcm5pbmcgKi8KICAgIGtk YnAoIiAgICAmaHZtX3ZjcHU6JWx4ICBndWVzdF9lZmVyOiJLREJGTCJcbiIsIGh2cCwgaHZwLT5n dWVzdF9lZmVyKTsKICAgIGtkYnAoIiAgICAgIGd1ZXN0X2NyOiBbMF06IktEQkZMIiBbMV06IktE QkZMIiBbMl06IktEQkZMIlxuIiwgCiAgICAgICAgIGh2cC0+Z3Vlc3RfY3JbMF0sIGh2cC0+Z3Vl c3RfY3JbMV0saHZwLT5ndWVzdF9jclsyXSk7CiAgICBrZGJwKCIgICAgICAgICAgICAgICAgWzNd OiJLREJGTCIgWzRdOiJLREJGTCJcbiIsIGh2cC0+Z3Vlc3RfY3JbM10sCiAgICAgICAgIGh2cC0+ Z3Vlc3RfY3JbNF0pOwogICAga2RicCgiICAgICAgaHdfY3I6IFswXToiS0RCRkwiIFsxXToiS0RC RkwiIFsyXToiS0RCRkwiXG4iLCBodnAtPmh3X2NyWzBdLAogICAgICAgICBodnAtPmh3X2NyWzFd LCBodnAtPmh3X2NyWzJdKTsKICAgIGtkYnAoIiAgICAgICAgICAgICAgWzNdOiJLREJGTCIgWzRd OiJLREJGTCJcbiIsIGh2cC0+aHdfY3JbM10sIAogICAgICAgICBodnAtPmh3X2NyWzRdKTsKCiAg ICBrZGJwKCIgICAgICBWTEFQSUM6IGJhc2UgbXNyOiJLREJGNjQiIGRpczoleCB0bXJkaXY6JXhc biIsIAogICAgICAgICB2bHAtPmh3LmFwaWNfYmFzZV9tc3IsIHZscC0+aHcuZGlzYWJsZWQsIHZs cC0+aHcudGltZXJfZGl2aXNvcik7CiAgICBrZGJwKCIgICAgICAgICAgcmVnczolcCByZWdzX3Bh Z2U6JXBcbiIsIHZscC0+cmVncywgdmxwLT5yZWdzX3BhZ2UpOwogICAga2RicCgiICAgICAgICAg IHBlcmlvZGljIHRpbWU6XG4iKTsgCiAgICBrZGJfcHJudF9wZXJpb2RpY190aW1lKCZ2bHAtPnB0 KTsKCiAgICBrZGJwKCIgICAgICB4ZW5fcG9ydDoleCBmbGFnX2RyX2RpcnR5OiV4IGRiZ19zdF9s YXRjaDoleFxuIiwgaHZwLT54ZW5fcG9ydCwKICAgICAgICAgaHZwLT5mbGFnX2RyX2RpcnR5LCBo dnAtPmRlYnVnX3N0YXRlX2xhdGNoKTsKCiAgICBpZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9y ID09IFg4Nl9WRU5ET1JfSU5URUwpIHsKCiAgICAgICAgc3RydWN0IGFyY2hfdm14X3N0cnVjdCAq dnhwID0gJmh2cC0+dS52bXg7CiAgICAgICAga2RicCgiICAgICAgJnZteDogJXAgdm1jczolbHgg YWN0aXZlX2NwdToleCBsYXVuY2hlZDoleFxuIiwgdnhwLCAKICAgICAgICAgICAgIHZ4cC0+dm1j cywgdnhwLT5hY3RpdmVfY3B1LCB2eHAtPmxhdW5jaGVkKTsKI2lmIFhFTl9WRVJTSU9OICE9IDQg ICAgICAgICAgICAgICAvKiB4ZW4gMy54LnggKi8KICAgICAgICBrZGJwKCIgICAgICAgIGV4ZWNf Y3RybDoleCB2cGlkOiQlZFxuIiwgdnhwLT5leGVjX2NvbnRyb2wsIHZ4cC0+dnBpZCk7CiNlbmRp ZgogICAgICAgIGtkYnAoIiAgICAgICAgaG9zdF9jcjA6ICJLREJGTCIgdm14OiB7cmVhbG06JXgg ZW11bGF0ZToleH1cbiIsCiAgICAgICAgICAgICB2eHAtPmhvc3RfY3IwLCB2eHAtPnZteF9yZWFs bW9kZSwgdnhwLT52bXhfZW11bGF0ZSk7CgojaWZkZWYgX194ODZfNjRfXwogICAgICAgIGtkYnAo IiAgICAgICAgJm1zcl9zdGF0ZTolcCBleGNlcHRpb25fYml0bWFwOiVseFxuIiwgJnZ4cC0+bXNy X3N0YXRlLAogICAgICAgICAgICAgdnhwLT5leGNlcHRpb25fYml0bWFwKTsKI2VuZGlmCiAgICB9 IGVsc2UgaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCkgewog ICAgICAgIHN0cnVjdCBhcmNoX3N2bV9zdHJ1Y3QgKnN2cCA9ICZodnAtPnUuc3ZtOwojaWYgWEVO X1ZFUlNJT04gIT0gNCAgICAgICAgICAgICAgIC8qIHhlbiAzLngueCAqLwogICAgICAgIGtkYnAo IiAgJnN2bTogdm1jYjolbHggcGE6IktEQkY2NCIgYXNpZDoiS0RCRjY0IlxuIiwgc3ZwLCBzdnAt PnZtY2IsCiAgICAgICAgICAgICBzdnAtPnZtY2JfcGEsIHN2cC0+YXNpZF9nZW5lcmF0aW9uKTsK I2VuZGlmCiAgICAgICAga2RicCgiICAgIG1zcnBtOiVwIGxuY2hfY29yZToleCB2bWNiX3N5bmM6 JXhcbiIsIHN2cC0+bXNycG0sIAogICAgICAgICAgICAgc3ZwLT5sYXVuY2hfY29yZSwgc3ZwLT52 bWNiX2luX3N5bmMpOwogICAgfQogICAga2RicCgiICAgICAgY2FjaGVtb2RlOiV4IGlvOiB7c3Rh dGU6ICV4IGRhdGE6ICJLREJGTCJ9XG4iLCBodnAtPmNhY2hlX21vZGUsCiAgICAgICAgIGh2cC0+ aHZtX2lvLmlvX3N0YXRlLCBodnAtPmh2bV9pby5pb19kYXRhKTsKICAgIGtkYnAoIiAgICAgIG1t aW86IHtndmE6ICJLREJGTCIgZ3BmbjogIktEQkZMIn1cbiIsIGh2cC0+aHZtX2lvLm1taW9fZ3Zh LAogICAgICAgICBodnAtPmh2bV9pby5tbWlvX2dwZm4pOwp9CgovKiBkaXNwbGF5IHN0cnVjdCBo dm1fdmNwdXt9IGluIHN0cnVjdCB2Y3B1LmFyY2h7fSAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdApr ZGJfdXNnZl92Y3B1aCh2b2lkKQp7CiAgICBrZGJwKCJ2Y3B1aCB2Y3B1LXB0ciA6IGRpc3BsYXkg aHZtX3ZjcHUgc3RydWN0XG4iKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRp YyBrZGJfY3B1X2NtZF90IAprZGJfY21kZl92Y3B1aChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFy Z3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICBzdHJ1Y3QgdmNwdSAqdnA7Cgog ICAgaWYgKGFyZ2MgPCAyIHx8ICphcmd2WzFdID09ICc/JykgCiAgICAgICAgcmV0dXJuIGtkYl91 c2dmX3ZjcHVoKCk7CgogICAgaWYgKCFrZGJfc3RyMnVsb25nKGFyZ3ZbMV0sICh1bG9uZyAqKSZ2 cCkgfHwgIWtkYl92Y3B1X3ZhbGlkKHZwKSB8fAogICAgICAgICFpc19odm1fb3JfaHliX3ZjcHUo dnApKSB7CgogICAgICAgIGtkYnAoImtkYjogQmFkIFZDUFU6ICVzXG4iLCBhcmd2WzFdKTsKICAg ICAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKICAgIH0KICAgIGtkYl9kaXNwbGF5X2h2bV92 Y3B1KHZwKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CgovKiBhbHNvIGxvb2sgaW50 byBhcmNoX2dldF9pbmZvX2d1ZXN0KCkgdG8gZ2V0IGNvbnRleHQgKi8Kc3RhdGljIHZvaWQKa2Ri X3ByaW50X3VyZWdzKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiNpZmRlZiBfX3g4Nl82 NF9fCiAgICBrZGJwKCIgICAgICByZmxhZ3M6ICUwMTZseCAgIHJpcDogJTAxNmx4XG4iLCByZWdz LT5yZmxhZ3MsIHJlZ3MtPnJpcCk7CiAgICBrZGJwKCIgICAgICAgICByYXg6ICUwMTZseCAgIHJi eDogJTAxNmx4ICAgcmN4OiAlMDE2bHhcbiIsCiAgICAgICAgIHJlZ3MtPnJheCwgcmVncy0+cmJ4 LCByZWdzLT5yY3gpOwogICAga2RicCgiICAgICAgICAgcmR4OiAlMDE2bHggICByc2k6ICUwMTZs eCAgIHJkaTogJTAxNmx4XG4iLAogICAgICAgICByZWdzLT5yZHgsIHJlZ3MtPnJzaSwgcmVncy0+ cmRpKTsKICAgIGtkYnAoIiAgICAgICAgIHJicDogJTAxNmx4ICAgcnNwOiAlMDE2bHggICAgcjg6 ICUwMTZseFxuIiwKICAgICAgICAgcmVncy0+cmJwLCByZWdzLT5yc3AsIHJlZ3MtPnI4KTsKICAg IGtkYnAoIiAgICAgICAgICByOTogICUwMTZseCAgcjEwOiAlMDE2bHggICByMTE6ICUwMTZseFxu IiwKICAgICAgICAgcmVncy0+cjksICByZWdzLT5yMTAsIHJlZ3MtPnIxMSk7CiAgICBrZGJwKCIg ICAgICAgICByMTI6ICUwMTZseCAgIHIxMzogJTAxNmx4ICAgcjE0OiAlMDE2bHhcbiIsCiAgICAg ICAgIHJlZ3MtPnIxMiwgcmVncy0+cjEzLCByZWdzLT5yMTQpOwogICAga2RicCgiICAgICAgICAg cjE1OiAlMDE2bHhcbiIsIHJlZ3MtPnIxNSk7CiAgICBrZGJwKCIgICAgICBkczogJTA0eCAgIGVz OiAlMDR4ICAgZnM6ICUwNHggICBnczogJTA0eCAgICIKICAgICAgICAgIiAgICAgIHNzOiAlMDR4 ICAgY3M6ICUwNHhcbiIsIHJlZ3MtPmRzLCByZWdzLT5lcywgcmVncy0+ZnMsCiAgICAgICAgIHJl Z3MtPmdzLCByZWdzLT5zcywgcmVncy0+Y3MpOwogICAga2RicCgiICAgICAgZXJyY29kZTolMDhs eCBlbnRyeXZlYzolMDhseCB1cGNhbGxfbWFzazolbHhcbiIsCiAgICAgICAgIHJlZ3MtPmVycm9y X2NvZGUsIHJlZ3MtPmVudHJ5X3ZlY3RvciwgcmVncy0+c2F2ZWRfdXBjYWxsX21hc2spOwojZWxz ZQogICAga2RicCgiICAgICAgZWZsYWdzOiAlMDE2bHggZWlwOiAwMTZseFxuIiwgcmVncy0+ZWZs YWdzLCByZWdzLT5laXApOwogICAga2RicCgiICAgICAgZWF4OiAlMDh4ICAgZWJ4OiAlMDh4ICAg ZWN4OiAlMDh4ICAgZWR4OiAlMDh4XG4iLAogICAgICAgICByZWdzLT5lYXgsIHJlZ3MtPmVieCwg cmVncy0+ZWN4LCByZWdzLT5lZHgpOwogICAga2RicCgiICAgICAgZXNpOiAlMDh4ICAgZWRpOiAl MDh4ICAgZWJwOiAlMDh4ICAgZXNwOiAlMDh4XG4iLAogICAgICAgICByZWdzLT5lc2ksIHJlZ3Mt PmVkaSwgcmVncy0+ZWJwLCByZWdzLT5lc3ApOwogICAga2RicCgiICAgICAgZHM6ICUwNHggICBl czogJTA0eCAgIGZzOiAlMDR4ICAgZ3M6ICUwNHggICAiCiAgICAgIiAgICAgIHNzOiAlMDR4ICAg Y3M6ICUwNHhcbiIsIHJlZ3MtPmRzLCByZWdzLT5lcywgcmVncy0+ZnMsCiAgICAgICAgIHJlZ3Mt PmdzLCByZWdzLT5zcywgcmVncy0+Y3MpOwogICAga2RicCgiICAgICAgZXJyY29kZTolMDRseCBl bnRyeXZlYzolMDRseCB1cGNhbGxfbWFzazolbHhcbiIsIAogICAgICAgICByZWdzLT5lcnJvcl9j b2RlLCByZWdzLT5lbnRyeV92ZWN0b3IsIHJlZ3MtPnNhdmVkX3VwY2FsbF9tYXNrKTsKI2VuZGlm Cn0KCiNpZiBYRU5fU1VCVkVSU0lPTiA8IDMgICAgICAgICAgICAgLyogeGVuIDMuMS54IG9yIHhl biAzLjIueCAqLwojaWZkZWYgQ09ORklHX0NPTVBBVAogICAgI3VuZGVmIHZjcHVfaW5mbwogICAg I2RlZmluZSB2Y3B1X2luZm8odiwgZmllbGQpICAgICAgICAgICAgIFwKICAgICgqKCFoYXNfMzJi aXRfc2hpbmZvKCh2KS0+ZG9tYWluKSA/ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICAgKHR5cGVvZigmKHYpLT52Y3B1X2luZm8tPmNvbXBhdC5maWVsZCkpJih2 KS0+dmNwdV9pbmZvLT5uYXRpdmUuZmllbGQgOiBcCiAgICAgICAodHlwZW9mKCYodiktPnZjcHVf aW5mby0+Y29tcGF0LmZpZWxkKSkmKHYpLT52Y3B1X2luZm8tPmNvbXBhdC5maWVsZCkpCgogICAg I3VuZGVmIF9fc2hhcmVkX2luZm8KICAgICNkZWZpbmUgX19zaGFyZWRfaW5mbyhkLCBzLCBmaWVs ZCkgICAgICAgICAgICAgICAgICAgICAgXAogICAgKCooIWhhc18zMmJpdF9zaGluZm8oZCkgPyAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICh0eXBlb2YoJihzKS0+Y29tcGF0LmZp ZWxkKSkmKHMpLT5uYXRpdmUuZmllbGQgOiBcCiAgICAgICAodHlwZW9mKCYocyktPmNvbXBhdC5m aWVsZCkpJihzKS0+Y29tcGF0LmZpZWxkKSkKI2VuZGlmCiNlbmRpZgoKc3RhdGljIHZvaWQga2Ri X2Rpc3BsYXlfcHZfdmNwdShzdHJ1Y3QgdmNwdSAqdnApCnsKICAgIGludCBpOwogICAgc3RydWN0 IHB2X3ZjcHUgKmdwID0gJnZwLT5hcmNoLnB2X3ZjcHU7CgogICAga2RicCgiICAgICAgR0RUX1ZJ UlRfU1RBUlQodmNwdSk6ICVseFxuIiwgR0RUX1ZJUlRfU1RBUlQodnApKTsKICAgIGtkYnAoIiAg ICAgIEdEVDogZW50cmllczoweCVseCAgZnJhbWVzOlxuIiwgZ3AtPmdkdF9lbnRzKTsKICAgIGZv ciAoaT0wOyBpIDwgMTY7IGk9aSs0KSAKICAgICAgICBrZGJwKCIgICAgICAgICAgJTAxNmx4ICUw MTZseCAlMDE2bHggJTAxNmx4XG4iLCBncC0+Z2R0X2ZyYW1lc1tpXSwgCiAgICAgICAgICAgICBn cC0+Z2R0X2ZyYW1lc1tpKzFdLCBncC0+Z2R0X2ZyYW1lc1tpKzJdLGdwLT5nZHRfZnJhbWVzW2kr M10pOwogICAgCiAgICBrZGJwKCIgICAgICB0cmFwX2N0eHQ6JWx4IGtlcm5lbF9zczolbHgga2Vy bmVsX3NwOiVseFxuIiwgZ3AtPnRyYXBfY3R4dCwKICAgICAgICAgZ3AtPmtlcm5lbF9zcywgZ3At Pmtlcm5lbF9zcCk7CiAgICBrZGJwKCIgICAgICBjdHJscmVnczpcbiIpOwogICAgZm9yIChpPTA7 IGkgPCA4OyBpPWkrNCkKICAgICAgICBrZGJwKCIgICAgICAgICAgJTAxNmx4ICUwMTZseCAlMDE2 bHggJTAxNmx4XG4iLCBncC0+Y3RybHJlZ1tpXSwgCiAgICAgICAgICAgICBncC0+Y3RybHJlZ1tp KzFdLCBncC0+Y3RybHJlZ1tpKzJdLCBncC0+Y3RybHJlZ1tpKzNdKTsKI2lmZGVmIF9feDg2XzY0 X18KICAgIGtkYnAoIiAgICAgIGNhbGxiYWNrOiAgIGV2ZW50OiAlMDE2bHggICBmYWlsc2FmZTog JTAxNmx4XG4iLCAKICAgICAgICAgZ3AtPmV2ZW50X2NhbGxiYWNrX2VpcCwgZ3AtPmZhaWxzYWZl X2NhbGxiYWNrX2VpcCk7CiAgICBrZGJwKCIgICAgICBiYXNlOiBmczoweCVseCBnc2tlcm46MHgl bHggZ3N1c2VyOjB4JWx4XG4iLCAKICAgICAgICAgZ3AtPmZzX2Jhc2UsIGdwLT5nc19iYXNlX2tl cm5lbCwgZ3AtPmdzX2Jhc2VfdXNlcik7CiNlbHNlCiAgICBrZGJwKCIgICAgICBjYWxsYmFjazog ICBldmVudDogJTA4bHg6JTA4bHggICBmYWlsc2FmZTogJTA4bHg6JTA4bHhcbiIsIAogICAgICAg ICBncC0+ZXZlbnRfY2FsbGJhY2tfY3MsIGdwLT5ldmVudF9jYWxsYmFja19laXAsIAogICAgICAg ICBncC0+ZmFpbHNhZmVfY2FsbGJhY2tfY3MsIGdwLT5mYWlsc2FmZV9jYWxsYmFja19laXApOwoj ZW5kaWYKICAgIGtkYnAoIiAgICB2Y3B1X2luZm9fbWZuOiAlbHggIGlvcGw6ICV4XG4iLCBncC0+ dmNwdV9pbmZvX21mbiwgZ3AtPmlvcGwpOwogICAga2RicCgiXG4iKTsKfQoKLyogRGlzcGxheSBv bmUgVkNQVSBpbmZvICovCnN0YXRpYyB2b2lkCmtkYl9kaXNwbGF5X3ZjcHUoc3RydWN0IHZjcHUg KnZwKQp7CiAgICBpbnQgaTsKICAgIHN0cnVjdCBhcmNoX3ZjcHUgKmF2cCA9ICZ2cC0+YXJjaDsK ICAgIHN0cnVjdCBwYWdpbmdfdmNwdSAqcHZwID0gJnZwLT5hcmNoLnBhZ2luZzsKICAgIGludCBk b21pZCA9IHZwLT5kb21haW4tPmRvbWFpbl9pZDsKCiAgICBrZGJwKCJcblZDUFU6ICB2Y3B1LWlk OiVkICB2Y3B1LXB0cjolcCAiLCB2cC0+dmNwdV9pZCwgdnApOwogICAga2RicCgiICBwcm9jZXNz b3I6JWQgZG9taWQ6JWQgIGRvbXA6JXBcbiIsIHZwLT5wcm9jZXNzb3IsIGRvbWlkLHZwLT5kb21h aW4pOwoKICAgIGlmIChkb21pZCA9PSBET01JRF9JRExFKSB7CiAgICAgICAga2RicCgiICAgIElE TEUgdmNwdS5cbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGtkYnAoIiAgcGF1c2U6IGZs YWdzOjB4JTAxNmx4IGNvdW50OiV4XG4iLCB2cC0+cGF1c2VfZmxhZ3MsIAogICAgICAgICB2cC0+ cGF1c2VfY291bnQuY291bnRlcik7CiAgICBrZGJwKCIgIHZjcHU6IGluaXRkb25lOiVkIHJ1bm5p bmc6JWRcbiIsIAogICAgICAgICB2cC0+aXNfaW5pdGlhbGlzZWQsIHZwLT5pc19ydW5uaW5nKTsK ICAgIGtkYnAoIiAgbWNlcGVuZDolZCBubWlwZW5kOiVkIHNodXQ6IGRlZjolZCBwYXVzZWQ6JWRc biIsIAogICAgICAgICB2cC0+bWNlX3BlbmRpbmcsICB2cC0+bm1pX3BlbmRpbmcsIHZwLT5kZWZl cl9zaHV0ZG93biwgCiAgICAgICAgIHZwLT5wYXVzZWRfZm9yX3NodXRkb3duKTsKICAgIGtkYnAo IiAgJnZjcHVfaW5mbzolcCA6IGV2dGNobl91cGNfcGVuZDoleCBfbWFzazoleFxuIiwKICAgICAg ICAgdnAtPnZjcHVfaW5mbywgdmNwdV9pbmZvKHZwLCBldnRjaG5fdXBjYWxsX3BlbmRpbmcpLAog ICAgICAgICB2Y3B1X2luZm8odnAsIGV2dGNobl91cGNhbGxfbWFzaykpOwogICAga2RicCgiICBl dnRfcGVuZF9zZWw6JWx4IHBvbGxfZXZ0Y2huOiV4ICIsIAogICAgICAgICAqKHVuc2lnbmVkIGxv bmcgKikmdmNwdV9pbmZvKHZwLCBldnRjaG5fcGVuZGluZ19zZWwpLCB2cC0+cG9sbF9ldnRjaG4p OwogICAga2RiX3ByaW50X3NwaW5fbG9jaygidmlycV9sb2NrOiIsICZ2cC0+dmlycV9sb2NrLCAi XG4iKTsKICAgIGZvciAoaT0wOyBpIDwgTlJfVklSUVM7IGkrKykKICAgICAgICBpZiAodnAtPnZp cnFfdG9fZXZ0Y2huW2ldICE9IDApCiAgICAgICAgICAgIGtkYnAoIiAgICAgIHZpcnE6JCVkIHBv cnQ6JCVkXG4iLCBpLCB2cC0+dmlycV90b19ldnRjaG5baV0pOwoKICAgIGtkYnAoIiAgbmV4dDol cCBwZXJpb2RpYzogcGVyaW9kOjB4JWx4IGxhc3RfZXZlbnQ6MHglbHhcbiIsIAogICAgICAgICB2 cC0+bmV4dF9pbl9saXN0LCB2cC0+cGVyaW9kaWNfcGVyaW9kLCB2cC0+cGVyaW9kaWNfbGFzdF9l dmVudCk7CiAgICBrZGJwKCIgIGNwdV9hZmZpbml0eToweCVseCB2Y3B1X2RpcnR5X2NwdW1hc2s6 JXAgc2NoZWRfcHJpdjoweCVwXG4iLAogICAgICAgICB2cC0+Y3B1X2FmZmluaXR5LCB2cC0+dmNw dV9kaXJ0eV9jcHVtYXNrLCB2cC0+c2NoZWRfcHJpdik7CiAgICBrZGJwKCIgICZydW5zdGF0ZTog JXAgc3RhdGU6ICV4IChlZy4gUlVOU1RBVEVfcnVubmluZykgZ3Vlc3RwdHI6JXBcbiIsIAogICAg ICAgICAmdnAtPnJ1bnN0YXRlLCB2cC0+cnVuc3RhdGUuc3RhdGUsIHJ1bnN0YXRlX2d1ZXN0KHZw KSk7CiAgICBrZGJwKCJcbiIpOwogICAga2RicCgiICBhcmNoIGluZm86ICglcClcbiIsICZ2cC0+ YXJjaCk7CiAgICBrZGJwKCIgICAgZ3Vlc3RfY29udGV4dDogVkdDRl8gZmxhZ3M6JWx4IiwgCiAg ICAgICAgIHZwLT5hcmNoLnZnY19mbGFncyk7IC8qIFZHQ0ZfaW5fa2VybmVsICovCiAgICBpZiAo aXNfaHZtX29yX2h5Yl92Y3B1KHZwKSkKICAgICAgICBrZGJwKCIgICAgKEhWTSBndWVzdDogSVAs IFNQLCBFRkxBR1MgbWF5IGJlIHN0YWxlKSIpOwogICAga2RicCgiXG4iKTsKICAgIGtkYl9wcmlu dF91cmVncygmdnAtPmFyY2gudXNlcl9yZWdzKTsKICAgIGtkYnAoIiAgICAgIGRlYnVncmVnczpc biIpOwogICAgZm9yIChpPTA7IGkgPCA4OyBpPWkrNCkKICAgICAgICBrZGJwKCIgICAgICAgICAg JTAxNmx4ICUwMTZseCAlMDE2bHggJTAxNmx4XG4iLCBhdnAtPmRlYnVncmVnW2ldLCAKICAgICAg ICAgICAgIGF2cC0+ZGVidWdyZWdbaSsxXSwgYXZwLT5kZWJ1Z3JlZ1tpKzJdLCBhdnAtPmRlYnVn cmVnW2krM10pOwoKICAgIGlmIChpc19odm1fb3JfaHliX3ZjcHUodnApKQogICAgICAgIGtkYl9k aXNwbGF5X2h2bV92Y3B1KHZwKTsKICAgIGVsc2UKICAgICAgICBrZGJfZGlzcGxheV9wdl92Y3B1 KHZwKTsKCiAgICBrZGJwKCIgICAgVEZfZmxhZ3M6ICUwMTZseCAgZ3Vlc3RfdGFibGU6ICUwMTZs eCBjcjM6JTAxNmx4XG4iLCAKICAgICAgICAgdnAtPmFyY2guZmxhZ3MsIHZwLT5hcmNoLmd1ZXN0 X3RhYmxlLnBmbiwgYXZwLT5jcjMpOyAKICAgIGtkYnAoIiAgICBwYWdpbmc6IFxuIik7CiAgICBr ZGJwKCIgICAgICB2dGxiOiVwXG4iLCAmcHZwLT52dGxiKTsKICAgIGtkYnAoIiAgICAgICZwZ19t b2RlOiVwIGdzdGxldmVsczolZCAmc2hhZG93OiVwIHNobGV2ZWxzOiVkXG4iLAogICAgICAgICBw dnAtPm1vZGUsIHB2cC0+bW9kZS0+Z3Vlc3RfbGV2ZWxzLCAmcHZwLT5tb2RlLT5zaGFkb3csCiAg ICAgICAgIHB2cC0+bW9kZS0+c2hhZG93LnNoYWRvd19sZXZlbHMpOwogICAga2RicCgiICAgICAg c2hhZG93X3ZjcHU6XG4iKTsKICAgIGtkYnAoIiAgICAgICAgZ3Vlc3RfdnRhYmxlOiVwIGxhc3Qg ZW1fbWZuOiJLREJGTCJcbiIsCiAgICAgICAgIHB2cC0+c2hhZG93Lmd1ZXN0X3Z0YWJsZSwgcHZw LT5zaGFkb3cubGFzdF9lbXVsYXRlZF9tZm4pOwojaWYgQ09ORklHX1BBR0lOR19MRVZFTFMgPj0g MwogICAga2RicCgiICAgICAgICAgbDN0Ymw6IDM6IktEQkZMIiAyOiJLREJGTCJcbiIKICAgICAg ICAgIiAgICAgICAgICAgICAgICAxOiJLREJGTCIgMDoiS0RCRkwiXG4iLAogICAgIHB2cC0+c2hh ZG93LmwzdGFibGVbM10ubDMsIHB2cC0+c2hhZG93LmwzdGFibGVbMl0ubDMsIAogICAgIHB2cC0+ c2hhZG93LmwzdGFibGVbMV0ubDMsIHB2cC0+c2hhZG93LmwzdGFibGVbMF0ubDMpOwogICAga2Ri cCgiICAgICAgICBnbDN0Ymw6IDM6IktEQkZMIiAyOiJLREJGTCJcbiIKICAgICAgICAgIiAgICAg ICAgICAgICAgICAxOiJLREJGTCIgMDoiS0RCRkwiXG4iLAogICAgIHB2cC0+c2hhZG93LmdsM2Vb M10ubDMsIHB2cC0+c2hhZG93LmdsM2VbMl0ubDMsIAogICAgIHB2cC0+c2hhZG93LmdsM2VbMV0u bDMsIHB2cC0+c2hhZG93LmdsM2VbMF0ubDMpOwojZW5kaWYKICAgIGtkYnAoIiAgZ2Ric3hfdmNw dV9ldmVudDoleFxuIiwgdnAtPmFyY2guZ2Ric3hfdmNwdV9ldmVudCk7Cn0KCi8qIAogKiBGVU5D VElPTjogRGlzcGFseSAoY3VycmVudCkgVkNQVS9zCiAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdApr ZGJfdXNnZl92Y3B1KHZvaWQpCnsKICAgIGtkYnAoInZjcHUgW3ZjcHUtcHRyXSA6IGRpc3BsYXkg Y3VycmVudC92Y3B1LXB0ciB2Y3B1IGluZm9cbiIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9L REI7Cn0Kc3RhdGljIGtkYl9jcHVfY21kX3QgCmtkYl9jbWRmX3ZjcHUoaW50IGFyZ2MsIGNvbnN0 IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgc3RydWN0IHZj cHUgKnYgPSBjdXJyZW50OwoKICAgIGlmIChhcmdjID4gMiB8fCAoYXJnYyA+IDEgJiYgKmFyZ3Zb MV0gPT0gJz8nKSkKICAgICAgICBrZGJfdXNnZl92Y3B1KCk7CiAgICBlbHNlIGlmIChhcmdjIDw9 IDEpCiAgICAgICAga2RiX2Rpc3BsYXlfdmNwdSh2KTsKICAgIGVsc2UgaWYgKGtkYl9zdHIydWxv bmcoYXJndlsxXSwgKHVsb25nICopJnYpICYmIGtkYl92Y3B1X3ZhbGlkKHYpKQogICAgICAgIGtk Yl9kaXNwbGF5X3ZjcHUodik7CiAgICBlbHNlIAogICAgICAgIGtkYnAoIkludmFsaWQgdXNhZ2Uv YXJndW1lbnQ6JXMgdjolbHhcbiIsIGFyZ3ZbMV0sIChsb25nKXYpOwogICAgcmV0dXJuIEtEQl9D UFVfTUFJTl9LREI7Cn0KCi8qIGZyb20gcGFnaW5nX2R1bXBfZG9tYWluX2luZm8oKSAqLwpzdGF0 aWMgdm9pZCBrZGJfcHJfZG9tX3BnX21vZGVzKHN0cnVjdCBkb21haW4gKmQpCnsKICAgIGlmIChw YWdpbmdfbW9kZV9lbmFibGVkKGQpKSB7CiAgICAgICAga2RicCgiIHBhZ2luZyBtb2RlIGVuYWJs ZWQiKTsKICAgICAgICBpZiAoIHBhZ2luZ19tb2RlX3NoYWRvdyhkKSApCiAgICAgICAgICAgIGtk YnAoIiBzaGFkb3coUEdfU0hfZW5hYmxlKSIpOwogICAgICAgIGlmICggcGFnaW5nX21vZGVfaGFw KGQpICkKICAgICAgICAgICAga2RicCgiIGhhcChQR19IQVBfZW5hYmxlKSAiKTsKICAgICAgICBp ZiAoIHBhZ2luZ19tb2RlX3JlZmNvdW50cyhkKSApCiAgICAgICAgICAgIGtkYnAoIiByZWZjb3Vu dHMoUEdfcmVmY291bnRzKSAiKTsKICAgICAgICBpZiAoIHBhZ2luZ19tb2RlX2xvZ19kaXJ0eShk KSApCiAgICAgICAgICAgIGtkYnAoIiBsb2dfZGlydHkoUEdfbG9nX2RpcnR5KSAiKTsKICAgICAg ICBpZiAoIHBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgICAgICAgIGtkYnAoIiB0cmFu c2xhdGUoUEdfdHJhbnNsYXRlKSAiKTsKICAgICAgICBpZiAoIHBhZ2luZ19tb2RlX2V4dGVybmFs KGQpICkKICAgICAgICAgICAga2RicCgiIGV4dGVybmFsKFBHX2V4dGVybmFsKSAiKTsKICAgIH0g ZWxzZQogICAgICAgIGtkYnAoIiBkaXNhYmxlZCIpOwogICAga2RicCgiXG4iKTsKfQoKLyogcHJp bnQgZXZlbnQgY2hhbm5lbHMgaW5mbyBmb3IgYSBnaXZlbiBkb21haW4gCiAqIE5PVEU6IHZlcnkg Y29uZnVzaW5nLCBwb3J0IGFuZCBldmVudCBjaGFubmVsIHJlZmVyIHRvIHRoZSBzYW1lIHRoaW5n LiBldnRjaG4KICogaXMgYXJyeSBvZiBwb2ludGVycyB0byBhIGJ1Y2tldCBvZiBwb2ludGVycyB0 byAxMjggc3RydWN0IGV2dGNobnt9LiB3aGlsZQogKiA2NGJpdCB4ZW4gY2FuIGhhbmRsZSA0MDk2 IG1heCBjaGFubmVscywgYSAzMmJpdCBndWVzdCBpcyBsaW1pdGVkIHRvIDEwMjQgKi8Kc3RhdGlj IHZvaWQgbm9pbmxpbmUga2RiX3ByaW50X2RvbV9ldmVudGluZm8oc3RydWN0IGRvbWFpbiAqZHAp CnsKICAgIHVpbnQgY2huOwoKICAgIGtkYnAoIlxuIik7CiAgICBrZGJwKCIgIEV2dDogTUFYX0VW VENITlM6JCVkIHB0cjolcCBwb2xsbXNrOiUwOGx4ICIsCiAgICAgICAgIE1BWF9FVlRDSE5TKGRw KSwgZHAtPmV2dGNobiwgZHAtPnBvbGxfbWFza1swXSk7CiAgICBrZGJfcHJpbnRfc3Bpbl9sb2Nr KCJsazoiLCAmZHAtPmV2ZW50X2xvY2ssICJcbiIpOwogICAga2RicCgiICAgICZldnRjaG5fcGVu ZGluZzolcCAmZXZ0Y2huX21hc2s6JXBcbiIsIAogICAgICAgICBzaGFyZWRfaW5mbyhkcCwgZXZ0 Y2huX3BlbmRpbmcpLCBzaGFyZWRfaW5mbyhkcCwgZXZ0Y2huX21hc2spKTsKCiAgICBrZGJwKCIg ICBDaGFubmVscyBpbmZvOiAoZXZlcnl0aGluZyBpcyBpbiBkZWNpbWFsKTpcbiIpOwogICAgZm9y IChjaG49MDsgY2huIDwgTUFYX0VWVENITlMoZHApOyBjaG4rKyApIHsKICAgICAgICBzdHJ1Y3Qg ZXZ0Y2huICpia3RwID0gZHAtPmV2dGNobltjaG4vRVZUQ0hOU19QRVJfQlVDS0VUXTsKICAgICAg ICBzdHJ1Y3QgZXZ0Y2huICpjaG5wID0gJmJrdHBbY2huICYgKEVWVENITlNfUEVSX0JVQ0tFVC0x KV07CiAgICAgICAgY2hhciBwYml0ID0gdGVzdF9iaXQoY2huLCAmc2hhcmVkX2luZm8oZHAsIGV2 dGNobl9wZW5kaW5nKSkgPyAnWScgOiAnTic7CiAgICAgICAgY2hhciBtYml0ID0gdGVzdF9iaXQo Y2huLCAmc2hhcmVkX2luZm8oZHAsIGV2dGNobl9tYXNrKSkgPyAnWScgOiAnTic7CgogICAgICAg IGlmIChia3RwPT1OVUxMIHx8IGNobnAtPnN0YXRlPT1FQ1NfRlJFRSkKICAgICAgICAgICAgY29u dGludWU7CgogICAgICAgIGtkYnAoIiAgICBjaG46JTR1IHN0OiVkIF94ZW49JWQgX3ZjcHVfaWQ6 JTJkICIsIGNobiwgY2hucC0+c3RhdGUsCiAgICAgICAgICAgICBjaG5wLT54ZW5fY29uc3VtZXIs IGNobnAtPm5vdGlmeV92Y3B1X2lkKTsKICAgICAgICBpZiAoY2hucC0+c3RhdGUgPT0gRUNTX1VO Qk9VTkQpCiAgICAgICAgICAgIGtkYnAoIiByZW0tZG9taWQ6JWQiLCBjaG5wLT51LnVuYm91bmQu cmVtb3RlX2RvbWlkKTsKICAgICAgICBlbHNlIGlmIChjaG5wLT5zdGF0ZSA9PSBFQ1NfSU5URVJE T01BSU4pCiAgICAgICAgICAgIGtkYnAoIiByZW0tcG9ydDolZCByZW0tZG9tOiVkIiwgY2hucC0+ dS5pbnRlcmRvbWFpbi5yZW1vdGVfcG9ydCwKICAgICAgICAgICAgICAgICBjaG5wLT51LmludGVy ZG9tYWluLnJlbW90ZV9kb20tPmRvbWFpbl9pZCk7CiAgICAgICAgZWxzZSBpZiAoY2hucC0+c3Rh dGUgPT0gRUNTX1BJUlEpCiAgICAgICAgICAgIGtkYnAoIiBwaXJxOiVkIiwgY2hucC0+dS5waXJx KTsKICAgICAgICBlbHNlIGlmIChjaG5wLT5zdGF0ZSA9PSBFQ1NfVklSUSkKICAgICAgICAgICAg a2RicCgiIHZpcnE6JWQiLCBjaG5wLT51LnZpcnEpOwoKICAgICAgICBrZGJwKCIgIHBlbmQ6JWMg bWFzazolY1xuIiwgcGJpdCwgbWJpdCk7CiAgICB9CiNpZiAwCiAgICBrZGJwKCJwaXJxIHRvIGV2 dGNobiBtYXBwaW5nIChwaXJxOmV2dGNobikgKGFsbCBkZWNpbWFsKTpcbiIpOwogICAgZm9yIChp PTA7IGkgPCBkcC0+bnJfcGlycXM7IGkgKyspCiAgICAgICAgaWYgKGRwLT5waXJxX3RvX2V2dGNo bltpXSkKICAgICAgICAgICAga2RicCgiKCVkOiVkKSAiLCBpLCBkcC0+cGlycV90b19ldnRjaG5b aV0pOwogICAga2RicCgiXG4iKTsKI2VuZGlmCn0KCnN0YXRpYyB2b2lkIGtkYl9wcm50X2h2bV9k b21faW5mbyhzdHJ1Y3QgZG9tYWluICpkcCkKewogICAgc3RydWN0IGh2bV9kb21haW4gKmh2cCA9 ICZkcC0+YXJjaC5odm1fZG9tYWluOwoKICAgIGtkYnAoIiAgICBIVk0gaW5mbzogSGFwIGlzJXMg ZW5hYmxlZFxuIiwgCiAgICAgICAgIGRwLT5hcmNoLmh2bV9kb21haW4uaGFwX2VuYWJsZWQgPyAi IiA6ICIgbm90Iik7CgogICAgaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVO RE9SX0lOVEVMKSB7CiAgICAgICAgc3RydWN0IHZteF9kb21haW4gKnZkcCA9ICZkcC0+YXJjaC5o dm1fZG9tYWluLnZteDsKICAgICAgICBrZGJwKCIgICAgRVBUOiBlcHRfbXQ6JXggZXB0X3dsOiV4 IGFzcjolMDEzbHhcbiIsIAogICAgICAgICAgICAgdmRwLT5lcHRfY29udHJvbC5lcHRfbXQsIHZk cC0+ZXB0X2NvbnRyb2wuZXB0X3dsLCAKICAgICAgICAgICAgIHZkcC0+ZXB0X2NvbnRyb2wuYXNy KTsKICAgIH0KICAgIGlmIChodnAgPT0gTlVMTCkKICAgICAgICByZXR1cm47CgogICAgaWYgKGh2 cC0+aXJxLmNhbGxiYWNrX3ZpYV90eXBlID09IEhWTUlSUV9jYWxsYmFja192ZWN0b3IpCiAgICAg ICAga2RicCgiICAgIEhWTUlSUV9jYWxsYmFja192ZWN0b3I6ICV4XG4iLCBodnAtPmlycS5jYWxs YmFja192aWEudmVjdG9yKTsKCiAgICBpZiAoIWlzX2h2bV9kb21haW4oZHApKQogICAgICAgIHJl dHVybjsKCiAgICBrZGJwKCIgICAgSFZNIFBBUkFNUyAoYWxsIGluIGhleCk6XG4iKTsKICAgIGtk YnAoIlx0aW9yZXEucGFnZTolbHggaW9yZXEudmE6JWx4XG4iLCBodnAtPmlvcmVxLnBhZ2UsIGh2 cC0+aW9yZXEudmEpOwogICAga2RicCgiXHRidWZfaW9yZXEucGFnZTolbHggaW9yZXEudmE6JWx4 XG4iLCBodnAtPmJ1Zl9pb3JlcS5wYWdlLCAKICAgICAgICAgaHZwLT5idWZfaW9yZXEudmEpOwog ICAga2RicCgiXHRIVk1fUEFSQU1fQ0FMTEJBQ0tfSVJROiAleFxuIiwgaHZwLT5wYXJhbXNbSFZN X1BBUkFNX0NBTExCQUNLX0lSUV0pOwogICAga2RicCgiXHRIVk1fUEFSQU1fU1RPUkVfUEZOOiAl eFxuIiwgaHZwLT5wYXJhbXNbSFZNX1BBUkFNX1NUT1JFX1BGTl0pOwogICAga2RicCgiXHRIVk1f UEFSQU1fU1RPUkVfRVZUQ0hOOiAleFxuIiwgaHZwLT5wYXJhbXNbSFZNX1BBUkFNX1NUT1JFX0VW VENITl0pOwogICAga2RicCgiXHRIVk1fUEFSQU1fUEFFX0VOQUJMRUQ6ICV4XG4iLCBodnAtPnBh cmFtc1tIVk1fUEFSQU1fUEFFX0VOQUJMRURdKTsKICAgIGtkYnAoIlx0SFZNX1BBUkFNX0lPUkVR X1BGTjogJXhcbiIsIGh2cC0+cGFyYW1zW0hWTV9QQVJBTV9JT1JFUV9QRk5dKTsKICAgIGtkYnAo Ilx0SFZNX1BBUkFNX0JVRklPUkVRX1BGTjogJXhcbiIsIGh2cC0+cGFyYW1zW0hWTV9QQVJBTV9C VUZJT1JFUV9QRk5dKTsKICAgIGtkYnAoIlx0SFZNX1BBUkFNX1ZJUklESUFOOiAleFxuIiwgaHZw LT5wYXJhbXNbSFZNX1BBUkFNX1ZJUklESUFOXSk7CiAgICBrZGJwKCJcdEhWTV9QQVJBTV9USU1F Ul9NT0RFOiAleFxuIiwgaHZwLT5wYXJhbXNbSFZNX1BBUkFNX1RJTUVSX01PREVdKTsKICAgIGtk YnAoIlx0SFZNX1BBUkFNX0hQRVRfRU5BQkxFRDogJXhcbiIsIGh2cC0+cGFyYW1zW0hWTV9QQVJB TV9IUEVUX0VOQUJMRURdKTsKICAgIGtkYnAoIlx0SFZNX1BBUkFNX0lERU5UX1BUOiAleFxuIiwg aHZwLT5wYXJhbXNbSFZNX1BBUkFNX0lERU5UX1BUXSk7CiAgICBrZGJwKCJcdEhWTV9QQVJBTV9E TV9ET01BSU46ICV4XG4iLCBodnAtPnBhcmFtc1tIVk1fUEFSQU1fRE1fRE9NQUlOXSk7CiAgICBr ZGJwKCJcdEhWTV9QQVJBTV9BQ1BJX1NfU1RBVEU6ICV4XG4iLCBodnAtPnBhcmFtc1tIVk1fUEFS QU1fQUNQSV9TX1NUQVRFXSk7CiAgICBrZGJwKCJcdEhWTV9QQVJBTV9WTTg2X1RTUzogJXhcbiIs IGh2cC0+cGFyYW1zW0hWTV9QQVJBTV9WTTg2X1RTU10pOwogICAga2RicCgiXHRIVk1fUEFSQU1f VlBUX0FMSUdOOiAleFxuIiwgaHZwLT5wYXJhbXNbSFZNX1BBUkFNX1ZQVF9BTElHTl0pOwogICAg a2RicCgiXHRIVk1fUEFSQU1fQ09OU09MRV9QRk46ICV4XG4iLCBodnAtPnBhcmFtc1tIVk1fUEFS QU1fQ09OU09MRV9QRk5dKTsKICAgIGtkYnAoIlx0SFZNX1BBUkFNX0NPTlNPTEVfRVZUQ0hOOiAl eFxuIiwgCiAgICAgICAgIGh2cC0+cGFyYW1zW0hWTV9QQVJBTV9DT05TT0xFX0VWVENITl0pOwog ICAga2RicCgiXHRIVk1fUEFSQU1fQUNQSV9JT1BPUlRTX0xPQ0FUSU9OOiAleFxuIiwgCiAgICAg ICAgIGh2cC0+cGFyYW1zW0hWTV9QQVJBTV9BQ1BJX0lPUE9SVFNfTE9DQVRJT05dKTsKICAgIGtk YnAoIlx0SFZNX1BBUkFNX01FTU9SWV9FVkVOVF9TSU5HTEVfU1RFUDogJXhcbiIsIAogICAgICAg ICBodnAtPnBhcmFtc1tIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX1NJTkdMRV9TVEVQXSk7Cn0Kc3Rh dGljIHZvaWQga2RiX3ByaW50X3Jhbmdlc2V0cyhzdHJ1Y3QgZG9tYWluICpkcCkKewogICAgaW50 IGxvY2tlZCA9IHNwaW5faXNfbG9ja2VkKCZkcC0+cmFuZ2VzZXRzX2xvY2spOwoKICAgIGlmIChs b2NrZWQpCiAgICAgICAgc3Bpbl91bmxvY2soJmRwLT5yYW5nZXNldHNfbG9jayk7CiAgICByYW5n ZXNldF9kb21haW5fcHJpbnRrKGRwKTsKICAgIGlmIChsb2NrZWQpCiAgICAgICAgc3Bpbl9sb2Nr KCZkcC0+cmFuZ2VzZXRzX2xvY2spOwp9CgpzdGF0aWMgdm9pZCBrZGJfcHJfdnRzY19pbmZvKHN0 cnVjdCBhcmNoX2RvbWFpbiAqYXApCnsKICAgIGtkYnAoIiAgICBWVFNDIGluZm86IHRzY19tb2Rl OiV4ICB2dHNjOiV4ICB2dHNjX2xhc3Q6JTAxNmx4XG4iLCAKICAgICAgICAgYXAtPnRzY19tb2Rl LCBhcC0+dnRzYywgYXAtPnZ0c2NfbGFzdCk7CiAgICBrZGJwKCIgICAgICAgIHZ0c2Nfb2Zmc2V0 OiUwMTZseCB0c2Nfa2h6OiUwOGx4IGluY2FybmF0aW9uOiV4XG4iLCAKICAgICAgICAgYXAtPnZ0 c2Nfb2Zmc2V0LCBhcC0+dnRzY19vZmZzZXQsIGFwLT5pbmNhcm5hdGlvbik7CiAgICBrZGJwKCIg ICAgICAgIHZ0c2Nfa2VybmNvdW50OiUwMTZseCBfdXNlcmNvdW50OiUwMTZseFxuIiwKICAgICAg ICAgYXAtPnZ0c2Nfa2VybmNvdW50LCBhcC0+dnRzY191c2VyY291bnQpOwp9CgovKiBkaXNwbGF5 IG9uZSBkb21haW4gaW5mbyAqLwpzdGF0aWMgdm9pZAprZGJfZGlzcGxheV9kb20oc3RydWN0IGRv bWFpbiAqZHApCnsKICAgIHN0cnVjdCB2Y3B1ICp2cDsKICAgIGludCBwcmludGVkID0gMDsKICAg IHN0cnVjdCBncmFudF90YWJsZSAqZ3AgPSBkcC0+Z3JhbnRfdGFibGU7CiAgICBzdHJ1Y3QgYXJj aF9kb21haW4gKmFwID0gJmRwLT5hcmNoOwoKICAgIGtkYnAoIlxuRE9NQUlOIDogICAgZG9taWQ6 MHglMDR4IHB0cjoweCVwXG4iLCBkcC0+ZG9tYWluX2lkLCBkcCk7CiAgICBpZiAoZHAtPmRvbWFp bl9pZCA9PSBET01JRF9JRExFKSB7CiAgICAgICAga2RicCgiICAgIElETEUgZG9tYWluLlxuIik7 CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGRwLT5pc19keWluZykgewogICAgICAgIGtk YnAoIiAgICBkb21haW4gaXMgRFlJTkcuXG4iKTsKICAgICAgICByZXR1cm47CiAgICB9CiNpZiAw CiAgICBrZGJfcHJpbnRfc3Bpbl9sb2NrKCIgIHBnYWxrOiIsICZkcC0+cGFnZV9hbGxvY19sb2Nr LCAiXG4iKTsKICAgIGtkYnAoIiAgcGdsaXN0OiAgMHglcCAweCVwXG4iLCBkcC0+cGFnZV9saXN0 Lm5leHQsS0RCX1BHTExFKGRwLT5wYWdlX2xpc3QpKTsKICAgIGtkYnAoIiAgeHBnbGlzdDogMHgl cCAweCVwXG4iLCBkcC0+eGVucGFnZV9saXN0Lm5leHQsIAogICAgICAgICBLREJfUEdMTEUoZHAt PnhlbnBhZ2VfbGlzdCkpOwogICAga2RicCgiICBuZXh0OjB4JXAgaGFzaG5leHQ6MHglcFxuIiwg CiAgICAgICAgIGRwLT5uZXh0X2luX2xpc3QsIGRwLT5uZXh0X2luX2hhc2hidWNrZXQpOwojZW5k aWYKICAgIGtkYnAoIiAgUEFHRVM6IHRvdDoweCUwOHggbWF4OjB4JTA4eCB4ZW5oZWFwOjB4JTA4 eFxuIiwgCiAgICAgICAgIGRwLT50b3RfcGFnZXMsIGRwLT5tYXhfcGFnZXMsIGRwLT54ZW5oZWFw X3BhZ2VzKTsKCiAgICBrZGJfcHJpbnRfcmFuZ2VzZXRzKGRwKTsKICAgIGtkYl9wcmludF9kb21f ZXZlbnRpbmZvKGRwKTsKICAgIGtkYnAoIlxuIik7CiAgICBrZGJwKCIgIEdyYW50IHRhYmxlOiBn cDoweCVwXG4iLCBncCk7CiAgICBpZiAoZ3ApIHsKICAgICAgICBrZGJwKCIgICAgbnJfZnJhbWVz OjB4JTA4eCBzaHBwOjB4JXAgYWN0aXZlOjB4JXBcbiIsCiAgICAgICAgICAgICBncC0+bnJfZ3Jh bnRfZnJhbWVzLCBncC0+c2hhcmVkX3JhdywgZ3AtPmFjdGl2ZSk7CiAgICAgICAga2RicCgiICAg IG1hcHRyazoweCVwIG1hcGhkOjB4JTA4eCBtYXBsbXQ6MHglMDh4XG4iLCAKICAgICAgICAgICAg IGdwLT5tYXB0cmFjaywgZ3AtPm1hcHRyYWNrX2hlYWQsIGdwLT5tYXB0cmFja19saW1pdCk7CiAg ICAgICAga2RicCgiICAgIG1hcGNudDoiKTsKICAgICAgICBrZGJfcHJpbnRfc3Bpbl9sb2NrKCJt YXBjbnQ6IGxrOiIsICZncC0+bG9jaywgIlxuIik7CiAgICB9CiAgICBrZGJwKCIgIGh2bTolZCBw cml2OiVkIG5lZWRfaW9tbXU6JWQgZGJnOiVkIGR5aW5nOiVkIHBhdXNlZDolZFxuIiwKICAgICAg ICAgZHAtPmlzX2h2bSwgZHAtPmlzX3ByaXZpbGVnZWQsIGRwLT5uZWVkX2lvbW11LAogICAgICAg ICBkcC0+ZGVidWdnZXJfYXR0YWNoZWQsIGRwLT5pc19keWluZywgZHAtPmlzX3BhdXNlZF9ieV9j b250cm9sbGVyKTsKICAgIGtkYl9wcmludF9zcGluX2xvY2soIiAgc2h1dGRvd246IGxrOiIsICZk cC0+c2h1dGRvd25fbG9jaywgIlxuIik7CiAgICBrZGJwKCIgIHNodXRuOiVkIHNodXQ6JWQgY29k ZTolZCBcbiIsIGRwLT5pc19zaHV0dGluZ19kb3duLAogICAgICAgICBkcC0+aXNfc2h1dF9kb3du LCBkcC0+c2h1dGRvd25fY29kZSk7CiAgICBrZGJwKCIgIHBhdXNlY250OjB4JTA4eCB2bV9hc3Np c3Q6MHgiS0RCRkwiIHJlZmNudDoweCUwOHhcbiIsCiAgICAgICAgIGRwLT5wYXVzZV9jb3VudC5j b3VudGVyLCBkcC0+dm1fYXNzaXN0LCBkcC0+cmVmY250LmNvdW50ZXIpOwogICAga2RicCgiICAm ZG9tYWluX2RpcnR5X2NwdW1hc2s6JXBcbiIsICZkcC0+ZG9tYWluX2RpcnR5X2NwdW1hc2spOyAK CiAgICBrZGJwKCIgIHNoYXJlZCA9PSB2Y3B1X2luZm9bXTogJXBcbiIsICBkcC0+c2hhcmVkX2lu Zm8pOyAKICAgIGtkYnAoIiAgICBhcmNoX3NoYXJlZDogbWF4cGZuOiAlbHggcGZuLW1mbi1mcmFt ZS1sbCBtZm46ICVseFxuIiwgCiAgICAgICAgIGFyY2hfZ2V0X21heF9wZm4oZHApLCBhcmNoX2dl dF9wZm5fdG9fbWZuX2ZyYW1lX2xpc3RfbGlzdChkcCkpOwogICAga2RicCgiXG4iKTsKICAgIGtk YnAoIiAgYXJjaF9kb21haW4gYXQgOiAlcFxuIiwgYXApOwoKI2lmZGVmIENPTkZJR19YODZfNjQK ICAgIGtkYnAoIiAgICBwdF9wYWdlczoweCVwICIsIGFwLT5tbV9wZXJkb21haW5fcHRfcGFnZXMp OwogICAga2RicCgiICAgIGwyOjB4JXAgbDM6MHglcFxuIiwgYXAtPm1tX3BlcmRvbWFpbl9sMiwg YXAtPm1tX3BlcmRvbWFpbl9sMyk7CiNlbHNlCiAgICBrZGJwKCIgICAgcHQ6MHglcCAiLCBhcC0+ bW1fcGVyZG9tYWluX3B0KTsKI2VuZGlmCiNpZmRlZiBDT05GSUdfWDg2XzMyCiAgICBrZGJwKCIg ICAgJm1hcGNoYWNoZToweCV4cFxuIiwgJmFwLT5tYXBjYWNoZSk7CiNlbmRpZgogICAga2RicCgi ICAgIGlvcG9ydDoweCVwICZodm1fZG9tOjB4JXBcbiIsIGFwLT5pb3BvcnRfY2FwcywgJmFwLT5o dm1fZG9tYWluKTsKICAgIGlmIChpc19odm1fb3JfaHliX2RvbWFpbihkcCkpCiAgICAgICAga2Ri X3BybnRfaHZtX2RvbV9pbmZvKGRwKTsKCiAgICBrZGJwKCIgICAgJnBnaW5nX2RvbTolcCBtb2Rl OiAlbHgiLCAmYXAtPnBhZ2luZywgYXAtPnBhZ2luZy5tb2RlKTsgCiAgICBrZGJfcHJfZG9tX3Bn X21vZGVzKGRwKTsKICAgIGtkYnAoIiAgICBwMm0gcHRyOiVwICBwYWdlczp7JXAsICVwfVxuIiwg YXAtPnAybSwgYXAtPnAybS0+cGFnZXMubmV4dCwKICAgICAgICAgS0RCX1BHTExFKGFwLT5wMm0t PnBhZ2VzKSk7CiAgICBrZGJwKCIgICAgICAgbWF4X21hcHBlZF9wZm46IktEQkZMLCBhcC0+cDJt LT5tYXhfbWFwcGVkX3Bmbik7CiNpZiBYRU5fU1VCVkVSU0lPTiA+IDAgJiYgWEVOX1ZFUlNJT04g PT0gNCAgICAgICAgICAgICAgLyogeGVuIDQuMSBhbmQgYWJvdmUgKi8KICAgIGtkYnAoIiAgcGh5 c190YWJsZTolcFxuIiwgYXAtPnAybS0+cGh5c190YWJsZS5wZm4pOwojZWxzZQogICAga2RicCgi ICBwaHlzX3RhYmxlLnBmbjoiS0RCRkwiXG4iLCBhcC0+cGh5c190YWJsZS5wZm4pOwojZW5kaWYK ICAgIGtkYnAoIiAgICBwaHlzYWRkcl9iaXRzejolZCAzMmJpdF9wdjolZCBoYXNfMzJiaXRfc2hp bmZvOiVkXG4iLCAKICAgICAgICAgYXAtPnBoeXNhZGRyX2JpdHNpemUsIGFwLT5pc18zMmJpdF9w diwgYXAtPmhhc18zMmJpdF9zaGluZm8pOwogICAga2RiX3ByX3Z0c2NfaW5mbyhhcCk7CiAgICBr ZGJwKCIgIHNjaGVkOjB4JXAgICZoYW5kbGU6MHglcFxuIiwgZHAtPnNjaGVkX3ByaXYsICZkcC0+ aGFuZGxlKTsKICAgIGtkYnAoIiAgdmNwdSBwdHJzOlxuICAgIik7CiAgICBmb3JfZWFjaF92Y3B1 KGRwLCB2cCkgewogICAgICAgIGtkYnAoIiAlZDolcCIsIHZwLT52Y3B1X2lkLCB2cCk7CiAgICAg ICAgaWYgKCsrcHJpbnRlZCAlIDQgPT0gMCkga2RicCgiXG4gICAiKTsKICAgIH0KICAgIGtkYnAo IlxuIik7Cn0KCi8qIAogKiBGVU5DVElPTjogRGlzcGFseSAoY3VycmVudCkgZG9tYWluL3MKICov CnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX2RvbSh2b2lkKQp7CiAgICBrZGJwKCJkb20g W2FsbHxkb21pZF06IERpc3BsYXkgY3VycmVudC9hbGwvZ2l2ZW4gZG9tYWluL3NcbiIpOwogICAg cmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3RhdGljIGtkYl9jcHVfY21kX3QgCmtkYl9jbWRm X2RvbShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpy ZWdzKQp7CiAgICBpbnQgaWQ7CiAgICBzdHJ1Y3QgZG9tYWluICpkcCA9IGN1cnJlbnQtPmRvbWFp bjsKCiAgICBpZiAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJldHVybiBr ZGJfdXNnZl9kb20oKTsKCiAgICBpZiAoYXJnYyA+IDEpIHsKICAgICAgICBmb3IoZHA9ZG9tYWlu X2xpc3Q7IGRwOyBkcD1kcC0+bmV4dF9pbl9saXN0KQogICAgICAgICAgICBpZiAoa2RiX3N0cjJk ZWNpKGFyZ3ZbMV0sICZpZCkgJiYgZHAtPmRvbWFpbl9pZD09aWQpCiAgICAgICAgICAgICAgICBr ZGJfZGlzcGxheV9kb20oZHApOwogICAgICAgICAgICBlbHNlIGlmICghc3RyY21wKGFyZ3ZbMV0s ICJhbGwiKSkgCiAgICAgICAgICAgICAgICBrZGJfZGlzcGxheV9kb20oZHApOwogICAgfSBlbHNl IHsKICAgICAgICBrZGJwKCJEaXNwbGF5aW5nIGN1cnJlbnQgZG9tYWluIDpcbiIpOwogICAgICAg IGtkYl9kaXNwbGF5X2RvbShkcCk7CiAgICB9CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsK fQoKLyogRHVtcCBpcnEgZGVzYyB0YWJsZSAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNn Zl9kaXJxKHZvaWQpCnsKICAgIGtkYnAoImRpcnEgOiBkdW1wIGlycSBiaW5kaW5nc1xuIik7CiAg ICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfY21k Zl9kaXJxKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3Mg KnJlZ3MpCnsKICAgIHVuc2lnbmVkIGxvbmcgaXJxLCBzeiwgb2ZmcywgYWRkcjsKICAgIGNoYXIg YnVmW0tTWU1fTkFNRV9MRU4rMV07CiAgICBjaGFyIGFmZnN0cltOUl9DUFVTLzQrTlJfQ1BVUy8z MisyXTsgICAgLyogY291cnRlc3kgZHVtcF9pcnFzKCkgKi8KCiAgICBpZiAoYXJnYyA+IDEgJiYg KmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJldHVybiBrZGJfdXNnZl9kaXJxKCk7CgojaWYgWEVO X1ZFUlNJT04gPCA0ICYmIFhFTl9TVUJWRVJTSU9OIDwgNSAgICAgICAgICAgLyogeGVuIDMuNC54 IG9yIGJlbG93ICovCiAgICBrZGJwKCJpZHgvaXJxIy9zdGF0dXM6IGFsbCBhcmUgaW4gZGVjaW1h bFxuIik7CiAgICBrZGJwKCJpZHggIGlycSMgIHN0YXR1cyAgIGFjdGlvbihoYW5kbGVyIG5hbWUg ZGV2aWQpXG4iKTsKICAgIGZvciAoaXJxPTA7IGlycSA8IE5SX1ZFQ1RPUlM7IGlycSsrKSB7CiAg ICAgICAgaXJxX2Rlc2NfdCAgKmRwID0gJmlycV9kZXNjW2lycV07CiAgICAgICAgaWYgKCFkcC0+ YWN0aW9uKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICBhZGRyID0gKHVuc2lnbmVkIGxv bmcpZHAtPmFjdGlvbi0+aGFuZGxlcjsKICAgICAgICBrZGJwKCJbJTNsZF06aXJxOiUzZCBzdDol M2QgZjolcyBkZXZubTolcyBkZXZpZDoweCVwXG4iLAogICAgICAgICAgICAgaSwgdmVjdG9yX3Rv X2lycShpcnEpLCBkcC0+c3RhdHVzLCAoZHAtPnN0YXR1cyAmIElSUV9HVUVTVCkgPyAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJHVUVTVCBJUlEiIDogc3ltYm9sc19sb29rdXAoYWRkciwg JnN6LCAmb2ZmcywgYnVmKSwKICAgICAgICAgICAgIGRwLT5hY3Rpb24tPm5hbWUsIGRwLT5hY3Rp b24tPmRldl9pZCk7CiAgICB9CiNlbHNlCiAgICBrZGJwKCJpcnFfZGVzY1tdOiVwIG5yX2lycXM6 ICQlZCBucl9pcnFzX2dzaTogJCVkXG4iLCBpcnFfZGVzYywgbnJfaXJxcywgCiAgICAgICAgICBu cl9pcnFzX2dzaSk7CiAgICBrZGJwKCJpcnEvdmVjIy9zdGF0dXM6IGluIGRlY2ltYWwuIGFmZmlu aXR5IGluIGhleCwgbm90IGJpdG1hcFxuIik7CiAgICBrZGJwKCJpcnEtLSB2ZWMgc3RhIGZ1bmN0 aW9uLS0tLS0tLS0tLS0gbmFtZS0tLS0gdHlwZS0tLS0tLS0tLSAiKTsKICAgIGtkYnAoImFmZiBk ZXZpZC0tLS0tLS0tLS0tLVxuIik7CiAgICBmb3IgKGlycT0wOyBpcnEgPCBucl9pcnFzOyBpcnEr KykgewogICAgICAgIHZvaWQgKmRldmlkcDsKICAgICAgICBjb25zdCBjaGFyICpzeW1wLCAqbm1w OwogICAgICAgIGlycV9kZXNjX3QgICpkcCA9IGlycV90b19kZXNjKGlycSk7CiAgICAgICAgc3Ry dWN0IGFyY2hfaXJxX2Rlc2MgKmFyY2hwID0gJmRwLT5hcmNoOwoKICAgICAgICBpZiAoIWRwLT5o YW5kbGVyIHx8IGRwLT5oYW5kbGVyPT0mbm9faXJxX3R5cGUgfHwgZHAtPnN0YXR1cyAmIElSUV9H VUVTVCkKICAgICAgICAgICAgY29udGludWU7CgogICAgICAgIGFkZHIgPSBkcC0+YWN0aW9uID8g KHVuc2lnbmVkIGxvbmcpZHAtPmFjdGlvbi0+aGFuZGxlciA6IDA7CiAgICAgICAgc3ltcCA9IGFk ZHIgPyBzeW1ib2xzX2xvb2t1cChhZGRyLCAmc3osICZvZmZzLCBidWYpIDogIm4vYSAiOwogICAg ICAgIG5tcCA9IGFkZHIgPyBkcC0+YWN0aW9uLT5uYW1lIDogIm4vYSAiOwogICAgICAgIGRldmlk cCA9IGFkZHIgPyBkcC0+YWN0aW9uLT5kZXZfaWQgOiBOVUxMOwogICAgICAgIGNwdW1hc2tfc2Nu cHJpbnRmKGFmZnN0ciwgc2l6ZW9mKGFmZnN0ciksIGRwLT5hZmZpbml0eSk7CiAgICAgICAga2Ri cCgiWyUzbGRdICUwM2QgJTAzZCAlLTE5cyAlLThzICUtMTNzICUzcyAweCVwXG4iLCBpcnEsIGFy Y2hwLT52ZWN0b3IsCiAgICAgICAgICAgICBkcC0+c3RhdHVzLCBzeW1wLCBubXAsIGRwLT5oYW5k bGVyLT50eXBlbmFtZSwgYWZmc3RyLCBkZXZpZHApOwogICAgfQogICAga2RiX3BybnRfZ3Vlc3Rf bWFwcGVkX2lycXMoKTsKI2VuZGlmCiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKc3Rh dGljIHZvaWQKa2RiX3BybnRfdmVjX2lycV90YWJsZShpbnQgY3B1KQp7CiAgICBpbnQgaSxqLCAq dGJsID0gcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpOwoKICAgIGtkYnAoIkNQVSAlZCA6ICIsIGNw dSk7CiAgICBmb3IgKGk9MCwgaj0wOyBpIDwgTlJfVkVDVE9SUzsgaSsrKQogICAgICAgIGlmICh0 YmxbaV0gIT0gLTEpIHsKICAgICAgICAgICAga2RicCgiKCUzZDolM2QpICIsIGksIHRibFtpXSk7 CiAgICAgICAgICAgIGlmICghKCsraiAlIDUpKQogICAgICAgICAgICAgICAga2RicCgiXG4gICAg ICAgICIpOwogICAgICAgIH0KICAgIGtkYnAoIlxuIik7Cn0KCi8qIER1bXAgaXJxIGRlc2MgdGFi bGUgKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfZHZpdCh2b2lkKQp7CiAgICBrZGJw KCJkdml0IFtjcHV8YWxsXTogZHVtcCAocGVyIGNwdSl2ZWN0b3IgaXJxIHRhYmxlXG4iKTsKICAg IHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl9jbWRm X2R2aXQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKewogICAgaW50IGNwdSwgY2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKCiAgICBpZiAo YXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJldHVybiBrZGJfdXNnZl9kdml0 KCk7CiAgICAKICAgIGlmIChhcmdjID4gMSkgewogICAgICAgIGlmICghc3RyY21wKGFyZ3ZbMV0s ICJhbGwiKSkgCiAgICAgICAgICAgIGNwdSA9IC0xOwogICAgICAgIGVsc2UgaWYgKCFrZGJfc3Ry MmRlY2koYXJndlsxXSwgJmNwdSkpIHsKICAgICAgICAgICAga2RicCgiSW52YWxpZCBjcHU6JWRc biIsIGNwdSk7CiAgICAgICAgICAgIHJldHVybiBrZGJfdXNnZl9kdml0KCk7CiAgICAgICAgfQog ICAgfSBlbHNlCiAgICAgICAgY3B1ID0gY2NwdTsKCiAgICBrZGJwKCJQZXIgQ1BVIHZlY3RvciBp cnEgdGFibGUgcGFpcnMgKHZlY3RvcjppcnEpIChhbGwgZGVjaW1hbHMpOlxuIik7CiAgICBpZiAo Y3B1ICE9IC0xKSAKICAgICAgICBrZGJfcHJudF92ZWNfaXJxX3RhYmxlKGNwdSk7CiAgICBlbHNl CiAgICAgICAgZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIAogICAgICAgICAgICBrZGJfcHJudF92 ZWNfaXJxX3RhYmxlKGNwdSk7CgogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIGRv IHZtZXhpdCBvbiBhbGwgY3B1J3Mgc28gaW50ZWwgVk1DUyBjYW4gYmUgZHVtcGVkICovCnN0YXRp YyBrZGJfY3B1X2NtZF90IAprZGJfYWxsX2NwdV9mbHVzaF92bWNzKHZvaWQpCnsKICAgIGludCBj cHUsIGNjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAgICBmb3JfZWFjaF9vbmxpbmVfY3B1KGNw dSkgewogICAgICAgIGlmIChjcHUgPT0gY2NwdSkgewogICAgICAgICAgICBrZGJfY3Vycl9jcHVf Zmx1c2hfdm1jcygpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChrZGJfY3B1X2Nt ZFtjcHVdICE9IEtEQl9DUFVfUEFVU0UpeyAgLyogaHVuZyBjcHUgKi8KICAgICAgICAgICAgICAg IGtkYnAoIlNraXBwaW5nIChodW5nPykgY3B1ICVkXG4iLCBjcHUpOwogICAgICAgICAgICAgICAg Y29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAga2RiX2NwdV9jbWRbY3B1XSA9IEtE Ql9DUFVfRE9fVk1FWElUOwogICAgICAgICAgICB3aGlsZSAoa2RiX2NwdV9jbWRbY3B1XT09S0RC X0NQVV9ET19WTUVYSVQpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBLREJfQ1BVX01BSU5f S0RCOwp9CgovKiBEaXNwbGF5IFZNQ1Mgb3IgVk1DQiAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdApr ZGJfdXNnZl9kdm1jKHZvaWQpCnsKICAgIGtkYnAoImR2bWMgW2RvbWlkXVt2Y3B1aWRdIDogRHVt cCB2bWNzL3ZtY2JcbiIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0Kc3RhdGljIGtk Yl9jcHVfY21kX3QKa2RiX2NtZGZfZHZtYyhpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICBkb21pZF90IGRvbWlkID0gMDsgIC8qIHVu c2lnbmVkIHR5cGUgZG9uJ3QgbGlrZSAtMSAqLwogICAgaW50IHZjcHVpZCA9IC0xOwoKICAgIGlm IChhcmdjID4gMSAmJiAqYXJndlsxXSA9PSAnPycpCiAgICAgICAgcmV0dXJuIGtkYl91c2dmX2R2 bWMoKTsKCiAgICBpZiAoYXJnYyA+IDEpIHsgCiAgICAgICAgaWYgKCFrZGJfc3RyMmRvbWlkKGFy Z3ZbMV0sICZkb21pZCwgMSkpCiAgICAgICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwog ICAgfQogICAgaWYgKGFyZ2MgPiAyICYmICFrZGJfc3RyMmRlY2koYXJndlsyXSwgJnZjcHVpZCkp IHsKICAgICAgICBrZGJwKCJCYWQgdmNwdWlkOiAweCV4XG4iLCB2Y3B1aWQpOwogICAgICAgIHJl dHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgfQogICAgaWYgKGJvb3RfY3B1X2RhdGEueDg2X3Zl bmRvciA9PSBYODZfVkVORE9SX0lOVEVMKSB7CiAgICAgICAga2RiX2FsbF9jcHVfZmx1c2hfdm1j cygpOwogICAgICAgIGtkYl9kdW1wX3ZtY3MoZG9taWQsIChpbnQpdmNwdWlkKTsKICAgIH0gZWxz ZSB7CiAgICAgICAga2RiX2R1bXBfdm1jYihkb21pZCwgKGludCl2Y3B1aWQpOwogICAgfQogICAg cmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dm X21taW8odm9pZCkKewogICAga2RicCgibW1pbzogZHVtcCBtbWlvIHJlbGF0ZWQgaW5mb1xuIik7 CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJf Y21kZl9tbWlvKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3Jl Z3MgKnJlZ3MpCnsKICAgIGlmIChhcmdjID4gMSAmJiAqYXJndlsxXSA9PSAnPycpCiAgICAgICAg cmV0dXJuIGtkYl91c2dmX21taW8oKTsKCiAgICBrZGJwKCJyL28gbW1pbyByYW5nZXM6XG4iKTsK ICAgIHJhbmdlc2V0X3ByaW50ayhtbWlvX3JvX3Jhbmdlcyk7CiAgICBrZGJwKCJcbiIpOwogICAg cmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIER1bXAgdGltZXIvdGltZXJzIHF1ZXVlcyAq LwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl9kdHJxKHZvaWQpCnsKICAgIGtkYnAoImR0 cnE6IGR1bXAgdGltZXIgcXVldWVzIG9uIGFsbCBjcHVzXG4iKTsKICAgIHJldHVybiBLREJfQ1BV X01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl9jbWRmX2R0cnEoaW50IGFyZ2Ms IGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgaWYg KGFyZ2MgPiAxICYmICphcmd2WzFdID09ICc/JykKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfZHRy cSgpOwoKICAgIGtkYl9kdW1wX3RpbWVyX3F1ZXVlcygpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJ Tl9LREI7Cn0KCnN0cnVjdCBpZHRlIHsKICAgIHVpbnQxNl90IG9mZnMwXzE1OwogICAgdWludDE2 X3Qgc2VsZWN0b3I7CiAgICB1aW50MTZfdCBtZXRhOwogICAgdWludDE2X3Qgb2ZmczE2XzMxOwog ICAgdWludDMyX3Qgb2ZmczMyXzYzOwogICAgdWludDMyX3QgcmVzdmQ7Cn07CgojaWZkZWYgX194 ODZfNjRfXwpzdGF0aWMgdm9pZAprZGJfcHJpbnRfaWR0ZShpbnQgbnVtLCBzdHJ1Y3QgaWR0ZSAq aWR0cCkgCnsKICAgIHVpbnQxNl90IG10YSA9IGlkdHAtPm1ldGE7CiAgICBjaGFyIGRwbCA9ICgo bXRhICYgMHg2MDAwKSA+PiAxMyk7CiAgICBjaGFyIHByZXNlbnQgPSAoKG10YSAmMHg4MDAwKSA+ PiAxNSk7CiAgICBpbnQgdHZhbCA9ICgobXRhICYweDMwMCkgPj4gOCk7CiAgICBjaGFyICp0eXBl ID0gKHR2YWwgPT0gMSkgPyAiVGFzayIgOiAoKHR2YWw9PSAyKSA/ICJJbnRyIiA6ICJUcmFwIik7 CiAgICBkb21pZF90IGRvbWlkID0gaWR0cC0+c2VsZWN0b3I9PV9fSFlQRVJWSVNPUl9DUzY0ID8g RE9NSURfSURMRSA6CiAgICAgICAgICAgICAgICAgICAgY3VycmVudC0+ZG9tYWluLT5kb21haW5f aWQ7CiAgICB1aW50NjRfdCBhZGRyID0gaWR0cC0+b2ZmczBfMTUgfCAoKHVpbnQ2NF90KWlkdHAt Pm9mZnMxNl8zMSA8PCAxNikgfCAKICAgICAgICAgICAgICAgICAgICAoKHVpbnQ2NF90KWlkdHAt Pm9mZnMzMl82MyA8PCAzMik7CgogICAga2RicCgiWyUwM2RdOiAlcyAleCAgJXggJTA0eDolMDE2 bHggIiwgbnVtLCB0eXBlLCBkcGwsIHByZXNlbnQsCiAgICAgICAgIGlkdHAtPnNlbGVjdG9yLCBh ZGRyKTsgCiAgICBrZGJfcHJudF9hZGRyMnN5bShkb21pZCwgYWRkciwgIlxuIik7Cn0KCi8qIER1 bXAgNjRiaXQgaWR0IHRhYmxlIGN1cnJlbnRseSBvbiB0aGlzIGNwdS4gSW50ZWwgVm9sIDMgc2Vj dGlvbiA1LjE0LjEgKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfZGlkdCh2b2lkKQp7 CiAgICBrZGJwKCJkaWR0IDogZHVtcCBJRFQgdGFibGUgb24gdGhlIGN1cnJlbnQgY3B1XG4iKTsK ICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl9j bWRmX2RpZHQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKewogICAgaW50IGk7CiAgICBzdHJ1Y3QgaWR0ZSAqaWR0cCA9IChzdHJ1Y3QgaWR0 ZSAqKWlkdF90YWJsZXNbc21wX3Byb2Nlc3Nvcl9pZCgpXTsKCiAgICBpZiAoYXJnYyA+IDEgJiYg KmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJldHVybiBrZGJfdXNnZl9kaWR0KCk7CgogICAga2Ri cCgiSURUIGF0OiVwXG4iLCBpZHRwKTsKICAgIGtkYnAoImlkdCMgIFR5cGUgRFBMIFAgYWRkciAo YWxsIGhleCBleGNlcHQgaWR0IylcbiIsIGlkdHApOwogICAgZm9yIChpPTA7IGkgPCAyNTY7IGkr KywgaWR0cCsrKSAKICAgICAgICBrZGJfcHJpbnRfaWR0ZShpLCBpZHRwKTsKICAgIHJldHVybiBL REJfQ1BVX01BSU5fS0RCOwp9CiNlbHNlCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl9jbWRmX2Rp ZHQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVn cykKewogICAga2RicCgia2RiOiBQbGVhc2UgaW1wbGVtZW50IG1lIGluIDMyYml0IGh5cGVydmlz b3JcbiIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KI2VuZGlmCgpzdHJ1Y3QgZ2R0 ZSB7ICAgICAgICAgICAgIC8qIHNhbWUgZm9yIFRTUyBhbmQgTERUICovCiAgICB1bG9uZyBsaW1p dDA6MTY7CiAgICB1bG9uZyBiYXNlMDoyNDsgICAgICAgLyogbGluZWFyIGFkZHJlc3MgYmFzZSwg bm90IHBhICovCiAgICB1bG9uZyBhY2N0eXBlOjQ7ICAgICAgLyogVHlwZTogYWNjZXNzIHJpZ2h0 cyAqLwogICAgdWxvbmcgUzoxOyAgICAgICAgICAgIC8qIFM6IDAgPSBzeXN0ZW0sIDEgPSBjb2Rl L2RhdGEgKi8KICAgIHVsb25nIERQTDoyOyAgICAgICAgICAvKiBEUEwgKi8KICAgIHVsb25nIFA6 MTsgICAgICAgICAgICAvKiBQOiBTZWdtZW50IFByZXNlbnQgKi8KICAgIHVsb25nIGxpbWl0MTo0 OwogICAgdWxvbmcgQVZMOjE7ICAgICAgICAgIC8qIEFWTDogYXZhaWwgZm9yIHVzZSBieSBzeXN0 ZW0gc29mdHdhcmUgKi8KICAgIHVsb25nIEw6MTsgICAgICAgICAgICAvKiBMOiA2NGJpdCBjb2Rl IHNlZ21lbnQgKi8KICAgIHVsb25nIERCOjE7ICAgICAgICAgICAvKiBEL0IgKi8KICAgIHVsb25n IEc6MTsgICAgICAgICAgICAvKiBHOiBncmFudWxhcml0eSAqLwogICAgdWxvbmcgYmFzZTE6ODsg ICAgICAgIC8qIGxpbmVhciBhZGRyZXNzIGJhc2UsIG5vdCBwYSAqLwp9OwoKdW5pb24gZ2R0ZV91 IHsKICAgIHN0cnVjdCBnZHRlIGdkdGU7CiAgICB1NjQgZ3ZhbDsKfTsKCnN0cnVjdCBjYWxsX2dk dGUgewogICAgdW5zaWduZWQgc2hvcnQgb2ZmczA6MTY7CiAgICB1bnNpZ25lZCBzaG9ydCBzZWw6 MTY7CiAgICB1bnNpZ25lZCBzaG9ydCBtaXNjMDoxNjsKICAgIHVuc2lnbmVkIHNob3J0IG9mZnMx OjE2Owp9OwoKc3RydWN0IGlkdF9nZHRlIHsKICAgIHVuc2lnbmVkIGxvbmcgb2ZmczA6MTY7CiAg ICB1bnNpZ25lZCBsb25nIHNlbDoxNjsKICAgIHVuc2lnbmVkIGxvbmcgaXN0OjM7CiAgICB1bnNp Z25lZCBsb25nIHVudXNlZDA6MTM7CiAgICB1bnNpZ25lZCBsb25nIG9mZnMxOjE2Owp9Owp1bmlv biBzZ2R0ZV91IHsKICAgIHN0cnVjdCBjYWxsX2dkdGUgY2dkdGU7CiAgICBzdHJ1Y3QgaWR0X2dk dGUgaWdkdGU7CiAgICB1NjQgc2d2YWw7Cn07CgovKiByZXR1cm4gYmluYXJ5IGZvcm0gb2YgYSBo ZXggaW4gc3RyaW5nIDogbWF4IDQgY2hhcnMgMDAwMCB0byAxMTExICovCnN0YXRpYyBjaGFyICpr ZGJfcmV0X2FjY3R5cGUodWludCBhY2N0eXBlKQp7CiAgICBzdGF0aWMgY2hhciBidWZbMTZdOwog ICAgY2hhciAqcCA9IGJ1ZjsKICAgIGludCBpOwoKICAgIGlmIChhY2N0eXBlID4gMHhmKSB7CiAg ICAgICAgYnVmWzBdID0gYnVmWzFdID0gYnVmWzJdID0gYnVmWzNdID0gJz8nOwogICAgICAgIGJ1 Zls1XSA9ICdcbic7CiAgICAgICAgcmV0dXJuIGJ1ZjsKICAgIH0KICAgIGZvciAoaT0wOyBpIDwg NDsgaSsrLCBwKyssIGFjY3R5cGU9YWNjdHlwZT4+MSkKICAgICAgICAqcCA9IChhY2N0eXBlICYg MHgxKSA/ICcxJyA6ICcwJzsKCiAgICByZXR1cm4gYnVmOwp9CgovKiBEaXNwbGF5IEdEVCB0YWJs ZS4gSUEtMzJlIG1vZGUgaXMgYXNzdW1kZWQuICovCi8qIGZpcnN0IGRpc3BsYXkgbm9uIHN5c3Rl bSBkZXNjcmlwdG9ycyB0aGVuIGRpc3BsYXkgc3lzdGVtIGRlc2NyaXB0b3JzICovCnN0YXRpYyBr ZGJfY3B1X2NtZF90CmtkYl91c2dmX2RnZHQodm9pZCkKewogICAga2RicCgiZGdkdCBbZ2R0LXB0 ciBkZWNpbWFsLWJ5dGUtc2l6ZV0gZHVtcCBHRFQgdGFibGUgb24gY3VycmVudCBjcHUgb3IgZm9y IgogICAgICAgICAiZ2l2ZW4gdmNwdVxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsK fQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfY21kZl9kZ2R0KGludCBhcmdjLCBjb25zdCBjaGFy ICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIHN0cnVjdCBYZ3RfZGVz Y19zdHJ1Y3QgZGVzYzsKICAgIHVuaW9uIGdkdGVfdSB1MTsKICAgIHVsb25nIHN0YXJ0X2FkZHIs IGVuZF9hZGRyLCB0YWRkcj0wOwogICAgZG9taWRfdCBkb21pZCA9IERPTUlEX0lETEU7CiAgICBp bnQgaWR4OwoKICAgIGlmIChhcmdjID4gMSAmJiAqYXJndlsxXSA9PSAnPycpCiAgICAgICAgcmV0 dXJuIGtkYl91c2dmX2RnZHQoKTsKCiAgICBpZiAoYXJnYyA+IDEpIHsKICAgICAgICBpZiAoYXJn YyAhPSAzKQogICAgICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfZGdkdCgpOwoKICAgICAgICBpZiAo a2RiX3N0cjJ1bG9uZyhhcmd2WzFdLCAodWxvbmcgKikmc3RhcnRfYWRkcikgJiYgCiAgICAgICAg ICAgIGtkYl9zdHIyZGVjaShhcmd2WzJdLCAoaW50ICopJnRhZGRyKSkgewogICAgICAgICAgICBl bmRfYWRkciA9IHN0YXJ0X2FkZHIgKyB0YWRkcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICBrZGJwKCJkZ2R0OiBCYWQgYXJnOiVzIG9yICVzXG4iLCBhcmd2WzFdLCBhcmd2WzJdKTsKICAg ICAgICAgICAgcmV0dXJuIGtkYl91c2dmX2RnZHQoKTsKICAgICAgICB9CiAgICB9IGVsc2Ugewog ICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgic2dkdCAgKCUwKSBcbiIgOjogImEiKCZkZXNj KSA6ICJtZW1vcnkiKTsKICAgICAgICBzdGFydF9hZGRyID0gKHVsb25nKWRlc2MuYWRkcmVzczsg CiAgICAgICAgZW5kX2FkZHIgPSAodWxvbmcpZGVzYy5hZGRyZXNzICsgZGVzYy5zaXplOwogICAg fQogICAga2RicCgiR0RUOiBXaWxsIHNraXAgbnVsbCBkZXNjIGF0IDAsIHN0YXJ0OiVseCBlbmQ6 JWx4XG4iLCBzdGFydF9hZGRyLCAKICAgICAgICAgZW5kX2FkZHIpOwogICAga2RicCgiW2lkeF0g ICBzZWwgLS0tIHZhbCAtLS0tLS0tLSAgQWNjcyBEUEwgUCBBVkwgTCBEQiBHICIKICAgICAgICAg Ii0tQmFzZSBBZGRyIC0tLS0gIExpbWl0XG4iKTsKICAgIGtkYnAoIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFR5cGVcbiIpOwoKICAgIC8qIHNraXAgZmlyc3QgOCBudWxsIGJ5dGVzICov CiAgICAvKiB0aGUgY3B1IG11bHRpcGxpZXMgdGhlIGluZGV4IGJ5IDggYW5kIGFkZHMgdG8gR0RU LmJhc2UgKi8KICAgIGZvciAodGFkZHIgPSBzdGFydF9hZGRyKzg7IHRhZGRyIDwgZW5kX2FkZHI7 ICB0YWRkciArPSBzaXplb2YodWxvbmcpKSB7CgogICAgICAgIC8qIG5vdCBhbGwgZW50cmllcyBh cmUgbWFwcGVkLiBkbyB0aGlzIHRvIGF2b2lkIEdQIGV2ZW4gaWYgaHlwICovCiAgICAgICAgaWYg KCFrZGJfcmVhZF9tZW0odGFkZHIsIChrZGJieXRfdCAqKSZ1MSwgc2l6ZW9mKHUxKSxkb21pZCkg fHwgIXUxLmd2YWwpCiAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICBpZiAodTEuZ3ZhbCA9 PSAweGZmZmZmZmZmZmZmZmZmZmYgfHwgdTEuZ3ZhbCA9PSAweDU1NTU1NTU1NTU1NTU1NTUpCiAg ICAgICAgICAgIGNvbnRpbnVlOyAgICAgICAgICAgICAgIC8qIHdoYXQgYW4gZWZmaW4geDg2IG1l c3MgKi8KCiAgICAgICAgaWR4ID0gKHRhZGRyIC0gc3RhcnRfYWRkcikgLyA4OwogICAgICAgIGlm ICh1MS5nZHRlLlMgPT0gMCkgeyAgICAgICAvKiBTeXN0ZW0gRGVzYyBhcmUgMTYgYnl0ZXMgaW4g NjRiaXQgbW9kZSAqLwogICAgICAgICAgICB0YWRkciArPSBzaXplb2YodWxvbmcpOwogICAgICAg ICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAga2RicCgiWyUwNHhdICUwNHggJTAxNmx4 ICAlNHMgICV4ICAlZCAgJWQgICVkICAlZCAlZCAlMDE2bHggICUwNXhcbiIsCiAgICAgICAgICAg ICBpZHgsIChpZHg8PDMpLCB1MS5ndmFsLCBrZGJfcmV0X2FjY3R5cGUodTEuZ2R0ZS5hY2N0eXBl KSwgCiAgICAgICAgICAgICB1MS5nZHRlLkRQTCwgCiAgICAgICAgICAgICB1MS5nZHRlLlAsIHUx LmdkdGUuQVZMLCB1MS5nZHRlLkwsIHUxLmdkdGUuREIsIHUxLmdkdGUuRywgIAogICAgICAgICAg ICAgKHU2NCkoKHU2NCl1MS5nZHRlLmJhc2UwIHwgKHU2NCkoKHU2NCl1MS5nZHRlLmJhc2UxPDwy NCkpLCAKICAgICAgICAgICAgIHUxLmdkdGUubGltaXQwIHwgKHUxLmdkdGUubGltaXQxPDwxNikp OwogICAgfQoKICAgIGtkYnAoIlxuU3lzdGVtIGRlc2NyaXB0b3JzIChTPTApIDogKHNraXBwaW5n IDB0aCBlbnRyeSlcbiIpOwogICAgZm9yICh0YWRkcj1zdGFydF9hZGRyKzg7ICB0YWRkciA8IGVu ZF9hZGRyOyAgdGFkZHIgKz0gc2l6ZW9mKHVsb25nKSkgewogICAgICAgIHVpbnQgYWNjdHlwZTsK ICAgICAgICB1NjQgdXBwZXIsIGFkZHI2ND0wOwoKICAgICAgICAvKiBub3QgYWxsIGVudHJpZXMg YXJlIG1hcHBlZC4gZG8gdGhpcyB0byBhdm9pZCBHUCBldmVuIGlmIGh5cCAqLwogICAgICAgIGlm IChrZGJfcmVhZF9tZW0odGFkZHIsIChrZGJieXRfdCAqKSZ1MSwgc2l6ZW9mKHUxKSwgZG9taWQp PT0wIHx8IAogICAgICAgICAgICB1MS5ndmFsID09IDAgfHwgdTEuZ2R0ZS5TID09IDEpIHsKICAg ICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlkeCA9ICh0YWRkciAtIHN0YXJ0 X2FkZHIpIC8gODsKICAgICAgICB0YWRkciArPSBzaXplb2YodWxvbmcpOwogICAgICAgIGlmIChr ZGJfcmVhZF9tZW0odGFkZHIsIChrZGJieXRfdCAqKSZ1cHBlciwgOCwgZG9taWQpID09IDApIHsK ICAgICAgICAgICAga2RicCgiQ291bGQgbm90IHJlYWQgdXBwZXIgOCBieXRlcyBvZiBzeXN0ZW0g ZGVzY1xuIik7CiAgICAgICAgICAgIHVwcGVyID0gMDsKICAgICAgICB9CiAgICAgICAgYWNjdHlw ZSA9IHUxLmdkdGUuYWNjdHlwZTsKICAgICAgICBpZiAoYWNjdHlwZSAhPSAyICYmIGFjY3R5cGUg IT0gOSAmJiBhY2N0eXBlICE9IDExICYmIGFjY3R5cGUgIT0xMiAmJgogICAgICAgICAgICBhY2N0 eXBlICE9IDE0ICYmIGFjY3R5cGUgIT0gMTUpCiAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAg ICBrZGJwKCJbJTA0eF0gJTA0eCB2YWw6JTAxNmx4IERQTDoleCBQOiVkIHR5cGU6JXggIiwKICAg ICAgICAgICAgIGlkeCwgKGlkeDw8MyksIHUxLmd2YWwsIHUxLmdkdGUuRFBMLCB1MS5nZHRlLlAs IGFjY3R5cGUpOyAKCiAgICAgICAgdXBwZXIgPSAodTY0KSgodTY0KSh1cHBlciAmIDB4RkZGRkZG RkYpIDw8IDMyKTsKCiAgICAgICAgLyogVm9sIDNBOiB0YWJsZTogMy0yICBwYWdlOiAzLTE5ICov CiAgICAgICAgaWYgKGFjY3R5cGUgPT0gMikgewogICAgICAgICAgICBrZGJwKCJMRFQgZ2F0ZSAo MDAxMClcbiIpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChhY2N0eXBlID09IDkpIHsKICAg ICAgICAgICAga2RicCgiVFNTIGF2YWlsIGdhdGUoMTAwMSlcbiIpOwogICAgICAgIH0KICAgICAg ICBlbHNlIGlmIChhY2N0eXBlID09IDExKSB7CiAgICAgICAgICAgIGtkYnAoIlRTUyBidXN5IGdh dGUoMTAxMSlcbiIpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChhY2N0eXBlID09IDEyKSB7 CiAgICAgICAgICAgIGtkYnAoIkNBTEwgZ2F0ZSAoMTEwMClcbiIpOwogICAgICAgIH0KICAgICAg ICBlbHNlIGlmIChhY2N0eXBlID09IDE0KSB7CiAgICAgICAgICAgIGtkYnAoIklEVCBnYXRlICgx MTEwKVxuIik7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGFjY3R5cGUgPT0gMTUpIHsKICAg ICAgICAgICAga2RicCgiVHJhcCBnYXRlICgxMTExKVxuIik7IAogICAgICAgIH0KCiAgICAgICAg aWYgKGFjY3R5cGUgPT0gMiB8fCBhY2N0eXBlID09IDkgfHwgYWNjdHlwZSA9PSAxMSkgewogICAg ICAgICAgICBrZGJwKCIgICAgICAgIEFWTDolZCBHOiVkIEJhc2UgQWRkcjolMDE2bHggTGltaXQ6 JXhcbiIsCiAgICAgICAgICAgICAgICAgdTEuZ2R0ZS5BVkwsIHUxLmdkdGUuRywgIAogICAgICAg ICAgICAgICAgICh1NjQpKCh1NjQpdTEuZ2R0ZS5iYXNlMCB8ICgodTY0KXUxLmdkdGUuYmFzZTE8 PDI0KXwgdXBwZXIpLAogICAgICAgICAgICAgICAgICh1MzIpdTEuZ2R0ZS5saW1pdDAgfCAodTMy KSgodTMyKXUxLmdkdGUubGltaXQxPDwxNikpOwoKICAgICAgICB9IGVsc2UgaWYgKGFjY3R5cGUg PT0gMTIpIHsKICAgICAgICAgICAgdW5pb24gc2dkdGVfdSB1MjsKICAgICAgICAgICAgdTIuc2d2 YWwgPSB1MS5ndmFsOwoKICAgICAgICAgICAgYWRkcjY0ID0gKHU2NCkoKHU2NCl1Mi5jZ2R0ZS5v ZmZzMCB8IAogICAgICAgICAgICAgICAgICAgICAgICAgICAodTY0KSgodTY0KXUyLmNnZHRlLm9m ZnMxPDwxNikgfCB1cHBlcik7CiAgICAgICAgICAgIGtkYnAoIiAgICAgICAgRW50cnk6ICUwNHg6 JTAxNmx4XG4iLCB1Mi5jZ2R0ZS5zZWwsIGFkZHI2NCk7CiAgICAgICAgfSBlbHNlIGlmIChhY2N0 eXBlID09IDE0IHx8IGFjY3R5cGUgPT0gMTUpIHsKICAgICAgICAgICAgdW5pb24gc2dkdGVfdSB1 MjsKICAgICAgICAgICAgdTIuc2d2YWwgPSB1MS5ndmFsOwoKICAgICAgICAgICAgYWRkcjY0ID0g KHU2NCkoKHU2NCl1Mi5pZ2R0ZS5vZmZzMCB8IAogICAgICAgICAgICAgICAgICAgICAgICAgICAo dTY0KSgodTY0KXUyLmlnZHRlLm9mZnMxPDwxNikgfCB1cHBlcik7CiAgICAgICAgICAgIGtkYnAo IiAgICAgICAgRW50cnk6ICUwNHg6JTAxNmx4IGlzdDolMDN4XG4iLCB1Mi5pZ2R0ZS5zZWwsIGFk ZHI2NCwKICAgICAgICAgICAgICAgICB1Mi5pZ2R0ZS5pc3QpOwogICAgICAgIH0gZWxzZSAKICAg ICAgICAgICAga2RicCgiIEVycm9yOiBVbnJlY29uZ2l6ZWQgdHlwZTolbHhcbiIsIGFjY3R5cGUp OwogICAgfQogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIERpc3BsYXkgc2NoZWR1 bGVyIGJhc2ljIGFuZCBleHRlbmRlZCBpbmZvICovCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91 c2dmX3NjaGVkKHZvaWQpCnsKICAgIGtkYnAoInNjaGVkOiBzaG93IHNjaGVkdWxhciBpbmZvIGFu ZCBydW4gcXVldWVzXG4iKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBr ZGJfY3B1X2NtZF90CmtkYl9jbWRmX3NjaGVkKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwg c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIGlmIChhcmdjID4gMSAmJiAqYXJndlsx XSA9PSAnPycpCiAgICAgICAgcmV0dXJuIGtkYl91c2dmX3NjaGVkKCk7CgogICAga2RiX3ByaW50 X3NjaGVkX2luZm8oKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CgovKiBEaXNwbGF5 IE1NVSBiYXNpYyBhbmQgZXh0ZW5kZWQgaW5mbyAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJf dXNnZl9tbXUodm9pZCkKewogICAga2RicCgibW11OiBwcmludCBiYXNpYyBNTVUgaW5mb1xuIik7 CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJf Y21kZl9tbXUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKewogICAgaW50IGNwdTsKCiAgICBpZiAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0g Jz8nKQogICAgICAgIHJldHVybiBrZGJfdXNnZl9tbXUoKTsKCiAgICBrZGJwKCJNTVUgSW5mbzpc biIpOwogICAga2RicCgidG90YWwgIHBhZ2VzOiAlbHhcbiIsIHRvdGFsX3BhZ2VzKTsKICAgIGtk YnAoIm1heCBwYWdlL21mbjogJWx4XG4iLCBtYXhfcGFnZSk7CiAgICBrZGJwKCJmcmFtZV90YWJs ZTogICVwXG4iLCBmcmFtZV90YWJsZSk7CiAgICBrZGJwKCJESVJFQ1RNQVBfVklSVF9TVEFSVDog ICVseFxuIiwgRElSRUNUTUFQX1ZJUlRfU1RBUlQpOwogICAga2RicCgiSFlQRVJWSVNPUl9WSVJU X1NUQVJUOiAlbHhcbiIsIEhZUEVSVklTT1JfVklSVF9TVEFSVCk7CiAgICBrZGJwKCJIWVBFUlZJ U09SX1ZJUlRfRU5EOiAgICVseFxuIiwgSFlQRVJWSVNPUl9WSVJUX0VORCk7CiAgICBrZGJwKCJS T19NUFRfVklSVF9TVEFSVDogICAgICVseFxuIiwgUk9fTVBUX1ZJUlRfU1RBUlQpOwogICAga2Ri cCgiUEVSRE9NQUlOX1ZJUlRfU1RBUlQ6ICAlbHhcbiIsIFBFUkRPTUFJTl9WSVJUX1NUQVJUKTsK ICAgIGtkYnAoIkNPTkZJR19QQUdJTkdfTEVWRUxTOiVkXG4iLCBDT05GSUdfUEFHSU5HX0xFVkVM Uyk7CiAgICBrZGJwKCJfX0hZUEVSVklTT1JfQ09NUEFUX1ZJUlRfU1RBUlQ6ICVseFxuIiwgCiAg ICAgICAgICh1bG9uZylfX0hZUEVSVklTT1JfQ09NUEFUX1ZJUlRfU1RBUlQpOwogICAga2RicCgi Jk1QVFswXSA9PSAlMDE2bHhcbiIsICZtYWNoaW5lX3RvX3BoeXNfbWFwcGluZ1swXSk7CgogICAg a2RicCgiXG5GSVJTVF9SRVNFUlZFRF9HRFRfUEFHRTogJXhcbiIsIEZJUlNUX1JFU0VSVkVEX0dE VF9QQUdFKTsKICAgIGtkYnAoIkZJUlNUX1JFU0VSVkVEX0dEVF9FTlRSWTogJWx4XG4iLCAodWxv bmcpRklSU1RfUkVTRVJWRURfR0RUX0VOVFJZKTsKICAgIGtkYnAoIkxBU1RfUkVTRVJWRURfR0RU X0VOVFJZOiAlbHhcbiIsICh1bG9uZylMQVNUX1JFU0VSVkVEX0dEVF9FTlRSWSk7CiAgICBrZGJw KCIgIFBlciBjcHUgbm9uLWNvbXBhdCBnZHRfdGFibGU6XG4iKTsKICAgIGZvcl9lYWNoX29ubGlu ZV9jcHUoY3B1KSB7CiAgICAgICAga2RicCgiXHRjcHU6JWQgIGdkdF90YWJsZTolcFxuIiwgY3B1 LCBwZXJfY3B1KGdkdF90YWJsZSwgY3B1KSk7CiAgICB9CiAgICBrZGJwKCIgIFBlciBjcHUgY29t cGF0IGdkdF90YWJsZTpcbiIpOwogICAgZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKICAgICAg ICBrZGJwKCJcdGNwdTolZCAgZ2R0X3RhYmxlOiVwXG4iLCBjcHUsIHBlcl9jcHUoY29tcGF0X2dk dF90YWJsZSwgY3B1KSk7CiAgICB9CiAgICBrZGJwKCJcbiIpOwogICAga2RicCgiICBQZXIgY3B1 IHRzczpcbiIpOwogICAgZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKICAgICAgICBzdHJ1Y3Qg dHNzX3N0cnVjdCAqdHNzcCA9ICZwZXJfY3B1KGluaXRfdHNzLCBjcHUpOwogICAgICAgIGtkYnAo Ilx0Y3B1OiVkICB0c3M6JXAgKHJzcDA6JTAxNmx4KVxuIiwgY3B1LCB0c3NwLCB0c3NwLT5yc3Aw KTsKICAgIH0KI2lmZGVmIFVTRVJfTUFQUElOR1NfQVJFX0dMT0JBTAogICAga2RicCgiVVNFUl9N QVBQSU5HU19BUkVfR0xPQkFMIGlzIGRlZmluZWRcbiIpOwojZWxzZQogICAga2RicCgiVVNFUl9N QVBQSU5HU19BUkVfR0xPQkFMIGlzIE5PVCBkZWZpbmVkXG4iKTsKI2VuZGlmCiAgICBrZGJwKCJc biIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIGZvciBIVk0vSFlCIGd1ZXN0 cywgZ28gdGhydSBFUFQuIEZvciBQViBndWVzdCB3ZSBuZWVkIHRvIGdvIHRvIHRoZSBidHJlZS4g CiAqIGJ0cmVlOiBwZm5fdG9fbWZuX2ZyYW1lX2xpc3RfbGlzdCBpcyByb290IHRoYXQgcG9pbnRz IChoYXMgbWZucyBvZikgdXB0byAxNgogKiBwYWdlcyAoY2FsbCAnZW0gbDIgbm9kZXMpIHRoYXQg Y29udGFpbiBtZm5zIG9mIGd1ZXN0IHAybSB0YWJsZSBwYWdlcyAKICogTk9URTogbnVtIG9mIGVu dHJpZXMgaW4gYSBwMm0gcGFnZSBpcyBzYW1lIGFzIG51bSBvZiBlbnRyaWVzIGluIGwyIG5vZGUg Ki8Kc3RhdGljIG5vaW5saW5lIHVsb25nCmtkYl9ncGZuMm1mbihzdHJ1Y3QgZG9tYWluICpkcCwg dWxvbmcgZ3BmbiwgcDJtX3R5cGVfdCAqdHlwZXApIAp7CiAgICBpbnQgaWR4OwoKICAgIGlmICgg IXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkcCkgKSB7CiAgICAgICAgbWZuX3QgKm1mbl92YSwgbWZu ID0gYXJjaF9nZXRfcGZuX3RvX21mbl9mcmFtZV9saXN0X2xpc3QoZHApOwogICAgICAgIGludCBn X2xvbmdzeiA9IGtkYl9ndWVzdF9iaXRuZXNzKGRwLT5kb21haW5faWQpLzg7CiAgICAgICAgaW50 IGVudHJpZXNfcGVyX3BnID0gUEFHRV9TSVpFL2dfbG9uZ3N6OwogICAgICAgIGNvbnN0IGludCBz aGlmdCA9IGdldF9jb3VudF9vcmRlcihlbnRyaWVzX3Blcl9wZyk7CgoJaWYgKCAhbWZuX3ZhbGlk KG1mbikgKSB7CgkgICAga2RicCgiSW52YWxpZCBmcmFtZV9saXN0X2xpc3QgbWZuOiVseCBmb3Ig bm9uLXhsYXRlIGd1ZXN0XG4iLCBtZm4pOwoJICAgIHJldHVybiBJTlZBTElEX01GTjsKCX0KCiAg ICAgICAgbWZuX3ZhID0gbWFwX2RvbWFpbl9wYWdlKG1mbik7CiAgICAgICAgaWR4ID0gZ3BmbiA+ PiAyKnNoaWZ0OyAgICAgLyogaW5kZXggaW4gcm9vdCBwYWdlL25vZGUgKi8KICAgICAgICBpZiAo aWR4ID4gMTUpIHsKICAgICAgICAgICAga2RicCgiZ3BmbjolbHggaWR4OiV4IG5vdCBpbiBmcmFt ZSBsaXN0IGxpbWl0IG9mIHoxNlxuIiwgZ3BmbiwgaWR4KTsKICAgICAgICAgICAgdW5tYXBfZG9t YWluX3BhZ2UobWZuX3ZhKTsKICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfTUZOOwogICAgICAg IH0KICAgICAgICBtZm4gPSAoZ19sb25nc3ogPT0gNCkgPyAoKGludCAqKW1mbl92YSlbaWR4XSA6 IG1mbl92YVtpZHhdOwogICAgICAgIGlmIChtZm49PTApIHsKICAgICAgICAgICAga2RicCgiTm8g bWZuIGZvciBpZHg6JWQgZm9yIGdwZm46JWx4IGluIHJvb3QgcGdcbiIsIGlkeCwgZ3Bmbik7CiAg ICAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKG1mbl92YSk7CiAgICAgICAgICAgIHJldHVybiBJ TlZBTElEX01GTjsKICAgICAgICB9CiAgICAgICAgbWZuX3ZhID0gbWFwX2RvbWFpbl9wYWdlKG1m bik7CiAgICAgICAgS0RCR1AxKCJwMm06IGlkeDoleCBmbGw6JWx4IG1mbiBvZiAybmQgbHZsIHBh Z2U6JWx4XG4iLCBpZHgsCiAgICAgICAgICAgICAgIGFyY2hfZ2V0X3Bmbl90b19tZm5fZnJhbWVf bGlzdF9saXN0KGRwKSwgbWZuKTsKCiAgICAgICAgaWR4ID0gKGdwZm4+PnNoaWZ0KSAmICgoMTw8 c2hpZnQpLTEpOyAgICAgLyogaWR4IGluIGwyIG5vZGUgKi8KICAgICAgICBtZm4gPSAoZ19sb25n c3ogPT0gNCkgPyAoKGludCAqKW1mbl92YSlbaWR4XSA6IG1mbl92YVtpZHhdOwogICAgICAgIHVu bWFwX2RvbWFpbl9wYWdlKG1mbl92YSk7CiAgICAgICAgaWYgKG1mbiA9PSAwKSB7CiAgICAgICAg ICAgIGtkYnAoIk5vIG1mbiBlbnRyeSBhdDoleCBpbiAybmQgbHZsIHBnIGZvciBncGZuOiVseFxu IiwgaWR4LCBncGZuKTsKICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfTUZOOwogICAgICAgIH0K ICAgICAgICBLREJHUDEoInAybTogaWR4OiV4ICBtZm4gb2YgcDJtIHBhZ2U6JWx4XG4iLCBpZHgs IG1mbik7IAogICAgICAgIG1mbl92YSA9IG1hcF9kb21haW5fcGFnZShtZm4pOwogICAgICAgIGlk eCA9IGdwZm4gJiAoKDE8PHNoaWZ0KS0xKTsKICAgICAgICBtZm4gPSAoZ19sb25nc3ogPT0gNCkg PyAoKGludCAqKW1mbl92YSlbaWR4XSA6IG1mbl92YVtpZHhdOwogICAgICAgIHVubWFwX2RvbWFp bl9wYWdlKG1mbl92YSk7CgoJKnR5cGVwID0gLTE7CiAgICAgICAgcmV0dXJuIG1mbjsKICAgIH0g ZWxzZQogICAgICAgIHJldHVybiBtZm5feChnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGRwLCBncGZu LCB0eXBlcCkpOwoKICAgIHJldHVybiBJTlZBTElEX01GTjsKfQoKLyogZ2l2ZW4gYSBwZm4sIGZp bmQgaXQncyBtZm4gKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfcDJtKHZvaWQpCnsK ICAgIGtkYnAoInAybSBkb21pZCAweGdwZm4gOiBncGZuIHRvIG1mblxuIik7CiAgICByZXR1cm4g S0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfY21kZl9wMm0oaW50 IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewog ICAgc3RydWN0IGRvbWFpbiAqZHA7CiAgICB1bG9uZyBncGZuLCBtZm49MHhkZWFkYmVlZjsKICAg IHAybV90eXBlX3QgcDJtdHlwZSA9IC0xOwoKICAgIGlmIChhcmdjIDwgMyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfHwKICAgICAgICAoZHA9a2RiX3N0cmRvbWlkMnB0cihhcmd2 WzFdLCAxKSkgPT0gTlVMTCAgfHwKICAgICAgICAha2RiX3N0cjJ1bG9uZyhhcmd2WzJdLCAmZ3Bm bikpIHsKCiAgICAgICAgcmV0dXJuIGtkYl91c2dmX3AybSgpOwogICAgfQogICAgbWZuID0ga2Ri X2dwZm4ybWZuKGRwLCBncGZuLCAmcDJtdHlwZSk7CiAgICBpZiAoIHBhZ2luZ19tb2RlX3RyYW5z bGF0ZShkcCkgKQogICAgICAgIGtkYnAoInAybVslbHhdID09ICVseCB0eXBlOiVkLzB4JXhcbiIs IGdwZm4sIG1mbiwgcDJtdHlwZSwgcDJtdHlwZSk7CiAgICBlbHNlIAogICAgICAgIGtkYnAoInAy bVslbHhdID09ICVseCB0eXBlOk4vQShQVilcbiIsIGdwZm4sIG1mbik7CgogICAgcmV0dXJuIEtE Ql9DUFVfTUFJTl9LREI7Cn0KCi8qIGdpdmVuIGFuIG1mbiwgbG9va3VwIHBmbiBpbiB0aGUgTVBU ICovCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX20ycCh2b2lkKQp7CiAgICBrZGJwKCJt MnAgMHhtZm46IG1mbiB0byBwZm5cbiIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0K c3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX2NtZGZfbTJwKGludCBhcmdjLCBjb25zdCBjaGFyICoq YXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIG1mbl90IG1mbjsKICAgIGlm IChhcmdjID4gMSAmJiBrZGJfc3RyMnVsb25nKGFyZ3ZbMV0sICZtZm4pKQogICAgICAgIGlmICht Zm5fdmFsaWQobWZuKSkKICAgICAgICAgICAga2RicCgibXB0WyV4XSA9PSAlbHhcbiIsIG1mbiwg bWFjaGluZV90b19waHlzX21hcHBpbmdbbWZuXSk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBr ZGJwKCJJbnZhbGlkIG1mbjolbHhcbiIsIG1mbik7CiAgICBlbHNlCiAgICAgICAga2RiX3VzZ2Zf bTJwKCk7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKc3RhdGljIHZvaWQgCmtkYl9w cl9wZ19wZ3RfZmxkcyh1bnNpZ25lZCBsb25nIHR5cGVfaW5mbykKewogICAgc3dpdGNoICh0eXBl X2luZm8gJiBQR1RfdHlwZV9tYXNrKSB7CiAgICAgICAgY2FzZSAoUEdUX2wxX3BhZ2VfdGFibGUp OgogICAgICAgICAgICBrZGJwKCIgICAgcGFnZSBpcyBQR1RfbDFfcGFnZV90YWJsZVxuIik7CiAg ICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgUEdUX2wyX3BhZ2VfdGFibGU6CiAgICAgICAg ICAgIGtkYnAoIiAgICBwYWdlIGlzIFBHVF9sMl9wYWdlX3RhYmxlXG4iKTsKICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgY2FzZSBQR1RfbDNfcGFnZV90YWJsZToKICAgICAgICAgICAga2RicCgi ICAgIHBhZ2UgaXMgUEdUX2wzX3BhZ2VfdGFibGVcbiIpOwogICAgICAgICAgICBicmVhazsKICAg ICAgICBjYXNlIFBHVF9sNF9wYWdlX3RhYmxlOgogICAgICAgICAgICBrZGJwKCIgICAgcGFnZSBp cyBQR1RfbDRfcGFnZV90YWJsZVxuIik7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2Ug UEdUX3NlZ19kZXNjX3BhZ2U6CiAgICAgICAgICAgIGtkYnAoIiAgICBwYWdlIGlzIHNlZyBkZXNj IHBhZ2VcbiIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIFBHVF93cml0YWJsZV9w YWdlOgogICAgICAgICAgICBrZGJwKCIgICAgcGFnZSBpcyB3cml0YWJsZSBwYWdlXG4iKTsKICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBQR1Rfc2hhcmVkX3BhZ2U6CiAgICAgICAgICAg IGtkYnAoIiAgICBwYWdlIGlzIHNoYXJlZCBwYWdlXG4iKTsKICAgICAgICAgICAgYnJlYWs7CiAg ICB9CiAgICBpZiAodHlwZV9pbmZvICYgUEdUX3Bpbm5lZCkKICAgICAgICBrZGJwKCIgICAgcGFn ZSBpcyBwaW5uZWRcbiIpOwogICAgaWYgKHR5cGVfaW5mbyAmIFBHVF92YWxpZGF0ZWQpCiAgICAg ICAga2RicCgiICAgIHBhZ2UgaXMgdmFsaWRhdGVkXG4iKTsKICAgIGlmICh0eXBlX2luZm8gJiBQ R1RfcGFlX3hlbl9sMikKICAgICAgICBrZGJwKCIgICAgcGFnZSBpcyBQR1RfcGFlX3hlbl9sMlxu Iik7CiAgICBpZiAodHlwZV9pbmZvICYgUEdUX3BhcnRpYWwpCiAgICAgICAga2RicCgiICAgIHBh Z2UgaXMgUEdUX3BhcnRpYWxcbiIpOwogICAgaWYgKHR5cGVfaW5mbyAmIFBHVF9sb2NrZWQpCiAg ICAgICAga2RicCgiICAgIHBhZ2UgaXMgUEdUX2xvY2tlZFxuIik7Cn0KCnN0YXRpYyB2b2lkCmtk Yl9wcl9wZ19wZ2NfZmxkcyh1bnNpZ25lZCBsb25nIGNvdW50X2luZm8pCnsKICAgIGlmIChjb3Vu dF9pbmZvICYgUEdDX2FsbG9jYXRlZCkKICAgICAgICBrZGJwKCIgIFBHQ19hbGxvY2F0ZWQiKTsK ICAgIGlmIChjb3VudF9pbmZvICYgUEdDX3hlbl9oZWFwKQogICAgICAgIGtkYnAoIiAgUEdDX3hl bl9oZWFwIik7CiAgICBpZiAoY291bnRfaW5mbyAmIFBHQ19wYWdlX3RhYmxlKQogICAgICAgIGtk YnAoIiAgUEdDX3BhZ2VfdGFibGUiKTsKICAgIGlmIChjb3VudF9pbmZvICYgUEdDX2Jyb2tlbikK ICAgICAgICBrZGJwKCIgIFBHQ19icm9rZW4iKTsKI2lmIFhFTl9WRVJTSU9OIDwgNCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHhlbiAzLngueCAqLwogICAgaWYgKGNvdW50X2lu Zm8gJiBQR0Nfb2ZmbGluaW5nKQogICAgICAgIGtkYnAoIiAgUEdDX29mZmxpbmluZyIpOwogICAg aWYgKGNvdW50X2luZm8gJiBQR0Nfb2ZmbGluZWQpCiAgICAgICAga2RicCgiICBQR0Nfb2ZmbGlu ZWQiKTsKI2Vsc2UKICAgIGlmIChjb3VudF9pbmZvICYgUEdDX3N0YXRlX2ludXNlKQogICAgICAg IGtkYnAoIiAgUEdDX2ludXNlIik7CiAgICBpZiAoY291bnRfaW5mbyAmIFBHQ19zdGF0ZV9vZmZs aW5pbmcpCiAgICAgICAga2RicCgiICBQR0Nfc3RhdGVfb2ZmbGluaW5nIik7CiAgICBpZiAoY291 bnRfaW5mbyAmIFBHQ19zdGF0ZV9vZmZsaW5lZCkKICAgICAgICBrZGJwKCIgIFBHQ19zdGF0ZV9v ZmZsaW5lZCIpOwogICAgaWYgKGNvdW50X2luZm8gJiBQR0Nfc3RhdGVfZnJlZSkKICAgICAgICBr ZGJwKCIgIFBHQ19zdGF0ZV9mcmVlIik7CiNlbmRpZgogICAga2RicCgiXG4iKTsKfQoKLyogcHJp bnQgc3RydWN0IHBhZ2VfaW5mb3t9IGdpdmVuIHB0ciB0byBpdCBvciBhbiBtZm4KICogTk9URTog dGhhdCBnaXZlbiBhbiBtZm4gdGhlcmUgc2VlbXMgbm8gd2F5IG9mIGtub3dpbmcgaG93IGl0J3Mg dXNlZCwgc28KICogICAgICAgaGVyZSB3ZSBqdXN0IHByaW50IGFsbCBpbmZvIGFuZCBsZXQgdXNl ciBkZWNpZGUgd2hhdCdzIGFwcGxpY2FibGUgKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3Vz Z2ZfZHBhZ2Uodm9pZCkKewogICAga2RicCgiZHBhZ2UgbWZufHBhZ2UtcHRyIDogRGlzcGxheSBz dHJ1Y3QgcGFnZVxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2Ri X2NwdV9jbWRfdAprZGJfY21kZl9kcGFnZShpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICB1bnNpZ25lZCBsb25nIHZhbDsKICAgIHN0 cnVjdCBwYWdlX2luZm8gKnBncDsKICAgIHN0cnVjdCBkb21haW4gKmRwOwoKICAgIGlmIChhcmdj IDw9IDEgfHwgKmFyZ3ZbMV0gPT0gJz8nKSAKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfZHBhZ2Uo KTsKCiAgICBpZiAoKGtkYl9zdHIydWxvbmcoYXJndlsxXSwgJnZhbCkgPT0gMCkgICAgICB8fAog ICAgICAgICh2YWwgPCAgKHVsb25nKWZyYW1lX3RhYmxlICYmICFtZm5fdmFsaWQodmFsKSkpIHsK CiAgICAgICAga2RicCgiSW52YWxpZCBhcmc6JXNcbiIsIGFyZ3ZbMV0pOwogICAgICAgIHJldHVy biBLREJfQ1BVX01BSU5fS0RCOwogICAgfQogICAga2RicCgiUGFnZSBJbmZvOlxuIik7CiAgICBp ZiAodmFsIDw9ICh1bG9uZylmcmFtZV90YWJsZSkgeyAgICAgICAvKiBhcmcgaXMgbWZuICovCiAg ICAgICAgcGdwID0gbWZuX3RvX3BhZ2UodmFsKTsKICAgICAgICBrZGJwKCIgIG1mbjogJWx4IHBh Z2VfaW5mbzolcFxuIiwgdmFsLCBwZ3ApOwogICAgfSBlbHNlIHsKICAgICAgICBwZ3AgPSAoc3Ry dWN0IHBhZ2VfaW5mbyAqKXZhbDsgLyogYXJnIGlzIHN0cnVjdCBwYWdle30gKi8KICAgICAgICBp ZiAocGdwIDwgZnJhbWVfdGFibGUgfHwgcGdwID49IGZyYW1lX3RhYmxlK21heF9wYWdlKSB7CiAg ICAgICAgICAgIGtkYnAoIkludmFsaWQgcGFnZSBwdHIuIGJlbG93L2JleW9uZCBtYXhfcGFnZVxu Iik7CiAgICAgICAgICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwogICAgICAgIH0KICAgICAg ICBrZGJwKCIgIG1mbjogJWx4IHBhZ2VfaW5mbzolcFxuIiwgcGFnZV90b19tZm4ocGdwKSwgcGdw KTsKICAgIH0gCiAgICBrZGJwKCIgIGNvdW50X2luZm86ICUwMTZseCAgKHJlZmNudDogJXgpXG4i LCBwZ3AtPmNvdW50X2luZm8sCiAgICAgICAgIHBncC0+Y291bnRfaW5mbyAmIFBHQ19jb3VudF9t YXNrKTsKI2lmIFhFTl9WRVJTSU9OID4gMyB8fCBYRU5fU1VCVkVSU0lPTiA+IDMgICAgICAgICAg ICAgLyogeGVuIDMuNC54IG9yIGxhdGVyICovCiAgICBrZGJfcHJfcGdfcGdjX2ZsZHMocGdwLT5j b3VudF9pbmZvKTsKCiAgICBrZGJwKCJJbiB1c2UgaW5mbzpcbiIpOwogICAga2RicCgiICB0eXBl X2luZm86JTAxNmx4XG4iLCBwZ3AtPnUuaW51c2UudHlwZV9pbmZvKTsKICAgIGtkYl9wcl9wZ19w Z3RfZmxkcyhwZ3AtPnUuaW51c2UudHlwZV9pbmZvKTsKICAgIGRwID0gcGFnZV9nZXRfb3duZXIo cGdwKTsKICAgIGtkYnAoIiAgZG9taWQ6JWQgKHBpY2tsZWQ6JWx4KVxuIiwgZHAgPyBkcC0+ZG9t YWluX2lkIDogLTEsIAogICAgICAgICBwZ3AtPnYuaW51c2UuX2RvbWFpbik7CgogICAga2RicCgi U2hhZG93IEluZm86XG4iKTsKICAgIGtkYnAoIiAgdHlwZToleCBwaW5uZWQ6JXggY291bnQ6JXhc biIsIHBncC0+dS5zaC50eXBlLCBwZ3AtPnUuc2gucGlubmVkLAogICAgICAgICBwZ3AtPnUuc2gu Y291bnQpOwogICAga2RicCgiICBiYWNrOiVseCAgc2hhZG93X2ZsYWdzOiV4ICBuZXh0X3NoYWRv dzolbHhcbiIsIHBncC0+di5zaC5iYWNrLAogICAgICAgICBwZ3AtPnNoYWRvd19mbGFncywgcGdw LT5uZXh0X3NoYWRvdyk7CgogICAga2RicCgiRnJlZSBJbmZvXG4iKTsKICAgIGtkYnAoIiAgbmVl ZF90bGJmbHVzaDolZCBvcmRlcjolZCB0bGJmbHVzaF90aW1lc3RhbXA6JXhcbiIsCiAgICAgICAg IHBncC0+dS5mcmVlLm5lZWRfdGxiZmx1c2gsIHBncC0+di5mcmVlLm9yZGVyLCAKICAgICAgICAg cGdwLT50bGJmbHVzaF90aW1lc3RhbXApOwojZWxzZQogICAgaWYgKHBncC0+Y291bnRfaW5mbyAm IFBHQ19hbGxvY2F0ZWQpICAgICAgICAgICAgLyogcGFnZSBhbGxvY2F0ZWQgKi8KICAgICAgICBr ZGJwKCIgIFBHQ19hbGxvY2F0ZWQiKTsKICAgIGlmIChwZ3AtPmNvdW50X2luZm8gJiBQR0NfcGFn ZV90YWJsZSkgICAgICAgICAgIC8qIHBhZ2UgdGFibGUgcGFnZSAqLwogICAgICAgIGtkYnAoIiAg UEdDX3BhZ2VfdGFibGUiKTsKICAgIGtkYnAoIlxuIik7CiAgICBrZGJwKCIgIHBhZ2UgaXMgJXMg eGVuIGhlYXAgcGFnZVxuIiwgaXNfeGVuX2hlYXBfcGFnZShwZ3ApID8gImEiOiJOT1QiKTsKICAg IGtkYnAoIiAgY2FjaGVhdHRyOiV4XG4iLCAocGdwLT5jb3VudF9pbmZvPj5QR0NfY2FjaGVhdHRy X2Jhc2UpICYgNyk7CiAgICBpZiAocGdwLT5jb3VudF9pbmZvICYgUEdDX2NvdW50X21hc2spIHsg ICAgICAgICAvKiBwYWdlIGluIHVzZSAqLwogICAgICAgIGRwID0gcGdwLT51LmludXNlLl9kb21h aW47ICAgICAgICAgLyogcGlja2xlZCBkb21haW4gKi8KICAgICAgICBrZGJwKCIgIHBhZ2UgaXMg aW4gdXNlXG4iKTsKICAgICAgICBrZGJwKCIgICAgZG9taWQ6ICVkICAocGlja2xlZCBkb206JXgp XG4iLCAKICAgICAgICAgICAgIGRwID8gKHVucGlja2xlX2RvbXB0cihkcCkpLT5kb21haW5faWQg OiAtMSwgZHApOwogICAgICAgIGtkYnAoIiAgICB0eXBlX2luZm86ICVseFxuIiwgcGdwLT51Lmlu dXNlLnR5cGVfaW5mbyk7CiAgICAgICAga2RiX3BydF9wZ190eXBlKHBncC0+dS5pbnVzZS50eXBl X2luZm8pOwogICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIHBhZ2UgaXMgZnJlZSAqLwogICAgICAgIGtkYnAoIiAgcGFnZSBpcyBmcmVlXG4iKTsK ICAgICAgICBrZGJwKCIgICAgb3JkZXI6ICV4XG4iLCBwZ3AtPnUuZnJlZS5vcmRlcik7CiAgICAg ICAga2RicCgiICAgIGNwdW1hc2s6ICVseFxuIiwgcGdwLT51LmZyZWUuY3B1bWFzay5iaXRzKTsK ICAgIH0KICAgIGtkYnAoIiAgdGxiZmx1c2gvc2hhZG93X2ZsYWdzOiAlbHhcbiIsIHBncC0+c2hh ZG93X2ZsYWdzKTsKI2VuZGlmCiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKLyogZGlz cGxheSBhc2tlZCBtc3IgdmFsdWUgKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfZG1z cih2b2lkKQp7CiAgICBrZGJwKCJkbXNyIGFkZHJlc3MgOiBEaXNwbGF5IG1zciB2YWx1ZVxuIik7 CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJf Y21kZl9kbXNyKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3Jl Z3MgKnJlZ3MpCnsKICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdmFsOwoKICAgIGlmIChhcmdjIDw9 IDEgfHwgKmFyZ3ZbMV0gPT0gJz8nKSAKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfZG1zcigpOwoK ICAgIGlmICgoa2RiX3N0cjJ1bG9uZyhhcmd2WzFdLCAmYWRkcikgPT0gMCkpIHsKICAgICAgICBr ZGJwKCJJbnZhbGlkIGFyZzolc1xuIiwgYXJndlsxXSk7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVf TUFJTl9LREI7CiAgICB9CiAgICByZG1zcmwoYWRkciwgdmFsKTsKICAgIGtkYnAoIm1zcjogJWx4 ICB2YWw6JWx4XG4iLCBhZGRyLCB2YWwpOwoKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9 CgovKiBleGVjdXRlIGNwdWlkIGZvciBnaXZlbiB2YWx1ZSAqLwpzdGF0aWMga2RiX2NwdV9jbWRf dAprZGJfdXNnZl9jcHVpZCh2b2lkKQp7CiAgICBrZGJwKCJjcHVpZCBlYXggOiBEaXNwbGF5IGNw dWlkIHZhbHVlIHJldHVybmVkIGluIHJheFxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tE QjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfY21kZl9jcHVpZChpbnQgYXJnYywgY29uc3Qg Y2hhciAqKmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICB1bnNpZ25lZCBs b25nIHJheD0wLCByYng9MCwgcmN4PTAsIHJkeD0wOwoKICAgIGlmIChhcmdjIDw9IDEgfHwgKmFy Z3ZbMV0gPT0gJz8nKSAKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfY3B1aWQoKTsKCiAgICBpZiAo KGtkYl9zdHIydWxvbmcoYXJndlsxXSwgJnJheCkgPT0gMCkpIHsKICAgICAgICBrZGJwKCJJbnZh bGlkIGFyZzolc1xuIiwgYXJndlsxXSk7CiAgICAgICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7 CiAgICB9CiNpZiAwCiAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCiAgICAgICAgICAgIC8qICJw dXNobCAlJXJheCAgXG4iICovCgogICAgICAgICAgICAibW92bCAlMCwgJSVyYXggIFxuIgogICAg ICAgICAgICAiY3B1aWQgICAgICAgICAgIFxuIiAKICAgICAgICAgICAgOiAiPSZhIiAocmF4KSwg Ij1iIiAocmJ4KSwgIj1jIiAocmN4KSwgIj1kIiAocmR4KQogICAgICAgICAgICA6ICIwIiAocmF4 KQogICAgICAgICAgICA6ICJyYXgiLCAicmJ4IiwgInJjeCIsICJyZHgiLCAibWVtb3J5Iik7CiNl bmRpZgogICAgY3B1aWQocmF4LCAmcmF4LCAmcmJ4LCAmcmN4LCAmcmR4KTsKICAgIGtkYnAoInJh eDogJTAxNmx4ICByYng6JTAxNmx4IHJjeDolMDE2bHggcmR4OiUwMTZseFxuIiwgcmF4LCByYngs CiAgICAgICAgIHJjeCwgcmR4KTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CgovKiBl eGVjdXRlIGNwdWlkIGZvciBnaXZlbiB2YWx1ZSAqLwpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJf dXNnZl93ZXB0KHZvaWQpCnsKICAgIGtkYnAoIndlcHQgZG9taWQgZ2ZuOiB3YWxrIGVwdCB0YWJs ZSBmb3IgZ2l2ZW4gZG9taWQgYW5kIGdmblxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tE QjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfY21kZl93ZXB0KGludCBhcmdjLCBjb25zdCBj aGFyICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIHN0cnVjdCBkb21h aW4gKmRwOwogICAgdWxvbmcgZ2ZuOwoKICAgIGlmICgoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0g Jz8nKSB8fCBhcmdjICE9IDMpCiAgICAgICAgcmV0dXJuIGtkYl91c2dmX3dlcHQoKTsKICAgIGlm ICgoZHA9a2RiX3N0cmRvbWlkMnB0cihhcmd2WzFdLCAxKSkgJiYga2RiX3N0cjJ1bG9uZyhhcmd2 WzJdLCAmZ2ZuKSkKICAgICAgICBlcHRfd2Fsa190YWJsZShkcCwgZ2ZuKTsKICAgIGVsc2UKICAg ICAgICBrZGJfdXNnZl93ZXB0KCk7CgogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8q CiAqIFNhdmUgc3ltYm9scyBpbmZvIGZvciBhIGd1ZXN0LCBkb20wIG9yIG90aGVyLi4uCiAqLwpz dGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl9zeW0odm9pZCkKewogICBrZGJwKCJzeW0gZG9t aWQgJmthbGxzeW1zX25hbWVzICZrYWxsc3ltc19hZGRyZXNzZXMgJmthbGxzeW1zX251bV9zeW1z XG4iKTsKICAga2RicCgiXHQgWyZrYWxsc3ltc190b2tlbl90YWJsZV0gWyZrYWxsc3ltc190b2tl bl9pbmRleF1cbiIpOwogICBrZGJwKCJcdHRva2VuIF90YWJsZSBhbmQgX2luZGV4IE1VU1QgYmUg c3BlY2lmaWVkIGZvciBlbDVcbiIpOwogICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0 aWMga2RiX2NwdV9jbWRfdAprZGJfY21kZl9zeW0oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2 LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgdWxvbmcgbmFtZXNwLCBhZGRyYXAs IG51bXAsIHRva3RibHAsIHRva2lkeHA7CiAgICBkb21pZF90IGRvbWlkOwoKICAgIGlmIChhcmdj IDwgNSkgewogICAgICAgIHJldHVybiBrZGJfdXNnZl9zeW0oKTsKICAgIH0KICAgIHRva3RibHAg PSB0b2tpZHhwID0gMDsgICAgIC8qIG9wdGlvbmFsIHBhcmFtZXRlcnMgKi8KICAgIGlmIChrZGJf c3RyMmRvbWlkKGFyZ3ZbMV0sICZkb21pZCwgMSkgJiYKICAgICAgICBrZGJfc3RyMnVsb25nKGFy Z3ZbMl0sICZuYW1lc3ApICAgJiYKICAgICAgICBrZGJfc3RyMnVsb25nKGFyZ3ZbM10sICZhZGRy YXApICAgJiYKICAgICAgICBrZGJfc3RyMnVsb25nKGFyZ3ZbNF0sICZudW1wKSAgICAgJiYgCiAg ICAgICAgKGFyZ2M9PTUgfHwgKGFyZ2M9PTcgJiYga2RiX3N0cjJ1bG9uZyhhcmd2WzVdLCAmdG9r dGJscCkgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZGJfc3RyMnVsb25nKGFy Z3ZbNl0sICZ0b2tpZHhwKSkpKSB7CgogICAgICAgIGtkYl9zYXZfZG9tX3N5bWluZm8oZG9taWQs IG5hbWVzcCwgYWRkcmFwLG51bXAsdG9rdGJscCx0b2tpZHhwKTsKICAgIH0gZWxzZQogICAgICAg IGtkYl91c2dmX3N5bSgpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCgovKiBtb2Rz IGlzIHRoZSBkdW1iIGFzcyAmbW9kdWxlcy4gbW9kdWxlcyBpcyBzdHJ1Y3Qge254dCwgcHJldn0s IGFuZCBub3QgcHRyICovCnN0YXRpYyB2b2lkCmtkYl9kdW1wX2xpbnV4X21vZHVsZXMoZG9taWRf dCBkb21pZCwgdWxvbmcgbW9kcywgdWludCBueHRvZmZzLCB1aW50IG5tb2ZmcywgCiAgICAgICAg ICAgICAgICAgICAgICAgdWludCBjb3Jlb2ZmcykKewogICAgY29uc3QgaW50IGJ1ZnN6ID0gNTY7 CiAgICBjaGFyIGJ1ZltidWZzel07CiAgICB1aW50NjRfdCBhZGRyLCBhZGRydmFsLCAqbnh0cHRy LCAqbW9kcHRyOwogICAgdWludCBpLCBudW0gPSA4OwoKICAgIGlmIChrZGJfZ3Vlc3RfYml0bmVz cyhkb21pZCkgPT0gMzIpCiAgICAgICAgbnVtID0gNDsKCiAgICAvKiBmaXJzdCByZWFkIG1vZHVs ZXN7fS5uZXh0IHB0ciAqLwogICAgaWYgKGtkYl9yZWFkX21lbShtb2RzLCAoa2RiYnl0X3QgKikm bnh0cHRyLCBudW0sIGRvbWlkKSAhPSBudW0pIHsKICAgICAgICBrZGJwKCJFUlJPUjogQ291bGQg bm90IHJlYWQgbmV4dCBhdCBtb2Q6JXBcbiIsICh2b2lkICopbW9kcyk7CiAgICAgICAgcmV0dXJu OwogICAgfQoKICAgIEtEQkdQKCJtb2RzOiVwIG54dHB0cjolcCBubW9mZnM6JXggY29yZW9mZnM6 JXhcbiIsICh2b2lkICopbW9kcywgbnh0cHRyLAogICAgICAgICAgbm1vZmZzLCBjb3Jlb2Zmcyk7 CgogICAgd2hpbGUgKCh1aW50NjRfdClueHRwdHIgIT0gbW9kcykgewoKICAgICAgICBtb2RwdHIg PSAodWludDY0X3QgKikgKCh1bG9uZylueHRwdHIgLSBueHRvZmZzKTsKCiAgICAgICAgYWRkciA9 ICh1bG9uZyltb2RwdHIgKyBjb3Jlb2ZmczsKICAgICAgICBpZiAoa2RiX3JlYWRfbWVtKGFkZHIs IChrZGJieXRfdCAqKSZhZGRydmFsLCBudW0sIGRvbWlkKSAhPSBudW0pIHsKICAgICAgICAgICAg a2RicCgiRVJST1I6IENvdWxkIG5vdCByZWFkIG1vZCBhZGRyIGF0IDolcFxuIiwgKHZvaWQgKilh ZGRyKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgS0RCR1AoIm1vZHB0 cjolcCBhZGRyOiVwXG4iLCBtb2RwdHIsICh2b2lkICopYWRkcik7CiAgICAgICAgYWRkciA9ICh1 bG9uZyltb2RwdHIgKyBubW9mZnM7CiAgICAgICAgaT0wOwogICAgICAgIGRvIHsKICAgICAgICAg ICAgaWYgKGtkYl9yZWFkX21lbShhZGRyLCAoa2RiYnl0X3QgKikmYnVmW2ldLCAxLCBkb21pZCkg IT0gMSkgewogICAgICAgICAgICAgICAga2RicCgiRVJST1I6Q291bGQgbm90IHJlYWQgbmFtZSBj aCBhdCBhZGRyOiVwXG4iLCAodm9pZCAqKWFkZHIpOwogICAgICAgICAgICAgICAgcmV0dXJuOwog ICAgICAgICAgICB9CiAgICAgICAgICAgIGFkZHIrKzsKICAgICAgICB9IHdoaWxlIChidWZbaV0g JiYgaSsrIDwgYnVmc3opOwogICAgICAgIGJ1ZltidWZzei0xXSA9ICdcMCc7CgogICAgICAgIGtk YnAoIiUwMTZseCAlMDE2bHggJXNcbiIsIG1vZHB0ciwgYWRkcnZhbCwgYnVmKTsKCiAgICAgICAg aWYgKGtkYl9yZWFkX21lbSgodWxvbmcpbnh0cHRyLCAoa2RiYnl0X3QgKikmbnh0cHRyLCBudW0s IGRvbWlkKSE9bnVtKSB7CiAgICAgICAgICAgIGtkYnAoIkVSUk9SOiBDb3VsZCBub3QgcmVhZCBu ZXh0IGF0IG1vZDolcFxuIiwgKHZvaWQgKiltb2RzKTsKICAgICAgICAgICAgcmV0dXJuOwogICAg ICAgIH0KICAgICAgICBLREJHUCgibnh0cHRyOiVwIGFkZHI6JXBcbiIsIG54dHB0ciwgKHZvaWQg KilhZGRyKTsKICAgIH0gCn0KCi8qIERpc3BsYXkgbW9kdWxlcyBsb2FkZWQgaW4gbGludXggZ3Vl c3QgKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3VzZ2ZfbW9kKHZvaWQpCnsKICAga2RicCgi bW9kIGRvbWlkICZtb2R1bGVzIG5leHQtb2ZmcyBuYW1lLW9mZnMgbW9kdWxlX2NvcmUtb2Zmc1xu Iik7CiAgIGtkYnAoIlx0d2hlcmUgbmV4dC1vZmZzOiAmKChzdHJ1Y3QgbW9kdWxlICopMCktPmxp c3QubmV4dFxuIik7CiAgIGtkYnAoIlx0bmFtZS1vZmZzOiAmKChzdHJ1Y3QgbW9kdWxlICopMCkt Pm5hbWUgZXRjLi5cbiIpOwogICBrZGJwKCJcdERpc3BsYXlzIGFsbCBsb2FkZWQgbW9kdWxlcyBp biB0aGUgbGludXggZ3Vlc3RcbiIpOwogICBrZGJwKCJcdEVnOiBtb2QgMCBmZmZmZmZmZjgwMzAy NzgwIDggMHgxOCAweDE3OFxuIik7CgogICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKc3Rh dGljIGtkYl9jcHVfY21kX3QKa2RiX2NtZGZfbW9kKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJn diwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIHVsb25nIG1vZHMsIG54dG9mZnMs IG5tb2ZmcywgY29yZW9mZnM7CiAgICBkb21pZF90IGRvbWlkOwoKICAgIGlmIChhcmdjIDwgNikg ewogICAgICAgIHJldHVybiBrZGJfdXNnZl9tb2QoKTsKICAgIH0KICAgIGlmIChrZGJfc3RyMmRv bWlkKGFyZ3ZbMV0sICZkb21pZCwgMSkgJiYKICAgICAgICBrZGJfc3RyMnVsb25nKGFyZ3ZbMl0s ICZtb2RzKSAgICAgJiYKICAgICAgICBrZGJfc3RyMnVsb25nKGFyZ3ZbM10sICZueHRvZmZzKSAg JiYKICAgICAgICBrZGJfc3RyMnVsb25nKGFyZ3ZbNF0sICZubW9mZnMpICAgJiYKICAgICAgICBr ZGJfc3RyMnVsb25nKGFyZ3ZbNV0sICZjb3Jlb2ZmcykpIHsKCiAgICAgICAga2RicCgibW9kcHRy IGFkZHJlc3MgbmFtZVxuIik7CiAgICAgICAga2RiX2R1bXBfbGludXhfbW9kdWxlcyhkb21pZCwg bW9kcywgbnh0b2Zmcywgbm1vZmZzLCBjb3Jlb2Zmcyk7CiAgICB9IGVsc2UKICAgICAgICBrZGJf dXNnZl9tb2QoKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CgovKiB0b2dnbGUga2Ri IGRlYnVnIHRyYWNlIGxldmVsICovCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX2tkYmRi Zyh2b2lkKQp7CiAgICBrZGJwKCJrZGJkYmcgOiB0cmFjZSBpbmZvIHRvIGRlYnVnIGtkYlxuIik7 CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJf Y21kZl9rZGJkYmcoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncykKewogICAgaWYgKGFyZ2MgPiAxICYmICphcmd2WzFdID09ICc/JykKICAgICAg ICByZXR1cm4ga2RiX3VzZ2Zfa2RiZGJnKCk7CgogICAga2RiZGJnID0gKGtkYmRiZz09MykgPyAw IDogKGtkYmRiZysxKTsKICAgIGtkYnAoImtkYmRiZyBzZXQgdG86JWRcbiIsIGtkYmRiZyk7CiAg ICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3Vz Z2ZfcmVib290KHZvaWQpCnsKICAgIGtkYnAoInJlYm9vdDogcmVib290IHN5c3RlbVxuIik7CiAg ICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfY21k Zl9yZWJvb3QoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKewogICAgaWYgKGFyZ2MgPiAxICYmICphcmd2WzFdID09ICc/JykKICAgICAgICBy ZXR1cm4ga2RiX3VzZ2ZfcmVib290KCk7CgogICAgbWFjaGluZV9yZXN0YXJ0KDUwMCk7CiAgICBy ZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsgICAgICAgICAgICAgIC8qIG5vdCByZWFjaGVkICovCn0K CgpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl90cmNvbih2b2lkKQp7CiAgICBrZGJwKCJ0 cmNvbjogdHVybiB1c2VyIGFkZGVkIGtkYiB0cmFjaW5nIG9uXG4iKTsKICAgIHJldHVybiBLREJf Q1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl9jbWRmX3RyY29uKGludCBh cmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAg IGlmIChhcmdjID4gMSAmJiAqYXJndlsxXSA9PSAnPycpCiAgICAgICAgcmV0dXJuIGtkYl91c2dm X3RyY29uKCk7CgogICAga2RiX3RyY29uID0gMTsKICAgIGtkYnAoImtkYiB0cmFjaW5nIGlzIG5v dyBvblxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKc3RhdGljIGtkYl9jcHVf Y21kX3QKa2RiX3VzZ2ZfdHJjb2ZmKHZvaWQpCnsKICAgIGtkYnAoInRyY29mZjogdHVybiB1c2Vy IGFkZGVkIGtkYiB0cmFjaW5nIG9mZlxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsK fQpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfY21kZl90cmNvZmYoaW50IGFyZ2MsIGNvbnN0IGNo YXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgaWYgKGFyZ2MgPiAx ICYmICphcmd2WzFdID09ICc/JykKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfdHJjb2ZmKCk7Cgog ICAga2RiX3RyY29uID0gMDsKICAgIGtkYnAoImtkYiB0cmFjaW5nIGlzIG5vdyBvZmZcbiIpOwog ICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91 c2dmX3RyY3oodm9pZCkKewogICAga2RicCgidHJjeiA6IHplcm8gZW50aXJlIHRyYWNlIGJ1ZmZl clxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpzdGF0aWMga2RiX2NwdV9jbWRf dAprZGJfY21kZl90cmN6KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IGNwdV91 c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIGlmIChhcmdjID4gMSAmJiAqYXJndlsxXSA9PSAnPycpCiAg ICAgICAgcmV0dXJuIGtkYl91c2dmX3RyY3ooKTsKCiAgICBrZGJfdHJjemVybygpOwogICAgcmV0 dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dmX3Ry Y3Aodm9pZCkKewogICAga2RicCgidHJjcCA6IGdpdmUgaGludHMgdG8gZHVtcCB0cmFjZSBidWZm ZXIgdmlhIGR3L2RkIGNvbW1hbmRcbiIpOwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0K c3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX2NtZGZfdHJjcChpbnQgYXJnYywgY29uc3QgY2hhciAq KmFyZ3YsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQp7CiAgICBpZiAoYXJnYyA+IDEgJiYg KmFyZ3ZbMV0gPT0gJz8nKQogICAgICAgIHJldHVybiBrZGJfdXNnZl90cmNwKCk7CgogICAga2Ri X3RyY3AoKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CgovKiBwcmludCBzb21lIGJh c2ljIGluZm8sIGNvbnN0YW50cywgZXRjLi4gKi8Kc3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX3Vz Z2ZfaW5mbyh2b2lkKQp7CiAgICBrZGJwKCJpbmZvIDogZGlzcGxheSBiYXNpYyBpbmZvLCBjb25z dGFudHMsIGV0Yy4uXG4iKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBr ZGJfY3B1X2NtZF90CmtkYl9jbWRmX2luZm8oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKewogICAgc3RydWN0IGRvbWFpbiAqZHA7CiAgICBz dHJ1Y3QgY3B1aW5mb194ODYgKmJjZHA7CgogICAgaWYgKGFyZ2MgPiAxICYmICphcmd2WzFdID09 ICc/JykKICAgICAgICByZXR1cm4ga2RiX3VzZ2ZfaW5mbygpOwoKICAgIGtkYnAoIlZlcnNpb246 ICVkLiVkLiVzICglc0AlcykgJXNcbiIsIHhlbl9tYWpvcl92ZXJzaW9uKCksIAogICAgICAgICB4 ZW5fbWlub3JfdmVyc2lvbigpLCB4ZW5fZXh0cmFfdmVyc2lvbigpLCB4ZW5fY29tcGlsZV9ieSgp LCAKICAgICAgICAgeGVuX2NvbXBpbGVfZG9tYWluKCksIHhlbl9jb21waWxlX2RhdGUoKSk7CiAg ICBrZGJwKCJfX1hFTl9MQVRFU1RfSU5URVJGQUNFX1ZFUlNJT05fXyA6IDB4JXhcbiIsIAogICAg ICAgICBfX1hFTl9MQVRFU1RfSU5URVJGQUNFX1ZFUlNJT05fXyk7CiAgICBrZGJwKCJfX1hFTl9J TlRFUkZBQ0VfVkVSU0lPTl9fOiAweCV4XG4iLCBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fKTsK CiAgICBiY2RwID0gJmJvb3RfY3B1X2RhdGE7CiAgICBrZGJwKCJDUFU6IChhbGwgZGVjaW1hbCki KTsKICAgICAgICBpZiAoYmNkcC0+eDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCkKICAgICAg ICAgICAga2RicCgiIEFNRCIpOwogICAgICAgIGVsc2UKICAgICAgICAgICAga2RicCgiIElOVEVM Iik7CiAgICAgICAga2RicCgiIGZhbWlseTolZCBtb2RlbDolZFxuIiwgYmNkcC0+eDg2LCBiY2Rw LT54ODZfbW9kZWwpOwogICAgICAgIGtkYnAoIiAgICAgdmVuZG9yX2lkOiUxNnMgbW9kZWxfaWQ6 JTY0c1xuIiwgYmNkcC0+eDg2X3ZlbmRvcl9pZCwKICAgICAgICAgICAgIGJjZHAtPng4Nl9tb2Rl bF9pZCk7CiAgICAgICAga2RicCgiICAgICBjcHVpZGx2bDolZCBjYWNoZTpzejolZCBhbGlnbjol ZFxuIiwgYmNkcC0+Y3B1aWRfbGV2ZWwsCiAgICAgICAgICAgICBiY2RwLT54ODZfY2FjaGVfc2l6 ZSwgYmNkcC0+eDg2X2NhY2hlX2FsaWdubWVudCk7CiAgICAgICAga2RicCgiICAgICBwb3dlcjol ZCBjb3JlczogbWF4OiVkIGJvb3RlZDolZCBzaWJsaW5nczolZCBhcGljaWQ6JWRcbiIsCiAgICAg ICAgICAgICBiY2RwLT54ODZfcG93ZXIsIGJjZHAtPng4Nl9tYXhfY29yZXMsIGJjZHAtPmJvb3Rl ZF9jb3JlcywKICAgICAgICAgICAgIGJjZHAtPng4Nl9udW1fc2libGluZ3MsIGJjZHAtPmFwaWNp ZCk7CiAgICAgICAga2RicCgiICAgICAiKTsKICAgICAgICBpZiAoY3B1X2hhc19hcGljKQogICAg ICAgICAgICBrZGJwKCJfYXBpYyIpOwogICAgICAgIGlmIChjcHVfaGFzX3NlcCkKICAgICAgICAg ICAga2RicCgifF9zZXAiKTsKICAgICAgICBpZiAoY3B1X2hhc194bW0zKQogICAgICAgICAgICBr ZGJwKCJ8X3htbTMiKTsKICAgICAgICBpZiAoY3B1X2hhc19odCkKICAgICAgICAgICAga2RicCgi fF9odCIpOwogICAgICAgIGlmIChjcHVfaGFzX254KQogICAgICAgICAgICBrZGJwKCJ8X254Iik7 CiAgICAgICAgaWYgKGNwdV9oYXNfY2xmbHVzaCkKICAgICAgICAgICAga2RicCgifF9jbGZsdXNo Iik7CiAgICAgICAgaWYgKGNwdV9oYXNfcGFnZTFnYikKICAgICAgICAgICAga2RicCgifF9wYWdl MWdiIik7CiAgICAgICAgaWYgKGNwdV9oYXNfZmZ4c3IpCiAgICAgICAgICAgIGtkYnAoInxfZmZ4 c3IiKTsKICAgICAgICBpZiAoY3B1X2hhc194MmFwaWMpCiAgICAgICAgICAgIGtkYnAoInxfeDJh cGljIik7CiAgICBrZGJwKCJcblxuIik7CiAgICBrZGJwKCJDQzoiKTsKI2lmIGRlZmluZWQoQ09O RklHX1g4Nl82NCkKICAgICAgICBrZGJwKCIgQ09ORklHX1g4Nl82NCIpOwojZW5kaWYKI2lmIGRl ZmluZWQoQ09ORklHX0NPTVBBVCkKICAgICAgICBrZGJwKCIgQ09ORklHX0NPTVBBVCIpOwojZW5k aWYKI2lmIGRlZmluZWQoQ09ORklHX1BBR0lOR19BU1NJU1RBTkNFKQogICAgICAgIGtkYnAoIiBD T05GSUdfUEFHSU5HX0FTU0lTVEFOQ0UiKTsKI2VuZGlmCiAgICBrZGJwKCJcbiIpOwogICAga2Ri cCgiY3B1IGhhcyBmb2xsb3dpbmcgZmVhdHVyZXM6XG4iKTsKICAgIGtkYnAoIiAgJXNcbiIsIGJv b3RfY3B1X2hhcyhYODZfRkVBVFVSRV9UU0NfUkVMSUFCTEUpID8gCiAgICAgICAgICJYODZfRkVB VFVSRV9UU0NfUkVMSUFCTEUiIDogIiIpOwogICAga2RicCgiICAlc1xuIiwgCiAgICAgICAgIGJv b3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpPyAiWDg2X0ZFQVRVUkVfQ09OU1RB TlRfVFNDIjoiIik7CiAgICBrZGJwKCIgICVzXG4iLCAKICAgICAgICAgYm9vdF9jcHVfaGFzKFg4 Nl9GRUFUVVJFX05PTlNUT1BfVFNDKSA/ICJYODZfRkVBVFVSRV9OT05TVE9QX1RTQyIgOiIiKTsK ICAgIGtkYnAoIiAgJXNcbiIsIAogICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfUkRU U0NQKSA/ICAiWDg2X0ZFQVRVUkVfUkRUU0NQIiA6ICIiKTsKICAgIGtkYnAoIiAgJXNcbiIsIGJv b3RfY3B1X2hhcyhYODZfRkVBVFVSRV9GWFNSKSA/ICAiWDg2X0ZFQVRVUkVfRlhTUiIgOiAiIik7 CiAgICBrZGJwKCIgICVzXG4iLCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQ1BVSURfRkFVTFRJ TkcpID8gIAogICAgICAgICAiWDg2X0ZFQVRVUkVfQ1BVSURfRkFVTFRJTkciIDogIiIpOwogICAg a2RicCgiICAlc1xuIiwgCiAgICAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9QQUdFMUdC KSA/ICAiWDg2X0ZFQVRVUkVfUEFHRTFHQiIgOiAiIik7CiAgICBrZGJwKCIgICVzXG4iLCBib290 X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTVdBSVQpID8gICJYODZfRkVBVFVSRV9NV0FJVCIgOiAiIik7 CiAgICBrZGJwKCIgICVzXG4iLCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfWDJBUElDKSA/ICAi WDg2X0ZFQVRVUkVfWDJBUElDIjoiIik7CiAgICBrZGJwKCIgICVzXG4iLCBib290X2NwdV9oYXMo WDg2X0ZFQVRVUkVfWFNBVkUpID8gICJYODZfRkVBVFVSRV9YU0FWRSI6IiIpOwogICAga2RicCgi XG4iKTsKCiAgICBrZGJwKCJNQVhfVklSVF9DUFVTOiQlZCAgTUFYX0hWTV9WQ1BVUzokJWRcbiIs IE1BWF9WSVJUX0NQVVMsTUFYX0hWTV9WQ1BVUyk7CiAgICBrZGJwKCJOUl9FVkVOVF9DSEFOTkVM UzogJCVkXG4iLCBOUl9FVkVOVF9DSEFOTkVMUyk7CiAgICBrZGJwKCJOUl9FVlRDSE5fQlVDS0VU UzogJCVkXG4iLCBOUl9FVlRDSE5fQlVDS0VUUyk7CgogICAga2RicCgiXG5Eb21haW5zIGFuZCB0 aGVpciB2Y3B1czpcbiIpOwogICAgZm9yX2VhY2hfZG9tYWluKGRwKSB7CiAgICAgICAgc3RydWN0 IHZjcHUgKnZwOwogICAgICAgIGludCBwcmludGVkPTA7CiAgICAgICAga2RicCgiICBEb21haW46 IHtpZDolZCAweCV4ICAgcHRyOiVwJXN9ICBWQ1BVczpcbiIsIAogICAgICAgICAgICAgZHAtPmRv bWFpbl9pZCwgZHAtPmRvbWFpbl9pZCwgZHAsIGRwLT5pc19keWluZyA/ICIgRFlJTkciOiIiKTsK ICAgICAgICBmb3IodnA9ZHAtPnZjcHVbMF07IHZwOyB2cCA9IHZwLT5uZXh0X2luX2xpc3QpIHsK ICAgICAgICAgICAga2RicCgiICB7aWQ6JWQgcDolcCBydW5zdGF0ZTolZH0iLCB2cC0+dmNwdV9p ZCwgdnAsIAogICAgICAgICAgICAgICAgIHZwLT5ydW5zdGF0ZS5zdGF0ZSk7CiAgICAgICAgICAg IGlmICgrK3ByaW50ZWQgJSAyID09IDApIGtkYnAoIlxuIik7CiAgICAgICAgfQogICAgICAgIGtk YnAoIlxuIik7CiAgICB9CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoKc3RhdGljIGtk Yl9jcHVfY21kX3QKa2RiX3VzZ2ZfY3VyKHZvaWQpCnsKICAgIGtkYnAoImN1ciA6IGRpc3BsYXkg Y3VycmVudCBkb21pZCBhbmQgdmNwdVxuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsK fQoKLyogQ2hlY2tpbmcgZm9yIGd1ZXN0X21vZGUoKSBub3QgZmVhc2libGUgaGVyZS4gaWYgZG9t MC0+aGNhbGwtPmJwIGluIHhlbiwgCiAqIHRoZW4gZ19tKCkgd2lsbCBzaG93IHhlbiwgYnV0IHZj cHUgaXMgc3RpbGwgZG9tMC4gaGVuY2UganVzdCBsb29rIGF0IAogKiBjdXJyZW50IG9ubHkgKi8K c3RhdGljIGtkYl9jcHVfY21kX3QKa2RiX2NtZGZfY3VyKGludCBhcmdjLCBjb25zdCBjaGFyICoq YXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIGRvbWlkX3QgaWQgPSBjdXJy ZW50LT5kb21haW4tPmRvbWFpbl9pZDsKCiAgICBpZiAoYXJnYyA+IDEgJiYgKmFyZ3ZbMV0gPT0g Jz8nKQogICAgICAgIHJldHVybiBrZGJfdXNnZl9jdXIoKTsKCiAgICBrZGJwKCJkb21pZDogJWR7 JXB9ICVzIHZjcHU6JWQgeyVwfSAiLCBpZCwgY3VycmVudC0+ZG9tYWluLAogICAgICAgICAoaWQ9 PURPTUlEX0lETEUpID8gIihJRExFKSIgOiAiIiwgY3VycmVudC0+dmNwdV9pZCwgY3VycmVudCk7 CgogICAgLyogaWYgKGlkICE9IERPTUlEX0lETEUpIHsgKi8KICAgICAgICBpZiAoYm9vdF9jcHVf ZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwpIHsKICAgICAgICAgICAgdTY0IGFk ZHIgPSAtMTsKICAgICAgICAgICAgX192bXB0cnN0KCZhZGRyKTsKICAgICAgICAgICAga2RicCgi IFZNQ1M6IktEQkZMLCBhZGRyKTsKICAgICAgICB9CiAgICAvKiB9ICovCiAgICBrZGJwKCJcbiIp OwogICAgcmV0dXJuIEtEQl9DUFVfTUFJTl9LREI7Cn0KCi8qIHN0dWIgdG8gcXVpY2tseSBhbmQg ZWFzaWx5IGFkZCBhIG5ldyBjb21tYW5kICovCnN0YXRpYyBrZGJfY3B1X2NtZF90CmtkYl91c2dm X3VzcjEodm9pZCkKewogICAga2RicCgidXNyMTogYWRkIGFueSBhcmJpdHJhcnkgY21kIHVzaW5n IHRoaXMgaW4ga2RiX2NtZHMuY1xuIik7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQpz dGF0aWMga2RiX2NwdV9jbWRfdAprZGJfY21kZl91c3IxKGludCBhcmdjLCBjb25zdCBjaGFyICoq YXJndiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCnsKICAgIHJldHVybiBLREJfQ1BVX01B SU5fS0RCOwp9CgpzdGF0aWMga2RiX2NwdV9jbWRfdAprZGJfdXNnZl9oKHZvaWQpCnsKICAgIGtk YnAoImg6IGRpc3BsYXkgYWxsIGNvbW1hbmRzLiBTZWUga2RiL1JFQURNRSBmb3IgbW9yZSBpbmZv XG4iKTsKICAgIHJldHVybiBLREJfQ1BVX01BSU5fS0RCOwp9CnN0YXRpYyBrZGJfY3B1X2NtZF90 CmtkYl9jbWRmX2goaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncykKewogICAga2RidGFiX3QgKnRicDsKCiAgICBrZGJwKCIgLSBjY3B1IGlzIGN1 cnJlbnQgY3B1IFxuIik7CiAgICBrZGJwKCIgLSBmb2xsb3dpbmcgYXJlIGFsd2F5cyBpbiBkZWNp bWFsOlxuIik7CiAgICBrZGJwKCIgICAgIHZjcHUgbnVtLCBjcHUgbnVtLCBkb21pZFxuIik7CiAg ICBrZGJwKCIgLSBvdGhlcndpc2UsIGFsbW9zdCBhbGwgbnVtYmVycyBhcmUgaW4gaGV4ICgweCBu b3QgbmVlZGVkKVxuIik7CiAgICBrZGJwKCIgLSBvdXRwdXQ6ICQxNyBtZWFucyBkZWNpbWFsIDE3 XG4iKTsKICAgIGtkYnAoIiAtIGRvbWlkIDdmZmYoJDMyNzY3KSByZWZlcnMgdG8gaHlwZXJ2aXNv clxuIik7CiAgICBrZGJwKCIgLSBpZiBubyBkb21pZCBiZWZvcmUgZnVuY3Rpb24gbmFtZSwgdGhl biBpdCdzIGh5cGVydmlzb3JcbiIpOwogICAga2RicCgiIC0gZWFybHlrZGIgaW4geGVuIGdydWIg bGluZSB0byBicmVhayBpbnRvIGtkYiBkdXJpbmcgYm9vdFxuIik7CiAgICBrZGJwKCIgLSBjb21t YW5kID8gd2lsbCBzaG93IHRoZSBjb21tYW5kIHVzYWdlXG4iKTsKICAgIGtkYnAoIlxuIik7Cgog ICAgZm9yKHRicD1rZGJfY21kX3RibDsgdGJwLT5rZGJfY21kX3VzZ2Y7IHRicCsrKQogICAgICAg ICgqdGJwLT5rZGJfY21kX3VzZ2YpKCk7CiAgICByZXR1cm4gS0RCX0NQVV9NQUlOX0tEQjsKfQoK LyogPT09PT09PT09PT09PT09PT09PT09IGNtZCB0YWJsZSBpbml0aWFsaXphdGlvbiA9PT09PT09 PT09PT09PT09PT09PT09PT09PSAqLwp2b2lkIF9faW5pdAprZGJfaW5pdF9jbWR0YWIodm9pZCkK ewogIHN0YXRpYyBrZGJ0YWJfdCBfa2RiX2NtZF90YWJsZVtdID0gewoKICAgIHsiaW5mbyIsIGtk Yl9jbWRmX2luZm8sIGtkYl91c2dmX2luZm8sIDEsIEtEQl9SRVBFQVRfTk9ORX0sCiAgICB7ImN1 ciIsICBrZGJfY21kZl9jdXIsIGtkYl91c2dmX2N1ciwgMSwgS0RCX1JFUEVBVF9OT05FfSwKCiAg ICB7ImYiLCAga2RiX2NtZGZfZiwgIGtkYl91c2dmX2YsICAxLCBLREJfUkVQRUFUX05PTkV9LAog ICAgeyJmZyIsIGtkYl9jbWRmX2ZnLCBrZGJfdXNnZl9mZywgMSwgS0RCX1JFUEVBVF9OT05FfSwK CiAgICB7ImR3IiwgIGtkYl9jbWRmX2R3LCAga2RiX3VzZ2ZfZHcsICAxLCBLREJfUkVQRUFUX05P X0FSR1N9LAogICAgeyJkZCIsICBrZGJfY21kZl9kZCwgIGtkYl91c2dmX2RkLCAgMSwgS0RCX1JF UEVBVF9OT19BUkdTfSwKICAgIHsiZHdtIiwga2RiX2NtZGZfZHdtLCBrZGJfdXNnZl9kd20sIDEs IEtEQl9SRVBFQVRfTk9fQVJHU30sCiAgICB7ImRkbSIsIGtkYl9jbWRmX2RkbSwga2RiX3VzZ2Zf ZGRtLCAxLCBLREJfUkVQRUFUX05PX0FSR1N9LAogICAgeyJkciIsICBrZGJfY21kZl9kciwgIGtk Yl91c2dmX2RyLCAgMSwgS0RCX1JFUEVBVF9OT05FfSwKICAgIHsiZHJnIiwga2RiX2NtZGZfZHJn LCBrZGJfdXNnZl9kcmcsIDEsIEtEQl9SRVBFQVRfTk9ORX0sCgogICAgeyJkaXMiLCBrZGJfY21k Zl9kaXMsICBrZGJfdXNnZl9kaXMsICAxLCBLREJfUkVQRUFUX05PX0FSR1N9LAogICAgeyJkaXNt IixrZGJfY21kZl9kaXNtLCBrZGJfdXNnZl9kaXNtLCAxLCBLREJfUkVQRUFUX05PX0FSR1N9LAoK ICAgIHsibXciLCBrZGJfY21kZl9tdywga2RiX3VzZ2ZfbXcsIDEsIEtEQl9SRVBFQVRfTk9ORX0s CiAgICB7Im1kIiwga2RiX2NtZGZfbWQsIGtkYl91c2dmX21kLCAxLCBLREJfUkVQRUFUX05PTkV9 LAogICAgeyJtciIsIGtkYl9jbWRmX21yLCBrZGJfdXNnZl9tciwgMSwgS0RCX1JFUEVBVF9OT05F fSwKCiAgICB7ImJjIiwga2RiX2NtZGZfYmMsIGtkYl91c2dmX2JjLCAwLCBLREJfUkVQRUFUX05P TkV9LAogICAgeyJicCIsIGtkYl9jbWRmX2JwLCBrZGJfdXNnZl9icCwgMSwgS0RCX1JFUEVBVF9O T05FfSwKICAgIHsiYnRwIiwga2RiX2NtZGZfYnRwLCBrZGJfdXNnZl9idHAsIDEsIEtEQl9SRVBF QVRfTk9ORX0sCgogICAgeyJ3cCIsIGtkYl9jbWRmX3dwLCBrZGJfdXNnZl93cCwgMSwgS0RCX1JF UEVBVF9OT05FfSwKICAgIHsid2MiLCBrZGJfY21kZl93Yywga2RiX3VzZ2Zfd2MsIDAsIEtEQl9S RVBFQVRfTk9ORX0sCgogICAgeyJuaSIsIGtkYl9jbWRmX25pLCBrZGJfdXNnZl9uaSwgMCwgS0RC X1JFUEVBVF9OT19BUkdTfSwKICAgIHsic3MiLCBrZGJfY21kZl9zcywga2RiX3VzZ2Zfc3MsIDEs IEtEQl9SRVBFQVRfTk9fQVJHU30sCiAgICB7InNzYiIsa2RiX2NtZGZfc3NiLGtkYl91c2dmX3Nz YiwwLCBLREJfUkVQRUFUX05PX0FSR1N9LAogICAgeyJnbyIsIGtkYl9jbWRmX2dvLCBrZGJfdXNn Zl9nbywgMCwgS0RCX1JFUEVBVF9OT05FfSwKCiAgICB7ImNwdSIsa2RiX2NtZGZfY3B1LCBrZGJf dXNnZl9jcHUsIDEsIEtEQl9SRVBFQVRfTk9ORX0sCiAgICB7Im5taSIsa2RiX2NtZGZfbm1pLCBr ZGJfdXNnZl9ubWksIDEsIEtEQl9SRVBFQVRfTk9ORX0sCiAgICB7InBlcmNwdSIsa2RiX2NtZGZf cGVyY3B1LCBrZGJfdXNnZl9wZXJjcHUsIDEsIEtEQl9SRVBFQVRfTk9ORX0sCgogICAgeyJzeW0i LCAga2RiX2NtZGZfc3ltLCAgIGtkYl91c2dmX3N5bSwgICAxLCBLREJfUkVQRUFUX05PTkV9LAog ICAgeyJtb2QiLCAga2RiX2NtZGZfbW9kLCAgIGtkYl91c2dmX21vZCwgICAxLCBLREJfUkVQRUFU X05PTkV9LAoKICAgIHsidmNwdWgiLGtkYl9jbWRmX3ZjcHVoLCBrZGJfdXNnZl92Y3B1aCwgMSwg S0RCX1JFUEVBVF9OT05FfSwKICAgIHsidmNwdSIsIGtkYl9jbWRmX3ZjcHUsICBrZGJfdXNnZl92 Y3B1LCAgMSwgS0RCX1JFUEVBVF9OT05FfSwKICAgIHsiZG9tIiwgIGtkYl9jbWRmX2RvbSwgICBr ZGJfdXNnZl9kb20sICAgMSwgS0RCX1JFUEVBVF9OT05FfSwKCiAgICB7InNjaGVkIiwga2RiX2Nt ZGZfc2NoZWQsIGtkYl91c2dmX3NjaGVkLCAxLCBLREJfUkVQRUFUX05PTkV9LAogICAgeyJtbXUi LCAgIGtkYl9jbWRmX21tdSwgICBrZGJfdXNnZl9tbXUsICAgMSwgS0RCX1JFUEVBVF9OT05FfSwK ICAgIHsicDJtIiwgICBrZGJfY21kZl9wMm0sICAga2RiX3VzZ2ZfcDJtLCAgIDEsIEtEQl9SRVBF QVRfTk9ORX0sCiAgICB7Im0ycCIsICAga2RiX2NtZGZfbTJwLCAgIGtkYl91c2dmX20ycCwgICAx LCBLREJfUkVQRUFUX05PTkV9LAogICAgeyJkcGFnZSIsIGtkYl9jbWRmX2RwYWdlLCBrZGJfdXNn Zl9kcGFnZSwgMSwgS0RCX1JFUEVBVF9OT05FfSwKICAgIHsiZG1zciIsICBrZGJfY21kZl9kbXNy LCAga2RiX3VzZ2ZfZG1zciwgMSwgS0RCX1JFUEVBVF9OT05FfSwKICAgIHsiY3B1aWQiLCAga2Ri X2NtZGZfY3B1aWQsICBrZGJfdXNnZl9jcHVpZCwgMSwgS0RCX1JFUEVBVF9OT05FfSwKICAgIHsi d2VwdCIsICBrZGJfY21kZl93ZXB0LCAga2RiX3VzZ2Zfd2VwdCwgMSwgS0RCX1JFUEVBVF9OT05F fSwKCiAgICB7ImR0cnEiLCBrZGJfY21kZl9kdHJxLCAga2RiX3VzZ2ZfZHRycSwgMSwgS0RCX1JF UEVBVF9OT05FfSwKICAgIHsiZGlkdCIsIGtkYl9jbWRmX2RpZHQsICBrZGJfdXNnZl9kaWR0LCAx LCBLREJfUkVQRUFUX05PTkV9LAogICAgeyJkZ2R0Iiwga2RiX2NtZGZfZGdkdCwgIGtkYl91c2dm X2RnZHQsIDEsIEtEQl9SRVBFQVRfTk9ORX0sCiAgICB7ImRpcnEiLCBrZGJfY21kZl9kaXJxLCAg a2RiX3VzZ2ZfZGlycSwgMSwgS0RCX1JFUEVBVF9OT05FfSwKICAgIHsiZHZpdCIsIGtkYl9jbWRm X2R2aXQsICBrZGJfdXNnZl9kdml0LCAxLCBLREJfUkVQRUFUX05PTkV9LAogICAgeyJkdm1jIiwg a2RiX2NtZGZfZHZtYywgIGtkYl91c2dmX2R2bWMsIDEsIEtEQl9SRVBFQVRfTk9ORX0sCiAgICB7 Im1taW8iLCBrZGJfY21kZl9tbWlvLCAga2RiX3VzZ2ZfbW1pbywgMSwgS0RCX1JFUEVBVF9OT05F fSwKCiAgICAvKiB0cmFjaW5nIHJlbGF0ZWQgY29tbWFuZHMgKi8KICAgIHsidHJjb24iLCBrZGJf Y21kZl90cmNvbiwgIGtkYl91c2dmX3RyY29uLCAgMCwgS0RCX1JFUEVBVF9OT05FfSwKICAgIHsi dHJjb2ZmIixrZGJfY21kZl90cmNvZmYsIGtkYl91c2dmX3RyY29mZiwgMCwgS0RCX1JFUEVBVF9O T05FfSwKICAgIHsidHJjeiIsICBrZGJfY21kZl90cmN6LCAgIGtkYl91c2dmX3RyY3osICAgMCwg S0RCX1JFUEVBVF9OT05FfSwKICAgIHsidHJjcCIsICBrZGJfY21kZl90cmNwLCAgIGtkYl91c2dm X3RyY3AsICAgMSwgS0RCX1JFUEVBVF9OT05FfSwKCiAgICB7InVzcjEiLCAga2RiX2NtZGZfdXNy MSwgICBrZGJfdXNnZl91c3IxLCAgIDEsIEtEQl9SRVBFQVRfTk9ORX0sCiAgICB7ImtkYmYiLCAg a2RiX2NtZGZfa2RiZiwgICBrZGJfdXNnZl9rZGJmLCAgIDEsIEtEQl9SRVBFQVRfTk9ORX0sCiAg ICB7ImtkYmRiZyIsa2RiX2NtZGZfa2RiZGJnLCBrZGJfdXNnZl9rZGJkYmcsIDEsIEtEQl9SRVBF QVRfTk9ORX0sCiAgICB7InJlYm9vdCIsa2RiX2NtZGZfcmVib290LCBrZGJfdXNnZl9yZWJvb3Qs IDEsIEtEQl9SRVBFQVRfTk9ORX0sCiAgICB7ImgiLCAgICAga2RiX2NtZGZfaCwgICAgICBrZGJf dXNnZl9oLCAgICAgIDEsIEtEQl9SRVBFQVRfTk9ORX0sCgogICAgeyIiLCBOVUxMLCBOVUxMLCAw LCAwfSwKICB9OwogICAga2RiX2NtZF90YmwgPSBfa2RiX2NtZF90YWJsZTsKICAgIHJldHVybjsK fQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtkYi9ndWVzdC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAwMDAwNzc1ADAwMDI3NTYAMDAwMjc1NgAwMDAwMDAwMDAwMAAxMjAxNzcyNDYyNAAw MTI3MDQAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIg IABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAa2RiL2d1ZXN0L01ha2VmaWxlAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAADAwMDA2NjQAMDAwMjc1NgAwMDAyNzU2ADAwMDAwMDAwMDQxADExNzY1NDY1NTU2ADAx NDM1NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg AG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAKb2JqLXkgICAgICAgICAgIDo9IGtkYl9ndWVzdC5vCgoAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAGtkYi9ndWVzdC9rZGJfZ3Vlc3QuYwAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAwMDAwNjY0ADAwMDI3NTYAMDAwMjc1NgAwMDAwMDAyNTAwNgAxMTc2NTQ2NTU1NgAwMTUw NDEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABt cmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1yYXRob3IAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAALyoKICogQ29weXJpZ2h0IChDKSAyMDA5LCBNdWtlc2ggUmF0aG9y LCBPcmFjbGUgQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2Ug djIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAqCiAqIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5 IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICogQm9zdG9uLCBNQSAwMjExMTAtMTMwNywgVVNB LgogKi8KCiNpbmNsdWRlICIuLi9pbmNsdWRlL2tkYmluYy5oIgoKLyogaW5mb3JtYXRpb24gZm9y IHN5bWJvbHMgZm9yIGEgZ3Vlc3QgKGluY2x1ZGVpbmcgZG9tIDAgKSBpcyBzYXZlZCBoZXJlICov CnN0cnVjdCBnc3Rfc3ltaW5mbyB7ICAgICAgICAgICAvKiBndWVzdCBzeW1ib2xzIGluZm8gKi8K ICAgIGludCAgIGRvbWlkOyAgICAgICAgICAgICAgIC8qIHdoaWNoIGRvbWFpbiAqLwogICAgaW50 ICAgYml0bmVzczsgICAgICAgICAgICAgLyogMzIgb3IgNjQgKi8KICAgIHZvaWQgKmFkZHJ0Ymxw OyAgICAgICAgICAgIC8qIHB0ciB0byAoMzIvNjQpYWRkcmVzc2VzIHRibCAqLwogICAgdTggICAq dG9rdGJsOyAgICAgICAgICAgICAgLyogcHRyIHRvIGthbGxzeW1zX3Rva2VuX3RhYmxlICovCiAg ICB1MTYgICp0b2tpZHh0Ymw7ICAgICAgICAgICAvKiBwdHIgdG8ga2FsbHN5bXNfdG9rZW5faW5k ZXggKi8KICAgIHU4ICAgKmthbGxzeW1zX25hbWVzOyAgICAgIC8qIHB0ciB0byBrYWxsc3ltc19u YW1lcyAqLwogICAgbG9uZyAga2FsbHN5bXNfbnVtX3N5bXM7ICAgLyogcHRyIHRvIGthbGxzeW1z X251bV9zeW1zICovCiAgICBrZGJ2YV90ICBzdGV4dDsgICAgICAgICAgICAvKiB2YWx1ZSBvZiBf c3RleHQgaW4gZ3Vlc3QgKi8KICAgIGtkYnZhX3QgIGV0ZXh0OyAgICAgICAgICAgIC8qIHZhbHVl IG9mIF9ldGV4dCBpbiBndWVzdCAqLwogICAga2RidmFfdCAgc2luaXR0ZXh0OyAgICAgICAgLyog dmFsdWUgb2YgX3Npbml0dGV4dCBpbiBndWVzdCAqLwogICAga2RidmFfdCAgZWluaXR0ZXh0OyAg ICAgICAgLyogdmFsdWUgb2YgX2Vpbml0dGV4dCBpbiBndWVzdCAqLwp9OwoKI2RlZmluZSBNQVhf Q0FDSEUgMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWNoZSB1cHRvIDE2IGd1 ZXN0cyAqLwpzdHJ1Y3QgZ3N0X3N5bWluZm8gZ3N0X3N5bWluZm9hW01BWF9DQUNIRV07ICAgICAg IC8qIGd1ZXN0IHN5bWJvbCBpbmZvIGFycmF5ICovCgpzdGF0aWMgc3RydWN0IGdzdF9zeW1pbmZv ICoKa2RiX2dldF9zeW1pbmZvX3Nsb3Qodm9pZCkKewogICAgaW50IGk7CiAgICBmb3IgKGk9MDsg aSA8IE1BWF9DQUNIRTsgaSsrKQogICAgICAgIGlmIChnc3Rfc3ltaW5mb2FbaV0uYWRkcnRibHAg PT0gTlVMTCkKICAgICAgICAgICAgcmV0dXJuICgmZ3N0X3N5bWluZm9hW2ldKTsgICAgICAKCiAg ICByZXR1cm4gTlVMTDsKfQoKc3RhdGljIHN0cnVjdCBnc3Rfc3ltaW5mbyAqCmtkYl9kb21pZDJz eW1pbmZvcChkb21pZF90IGRvbWlkKQp7CiAgICBpbnQgaTsKICAgIGZvciAoaT0wOyBpIDwgTUFY X0NBQ0hFOyBpKyspCiAgICAgICAgaWYgKGdzdF9zeW1pbmZvYVtpXS5kb21pZCA9PSBkb21pZCkK ICAgICAgICAgICAgcmV0dXJuICgmZ3N0X3N5bWluZm9hW2ldKTsgICAgICAKCiAgICByZXR1cm4g TlVMTDsKfQoKLyogY2hlY2sgaWYgYW4gYWRkcmVzcyBsb29rcyBsaWtlIHRleHQgYWRkcmVzcyBp biBndWVzdCAqLwppbnQKa2RiX2lzX2FkZHJfZ3Vlc3RfdGV4dChrZGJ2YV90IGFkZHIsIGludCBk b21pZCkKewogICAgc3RydWN0IGdzdF9zeW1pbmZvICpncCA9IGtkYl9kb21pZDJzeW1pbmZvcChk b21pZCk7CgogICAgaWYgKCFncCB8fCAhZ3AtPnN0ZXh0IHx8ICFncC0+ZXRleHQpCiAgICAgICAg cmV0dXJuIDA7CiAgICBLREJHUDEoImd1ZXN0YWRkcjogYWRkcjolbHggZG9taWQ6JWRcbiIsIGFk ZHIsIGRvbWlkKTsKCiAgICByZXR1cm4gKCAoYWRkciA+PSBncC0+c3RleHQgJiYgYWRkciA8PSBn cC0+ZXRleHQpIHx8CiAgICAgICAgICAgICAoYWRkciA+PSBncC0+c2luaXR0ZXh0ICYmIGFkZHIg PD0gZ3AtPmVpbml0dGV4dCkgKTsKfQoKLyoKICogcmV0dXJuczogdmFsdWUgb2Yga2FsbHN5bXNf YWRkcmVzc2VzW2lkeF07CiAqLwpzdGF0aWMga2RidmFfdAprZGJfcmRfZ3Vlc3RfYWRkcnRibChz dHJ1Y3QgZ3N0X3N5bWluZm8gKmdwLCBpbnQgaWR4KQp7CiAgICBrZGJ2YV90IGFkZHIsIHJldGFk ZHI9MDsKICAgIGludCBudW0gPSBncC0+Yml0bmVzcy84OyAgICAgICAvKiB3aGV0aGVyIDQgYnl0 ZSBvciA4IGJ5dGUgcHRycyAqLwogICAgZG9taWRfdCBpZCA9IGdwLT5kb21pZDsKCiAgICBhZGRy ID0gKGtkYnZhX3QpKCgoY2hhciAqKWdwLT5hZGRydGJscCkgKyBpZHggKiBudW0pOwogICAgS0RC R1AxKCJyZGd1ZXN0YWRkcnRibDphZGRyOiVseCBpZHg6JWRcbiIsIGFkZHIsIGlkeCk7CgogICAg aWYgKGtkYl9yZWFkX21lbShhZGRyLCAoa2RiYnl0X3QgKikmcmV0YWRkcixudW0saWQpICE9IG51 bSkgewogICAgICAgIGtkYnAoIkNhbid0IHJlYWQgYWRkcnRibCBkb21pZDolZCBhdDolbHhcbiIs IGlkLCBhZGRyKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIEtEQkdQMSgicmRndWVzdGFk ZHJ0Ymw6ZXhpdDpyZXRhZGRyOiVseFxuIiwgcmV0YWRkcik7CiAgICByZXR1cm4gcmV0YWRkcjsK fQoKLyogQmFzZWQgb24gZWw1IGthbGxzeW1zLmMgZmlsZS4gKi8Kc3RhdGljIHVuc2lnbmVkIGlu dCAKa2RiX2V4cGFuZF9lbDVfc3ltKHN0cnVjdCBnc3Rfc3ltaW5mbyAqZ3AsIHVuc2lnbmVkIGlu dCBvZmYsIGNoYXIgKnJlc3VsdCkKeyAgIAogICAgaW50IGxlbiwgc2tpcHBlZF9maXJzdCA9IDA7 CiAgICB1OCB1OGlkeCwgKnRwdHIsICpkYXRhcDsKICAgIGRvbWlkX3QgZG9taWQgPSBncC0+ZG9t aWQ7CgogICAgKnJlc3VsdCA9ICdcMCc7CgogICAgLyogZ2V0IHRoZSBjb21wcmVzc2VkIHN5bWJv bCBsZW5ndGggZnJvbSB0aGUgZmlyc3Qgc3ltYm9sIGJ5dGUgKi8KICAgIGRhdGFwID0gZ3AtPmth bGxzeW1zX25hbWVzICsgb2ZmOwogICAgbGVuID0gMDsKICAgIGlmICgoa2RiX3JlYWRfbWVtKChr ZGJ2YV90KWRhdGFwLCAoa2RiYnl0X3QgKikmbGVuLCAxLCBkb21pZCkpICE9IDEpIHsKICAgICAg ICBLREJHUCgiZmFpbGVkIHRvIHJlYWQgZ3Vlc3QgbWVtb3J5XG4iKTsKICAgICAgICByZXR1cm4g MDsKICAgIH0KICAgIGRhdGFwKys7CgogICAgLyogdXBkYXRlIHRoZSBvZmZzZXQgdG8gcmV0dXJu IHRoZSBvZmZzZXQgZm9yIHRoZSBuZXh0IHN5bWJvbCBvbgogICAgICogdGhlIGNvbXByZXNzZWQg c3RyZWFtICovCiAgICBvZmYgKz0gbGVuICsgMTsKCiAgICAvKiBmb3IgZXZlcnkgYnl0ZSBvbiB0 aGUgY29tcHJlc3NlZCBzeW1ib2wgZGF0YSwgY29weSB0aGUgdGFibGUKICAgICAqIGVudHJ5IGZv ciB0aGF0IGJ5dGUgKi8KICAgIHdoaWxlKGxlbikgewogICAgICAgIHUxNiB1MTZpZHgsICp1MTZw OwogICAgICAgIGlmIChrZGJfcmVhZF9tZW0oKGtkYnZhX3QpZGF0YXAsKGtkYmJ5dF90ICopJnU4 aWR4LDEsZG9taWQpIT0xKXsKICAgICAgICAgICAga2RicCgibWVtb3J5ICh1OGlkeCkgcmVhZCBl cnJvcjolcFxuIixncC0+dG9raWR4dGJsKTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg fQogICAgICAgIHUxNnAgPSB1OGlkeCArIGdwLT50b2tpZHh0Ymw7CiAgICAgICAgaWYgKGtkYl9y ZWFkX21lbSgoa2RidmFfdCl1MTZwLChrZGJieXRfdCAqKSZ1MTZpZHgsMixkb21pZCkhPTIpewog ICAgICAgICAgICBrZGJwKCJ0b2tpZHh0YmwgcmVhZCBlcnJvcjolcFxuIiwgdTE2cCk7CiAgICAg ICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICB0cHRyID0gZ3AtPnRva3RibCArIHUx NmlkeDsKICAgICAgICBkYXRhcCsrOwogICAgICAgIGxlbi0tOwoKICAgICAgICB3aGlsZSAoKGtk Yl9yZWFkX21lbSgoa2RidmFfdCl0cHRyLCAoa2RiYnl0X3QgKikmdThpZHgsIDEsIGRvbWlkKT09 MSkgJiYKICAgICAgICAgICAgICAgdThpZHgpIHsKCiAgICAgICAgICAgIGlmKHNraXBwZWRfZmly c3QpIHsKICAgICAgICAgICAgICAgICpyZXN1bHQgPSB1OGlkeDsKICAgICAgICAgICAgICAgIHJl c3VsdCsrOwogICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIHNraXBwZWRfZmlyc3Qg PSAxOwogICAgICAgICAgICB0cHRyKys7CiAgICAgICAgfQogICAgfQogICAgKnJlc3VsdCA9ICdc MCc7CiAgICByZXR1cm4gb2ZmOyAgICAgICAgICAvKiByZXR1cm4gdG8gb2Zmc2V0IHRvIHRoZSBu ZXh0IHN5bWJvbCAqLwp9CgojZGVmaW5lIEVMNF9OTUxFTiAxMjcKLyogc28gbXVjaCBwYWluLCBz byBub3Qgc3VyZSBvZiBpdCdzIHdvcnRoIC4uIDopLi4gKi8Kc3RhdGljIGtkYnZhX3QKa2RiX2V4 cGFuZF9lbDRfc3ltKHN0cnVjdCBnc3Rfc3ltaW5mbyAqZ3AsIGludCBsb3csIGNoYXIgKnJlc3Vs dCwgY2hhciAqc3ltcCkKeyAgIAogICAgaW50IGksIGo7CiAgICB1OCAqbm1wID0gZ3AtPmthbGxz eW1zX25hbWVzOyAgICAgICAvKiBndWVzdCBhZGRyZXNzIHNwYWNlICovCiAgICBrZGJieXRfdCBi eXRlLCBwcmVmaXg7CiAgICBkb21pZF90IGlkID0gZ3AtPmRvbWlkOwogICAga2RidmFfdCBhZGRy OwoKICAgIEtEQkdQMSgiRWVsNHN5bTpubXA6JXAgbWF4aWR4OiQlZCBzeW06JXNcbiIsIG5tcCwg bG93LCBzeW1wKTsKICAgIGZvciAoaT0wOyBpIDw9IGxvdzsgaSsrKSB7CiAgICAgICAgLyogdW5z aWduZWQgcHJlZml4ID0gKm5hbWUrKzsgKi8KICAgICAgICBpZiAoa2RiX3JlYWRfbWVtKChrZGJ2 YV90KW5tcCwgJnByZWZpeCwgMSwgaWQpICE9IDEpIHsKICAgICAgICAgICAga2RicCgiZmFpbGVk IHRvIHJlYWQ6JXAgZG9taWQ6JXhcbiIsIG5tcCwgaWQpOwogICAgICAgICAgICByZXR1cm4gMDsK ICAgICAgICB9CiAgICAgICAgS0RCR1AyKCJlbDQ6aTolZCBwcmVmaXg6JXhcbiIsIGksIHByZWZp eCk7CiAgICAgICAgbm1wKys7CiAgICAgICAgLyogc3RybmNweShuYW1lYnVmICsgcHJlZml4LCBu YW1lLCBLU1lNX05BTUVfTEVOIC0gcHJlZml4KTsgKi8KICAgICAgICBhZGRyID0gKGxvbmcpcmVz dWx0ICsgcHJlZml4OwogICAgICAgIGZvciAoaj0wOyBqIDwgRUw0X05NTEVOLXByZWZpeDsgaisr KSB7CiAgICAgICAgICAgIGlmIChrZGJfcmVhZF9tZW0oKGtkYnZhX3Qpbm1wLCAmYnl0ZSwgMSwg aWQpICE9IDEpIHsKICAgICAgICAgICAgICAgIGtkYnAoImZhaWxlZCByZWFkOiVwIGRvbWlkOiV4 XG4iLCBubXAsIGlkKTsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CiAg ICAgICAgICAgIEtEQkdQMigiZWw0Omo6JWQgYnl0ZToleFxuIiwgaiwgYnl0ZSk7CiAgICAgICAg ICAgICooa2RiYnl0X3QgKilhZGRyID0gYnl0ZTsKICAgICAgICAgICAgYWRkcisrOyBubXArKzsK ICAgICAgICAgICAgaWYgKGJ5dGUgPT0gJ1wwJykKICAgICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgIH0KICAgICAgICBLREJHUDIoImVsNHN5bTppOiVkIHJlczolc1xuIiwgaSwgcmVzdWx0KTsK ICAgICAgICBpZiAoc3ltcCAmJiBzdHJjbXAocmVzdWx0LCBzeW1wKSA9PSAwKQogICAgICAgICAg ICByZXR1cm4oa2RiX3JkX2d1ZXN0X2FkZHJ0YmwoZ3AsIGkpKTsKCiAgICAgICAgLyoga2FsbHN5 bXMuYzogbmFtZSArPSBzdHJsZW4obmFtZSkgKyAxOyAqLwogICAgICAgIGlmIChqID09IEVMNF9O TUxFTi1wcmVmaXggJiYgYnl0ZSAhPSAnXDAnKQogICAgICAgICAgICB3aGlsZSAoa2RiX3JlYWRf bWVtKChrZGJ2YV90KW5tcCwgJmJ5dGUsIDEsIGlkKSAmJiBieXRlICE9ICdcMCcpCiAgICAgICAg ICAgICAgICBubXArKzsKICAgIH0KICAgIEtEQkdQMSgiWGVsNHN5bTogbmEtZ2EtZGFcbiIpOwog ICAgcmV0dXJuIDA7Cn0KCnN0YXRpYyB1bnNpZ25lZCBpbnQKa2RiX2dldF9lbDVfc3ltb2Zmc2V0 KHN0cnVjdCBnc3Rfc3ltaW5mbyAqZ3AsIGxvbmcgcG9zKQp7CiAgICBpbnQgaTsKICAgIHU4IGRh dGEsICpuYW1lcDsKICAgIGRvbWlkX3QgZG9taWQgPSBncC0+ZG9taWQ7CgogICAgbmFtZXAgPSBn cC0+a2FsbHN5bXNfbmFtZXM7CiAgICBmb3IgKGk9MDsgaSA8IHBvczsgaSsrKSB7CiAgICAgICAg aWYgKGtkYl9yZWFkX21lbSgoa2RidmFfdCluYW1lcCwgJmRhdGEsIDEsIGRvbWlkKSAhPSAxKSB7 CiAgICAgICAgICAgIGtkYnAoIkNhbid0IHJlYWQgaWQ6JCVkIG1lbTolcFxuIiwgZG9taWQsIG5h bWVwKTsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIG5hbWVwID0gbmFt ZXAgKyBkYXRhICsgMTsKICAgIH0KICAgIHJldHVybiBuYW1lcCAtIGdwLT5rYWxsc3ltc19uYW1l czsKfQoKLyoKICogZm9yIGEgZ2l2ZW4gZ3Vlc3QgZG9taWQgKGRvbWlkID49IDAgJiYgPCBLREJf SFlQRE9NSUQpLCBjb252ZXJ0IGFkZHIgdG8KICogc3ltYm9sLiBvZmZzZXQgaXMgc2V0IHRvICBh ZGRyIC0gc3ltYm9sc3RhcnQKICovCmNoYXIgKgprZGJfZ3Vlc3RfYWRkcjJzeW0odW5zaWduZWQg bG9uZyBhZGRyLCBkb21pZF90IGRvbWlkLCB1bG9uZyAqb2Zmc3ApCnsKICAgIHN0YXRpYyBjaGFy IG5hbWVidWZbS1NZTV9OQU1FX0xFTisxXTsKICAgIHVuc2lnbmVkIGxvbmcgbG93LCBoaWdoLCBt aWQ7CiAgICBzdHJ1Y3QgZ3N0X3N5bWluZm8gKmdwID0ga2RiX2RvbWlkMnN5bWluZm9wKGRvbWlk KTsKCiAgICAqb2Zmc3AgPSAwOwogICAgaWYoIWdwIHx8IGdwLT5rYWxsc3ltc19udW1fc3ltcyA9 PSAwKQogICAgICAgIHJldHVybiAiID8/PyAiOwoKICAgIG5hbWVidWZbMF0gPSBuYW1lYnVmW0tT WU1fTkFNRV9MRU5dID0gJ1wwJzsKICAgIGlmICgxKSB7CiAgICAgICAgLyogZG8gYSBiaW5hcnkg c2VhcmNoIG9uIHRoZSBzb3J0ZWQga2FsbHN5bXNfYWRkcmVzc2VzIGFycmF5ICovCiAgICAgICAg bG93ID0gMDsKICAgICAgICBoaWdoID0gZ3AtPmthbGxzeW1zX251bV9zeW1zOwoKICAgICAgICB3 aGlsZSAoaGlnaC1sb3cgPiAxKSB7CiAgICAgICAgICAgIG1pZCA9IChsb3cgKyBoaWdoKSAvIDI7 CiAgICAgICAgICAgIGlmIChrZGJfcmRfZ3Vlc3RfYWRkcnRibChncCwgbWlkKSA8PSBhZGRyKSAK ICAgICAgICAgICAgICAgIGxvdyA9IG1pZDsKICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAg ICAgIGhpZ2ggPSBtaWQ7CiAgICAgICAgfQogICAgICAgIC8qIEdyYWIgbmFtZSAqLwogICAgICAg IGlmIChncC0+dG9rdGJsKSB7CiAgICAgICAgICAgIGludCBzeW1vZmYgPSBrZGJfZ2V0X2VsNV9z eW1vZmZzZXQoZ3AsbG93KTsKICAgICAgICAgICAga2RiX2V4cGFuZF9lbDVfc3ltKGdwLCBzeW1v ZmYsIG5hbWVidWYpOwogICAgICAgIH0gZWxzZQogICAgICAgICAgICBrZGJfZXhwYW5kX2VsNF9z eW0oZ3AsIGxvdywgbmFtZWJ1ZiwgTlVMTCk7CiAgICAgICAgKm9mZnNwID0gYWRkciAtIGtkYl9y ZF9ndWVzdF9hZGRydGJsKGdwLCBsb3cpOwogICAgICAgIHJldHVybiBuYW1lYnVmOwogICAgfQog ICAgcmV0dXJuICIgPz8/PyAiOwp9CgoKLyogCiAqIHNhdmUgZ3Vlc3QgKGRvbTAgYW5kIG90aGVy cykgc3ltYm9scyBpbmZvIDogZG9taWQgYW5kIGZvbGxvd2luZyBhZGRyZXNzZXM6CiAqICAgICAm a2FsbHN5bXNfbmFtZXMgJmthbGxzeW1zX2FkZHJlc3NlcyAma2FsbHN5bXNfbnVtX3N5bXMgXAog KiAgICAgJmthbGxzeW1zX3Rva2VuX3RhYmxlICZrYWxsc3ltc190b2tlbl9pbmRleAogKi8Kdm9p ZAprZGJfc2F2X2RvbV9zeW1pbmZvKGRvbWlkX3QgZG9taWQsIGxvbmcgbmFtZXNwLCBsb25nIGFk ZHJhcCwgbG9uZyBudW1wLAogICAgICAgICAgICAgICAgICAgIGxvbmcgdG9rdGJscCwgbG9uZyB0 b2tpZHhwKQp7CiAgICBpbnQgYnl0ZXM7CiAgICBsb25nIHZhbCA9IDA7ICAgIC8qIG11c3QgYmUg c2V0IHRvIHplcm8gZm9yIDMyIG9uIDY0IGNhc2VzICovCiAgICBzdHJ1Y3QgZ3N0X3N5bWluZm8g KmdwID0ga2RiX2dldF9zeW1pbmZvX3Nsb3QoKTsKCiAgICBpZiAoZ3AgPT0gTlVMTCkgewogICAg ICAgIGtkYnAoImtkYjprZGJfc2F2X2RvbV9zeW1pbmZvKCk6VGFibGUgZnVsbC4uIHN5bWJvbHMg bm90IHNhdmVkXG4iKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBtZW1zZXQoZ3AsIDAsIHNp emVvZigqZ3ApKTsKCiAgICBncC0+ZG9taWQgPSBkb21pZDsKICAgIGdwLT5iaXRuZXNzID0ga2Ri X2d1ZXN0X2JpdG5lc3MoZG9taWQpOwogICAgZ3AtPmFkZHJ0YmxwID0gKHZvaWQgKilhZGRyYXA7 CiAgICBncC0+a2FsbHN5bXNfbmFtZXMgPSAodTggKiluYW1lc3A7CiAgICBncC0+dG9rdGJsID0g KHU4ICopdG9rdGJscDsKICAgIGdwLT50b2tpZHh0YmwgPSAodTE2ICopdG9raWR4cDsKCiAgICBL REJHUCgiZG9taWQ6JXggYml0bmVzczokJWQgbnVtc3ltczokJWxkIGFycmF5cDolcFxuIiwgZG9t aWQsCiAgICAgICAgICBncC0+Yml0bmVzcywgZ3AtPmthbGxzeW1zX251bV9zeW1zLCBncC0+YWRk cnRibHApOwoKICAgIGJ5dGVzID0gZ3AtPmJpdG5lc3MvODsKICAgIGlmIChrZGJfcmVhZF9tZW0o bnVtcCwgKGtkYmJ5dF90ICopJnZhbCwgYnl0ZXMsIGRvbWlkKSAhPSBieXRlcykgewoKICAgICAg ICBrZGJwKCJVbmFibGUgdG8gcmVhZCBudW1iZXIgb2Ygc3ltYm9scyBmcm9tOiVseFxuIiwgbnVt cCk7CiAgICAgICAgbWVtc2V0KGdwLCAwLCBzaXplb2YoKmdwKSk7CiAgICAgICAgcmV0dXJuOwog ICAgfSBlbHNlCiAgICAgICAga2RicCgiTnVtYmVyIG9mIHN5bWJvbHM6JCVsZFxuIiwgdmFsKTsK CiAgICBncC0+a2FsbHN5bXNfbnVtX3N5bXMgPSB2YWw7CgogICAgYnl0ZXMgPSAoZ3AtPmJpdG5l c3MvOCkgKiBncC0+a2FsbHN5bXNfbnVtX3N5bXM7CiAgICBncC0+c3RleHQgPSBrZGJfZ3Vlc3Rf c3ltMmFkZHIoIl9zdGV4dCIsIGRvbWlkKTsKICAgIGdwLT5ldGV4dCA9IGtkYl9ndWVzdF9zeW0y YWRkcigiX2V0ZXh0IiwgZG9taWQpOwogICAgaWYgKCFncC0+c3RleHQgfHwgIWdwLT5ldGV4dCkK ICAgICAgICBrZGJwKCJXYXJuOiBDYW4ndCBmaW5kIHN0ZXh0L2V0ZXh0XG4iKTsKCiAgICBpZiAo Z3AtPnRva3RibCAmJiBncC0+dG9raWR4dGJsKSB7CiAgICAgICAgZ3AtPnNpbml0dGV4dCA9IGtk Yl9ndWVzdF9zeW0yYWRkcigiX3Npbml0dGV4dCIsIGRvbWlkKTsKICAgICAgICBncC0+ZWluaXR0 ZXh0ID0ga2RiX2d1ZXN0X3N5bTJhZGRyKCJfZWluaXR0ZXh0IiwgZG9taWQpOwogICAgICAgIGlm ICghZ3AtPnNpbml0dGV4dCB8fCAhZ3AtPmVpbml0dGV4dCkgewogICAgICAgICAgICBrZGJwKCJX YXJuOiBDYW4ndCBmaW5kIHNpbml0dGV4dC9laW5pdHRleHRcbiIpOwogICAgfSAKICAgIH0KICAg IEtEQkdQMSgic3R4dDolbHggZXR4dDolbHggc2l0eHQ6JWx4IGVpdHh0OiVseFxuIiwgZ3AtPnN0 ZXh0LCBncC0+ZXRleHQsCiAgICAgICAgICAgZ3AtPnNpbml0dGV4dCwgZ3AtPmVpbml0dGV4dCk7 CiAgICBrZGJwKCJTdWNjZXNmdWxseSBzYXZlZCBzeW1ib2wgaW5mb1xuIik7Cn0KCi8qCiAqIGdp dmVuIGEgc3ltYm9sIHN0cmluZyBmb3IgYSBndWVzdC9kb21pZCwgcmV0dXJuIGl0cyBhZGRyZXNz CiAqLwprZGJ2YV90CmtkYl9ndWVzdF9zeW0yYWRkcihjaGFyICpzeW1wLCBkb21pZF90IGRvbWlk KQp7CiAgICBjaGFyIG5hbWVidWZbS1NZTV9OQU1FX0xFTisxXTsKICAgIGludCBpLCBvZmY9MDsK ICAgIHN0cnVjdCBnc3Rfc3ltaW5mbyAqZ3AgPSBrZGJfZG9taWQyc3ltaW5mb3AoZG9taWQpOwoK ICAgIEtEQkdQKCJzeW0yYTogc3ltOiVzIGRvbWlkOiV4IG51bXN5bXM6JWxkXG4iLCBzeW1wLCBk b21pZCwKICAgICAgICAgIGdwID8gZ3AtPmthbGxzeW1zX251bV9zeW1zOiAtMSk7CgogICAgaWYg KCFncCkKICAgICAgICByZXR1cm4gMDsKCiAgICBpZiAoZ3AtPnRva3RibCA9PSAwIHx8IGdwLT50 b2tpZHh0YmwgPT0gMCkKICAgICAgICByZXR1cm4oa2RiX2V4cGFuZF9lbDRfc3ltKGdwLCBncC0+ a2FsbHN5bXNfbnVtX3N5bXMsIG5hbWVidWYsIHN5bXApKTsKCiAgICBmb3IgKGk9MDsgaSA8IGdw LT5rYWxsc3ltc19udW1fc3ltczsgaSsrKSB7CiAgICAgICAgb2ZmID0ga2RiX2V4cGFuZF9lbDVf c3ltKGdwLCBvZmYsIG5hbWVidWYpOwogICAgICAgIEtEQkdQMSgiaTolZCBuYW1lYnVmOiVzXG4i LCBpLCBuYW1lYnVmKTsKICAgICAgICBpZiAoc3RyY21wKG5hbWVidWYsIHN5bXApID09IDApIHsK ICAgICAgICAgICAgcmV0dXJuKGtkYl9yZF9ndWVzdF9hZGRydGJsKGdwLCBpKSk7CiAgICAgICAg fQogICAgfQogICAgS0RCR1AoInN5bTJhOmV4aXQ6bmEtZ2EtZGFcbiIpOwogICAgcmV0dXJuIDA7 Cn0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrZGIv TWFrZWZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY2NAAwMDAyNzU2ADAw MDI3NTYAMDAwMDAwMDAxMDIAMTE3NjU0NjU1NTYAMDEzMjI1ACAwAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbXJhdGhvcgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAABtcmF0aG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApvYmot eQkJKz0ga2RibWFpbi5vIGtkYl9jbWRzLm8ga2RiX2lvLm8gCgpzdWJkaXIteSArPSB4ODYgZ3Vl c3QKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== --MP_/hjZb_3K/+AywVJErRJV.V7. Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --MP_/hjZb_3K/+AywVJErRJV.V7.--