From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Real-To: From: Vyt To: mandrake-russian@linuxteam.iplabs.ru Subject: Re: [mdk-re] licq & socks5 again X-Mailer: KMail [version 1.1.99] Content-Type: Multipart/Mixed; charset=""; boundary="------------Boundary-00=_JSD0LALB7RG39HSCWRPO" References: <01021818323301.05673@vyt> <01021916114003.00598@serg.office.cint.ru> In-Reply-To: <01021916114003.00598@serg.office.cint.ru> MIME-Version: 1.0 Message-Id: <01021917335502.01200@vyt> Sender: mandrake-russian-admin@linuxteam.iplabs.ru Errors-To: mandrake-russian-admin@linuxteam.iplabs.ru X-BeenThere: mandrake-russian@linuxteam.iplabs.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: mandrake-russian@linuxteam.iplabs.ru List-Help: List-Post: List-Subscribe: , List-Id: Mandrake/RE discussion list List-Unsubscribe: , List-Archive: Date: Mon Feb 19 17:35:02 2001 X-Original-Date: Mon, 19 Feb 2001 17:33:55 +0300 Archived-At: List-Archive: --------------Boundary-00=_JSD0LALB7RG39HSCWRPO Content-Type: text/plain; charset="koi8r" Content-Transfer-Encoding: 8bit 19 Февраль 2001 16:09, Sergey написал: > Вск, 18 Фев 2001, Вы написали: > > Hello, All > > > > Не могу собрать licq (1.0.2) с поддержкой socks5. Я уже спрашивал, > > видимо, неточно :) > > После ./configure --prefix=/usr --with-socks5 --disable-openssl > > make ругается на socks.h: > > > > make all-recursive > > make[1]: Вход в каталог `/root/tmp/licq-1.0.2' > > Making all in share > > make[2]: Вход в каталог `/root/tmp/licq-1.0.2/share' > > make[2]: Цель `all' не требует выполнения команд. > > make[2]: Выход из каталог `/root/tmp/licq-1.0.2/share' > > Making all in src > > make[2]: Вход в каталог `/root/tmp/licq-1.0.2/src' > > c++ -DHAVE_CONFIG_H -I. -I. -I.. -Wall -I../include > > -DINSTALL_PREFIX=\"/usr\" -W > > no-implicit -fPIC -DPIC -D_REENTRANT -O2 -fno-exceptions -fno-check-new > > -c mai > > n.cpp > > In file included from main.cpp:15: > > /usr/include/socks.h:206: field `lastconnect' has incomplete type > > /usr/include/socks.h:223: `MAXHOSTNAMELEN' was not declared in this scope > > /usr/include/socks.h:224: field `log' has incomplete type > > /usr/include/socks.h:232: field `src' has incomplete type > > /usr/include/socks.h:233: field `dst' has incomplete type > > /usr/include/socks.h:234: field `packet' has incomplete type > > /usr/include/socks.h:252: type specifier omitted for parameter > > /usr/include/socks.h:252: parse error before `*' > > /usr/include/socks.h:253: type specifier omitted for parameter > > /usr/include/socks.h:254: type specifier omitted for parameter > > /usr/include/socks.h:254: parse error before `*' > > /usr/include/socks.h:255: type specifier omitted for parameter > > /usr/include/socks.h:255: parse error before `*' > > /usr/include/socks.h:256: type specifier omitted for parameter > > /usr/include/socks.h:256: parse error before `)' > > /usr/include/socks.h:257: type specifier omitted for parameter > > /usr/include/socks.h:257: parse error before `*' > > /usr/include/socks.h:260: type specifier omitted for parameter > > /usr/include/socks.h:413: parse error before `new' > > make[2]: *** [main.o] Ошибка 1 > > make[2]: Выход из каталог `/root/tmp/licq-1.0.2/src' > > make[1]: *** [all-recursive] Ошибка 1 > > make[1]: Выход из каталог `/root/tmp/licq-1.0.2' > > make: *** [all-recursive-am] Ошибка 2 > > > > Есть мысль, что это от несовместимости gcc. Поставил compat-gcc (и все > > остальные compat-xxx, похожие на компиляторы :). Если мысль верна, как > > заставить make компилировать compat-gcc'ом? > > > > > > -- > > Regards, Vyt > > mailto:vyt_o@mail.ru > > > > _______________________________________________ > > Mandrake-russian mailing list > > Mandrake-russian@linuxteam.iplabs.ru > > http://linuxteam.iplabs.ru/mailman/listinfo/mandrake-russian > > Или ошибка в файле /usr/include/socks.h - возможно где-то > синтаксическая ошибка (не хватает или лишняя скобка, точка с запятой...) > хотя это мало вероятно, но проверить можно. > Ещё может быть переопределение headers . socks.h на redhat 62 понимался великолепно (версию gcc не помню и посмотреть теперь негде ;), если интересно, посмотрите в аттаче > > -- > System Administrator > Ivanov Sergey mailto:serg@cint.ru > > _______________________________________________ > Mandrake-russian mailing list > Mandrake-russian@linuxteam.iplabs.ru > http://linuxteam.iplabs.ru/mailman/listinfo/mandrake-russian -- Regards, Vyt mailto:vyt_o@mail.ru --------------Boundary-00=_JSD0LALB7RG39HSCWRPO Content-Type: text/english; name="socks.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="socks.h" LyoKICogQ29weXJpZ2h0IChjKSAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwCiAqICAgICAgSW5mZXJu byBOZXR0dmVyayBBL1MsIE5vcndheS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJlZGlz dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0 aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICogMS4gVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCiAqICAgIGRp c2NsYWltZXIgbXVzdCBhcHBlYXIgaW4gYWxsIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIGRlcml2 YXRpdmUgd29ya3MKICogICAgb3IgbW9kaWZpZWQgdmVyc2lvbnMsIGFuZCBhbnkgcG9ydGlvbnMg dGhlcmVvZiwgYXN3ZWxsIGFzIGluIGFsbAogKiAgICBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24u CiAqIDIuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1 c2Ugb2YgdGhpcyBzb2Z0d2FyZQogKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tu b3dsZWRnZW1lbnQ6CiAqICAgICAgVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVs b3BlZCBieQogKiAgICAgIEluZmVybm8gTmV0dHZlcmsgQS9TLCBOb3J3YXkuCiAqIDMuIFRoZSBu YW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw cm9kdWN0cwogKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF RCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKICogSU1QTElFRCBX QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS UkFOVElFUwogKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgogKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCiAqIElOQ0lERU5UQUwsIFNQRUNJ QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAog KiBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW SUNFUzsgTE9TUyBPRiBVU0UsCiAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogKiBUSEVPUlkgT0YgTElBQklMSVRZ LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAqIChJTkNM VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg VEhFIFVTRSBPRgogKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogKgogKiBJbmZlcm5vIE5ldHR2ZXJrIEEvUyByZXF1ZXN0 cyB1c2VycyBvZiB0aGlzIHNvZnR3YXJlIHRvIHJldHVybiB0bwogKgogKiAgU29mdHdhcmUgRGlz dHJpYnV0aW9uIENvb3JkaW5hdG9yICBvciAgc2RjQGluZXQubm8KICogIEluZmVybm8gTmV0dHZl cmsgQS9TCiAqICBPc2xvIFJlc2VhcmNoIFBhcmsKICogIEdhdXN0YWRhbOllbiAyMQogKiAgTi0w MzQ5IE9zbG8KICogIE5vcndheQogKgogKiBhbnkgaW1wcm92ZW1lbnRzIG9yIGV4dGVuc2lvbnMg dGhhdCB0aGV5IG1ha2UgYW5kIGdyYW50IEluZmVybm8gTmV0dHZlcmsgQS9TCiAqIHRoZSByaWdo dHMgdG8gcmVkaXN0cmlidXRlIHRoZXNlIGNoYW5nZXMuCiAqCiAqLwoKLyogJElkOiBzb2Nrcy5o LHYgMS4xNjEgMjAwMC8wOC8wOCAxMjo0OToxMCBtaWNoYWVscyBFeHAgJCAqLwoKI2lmbmRlZiBf U09DS1NfSF8KI2RlZmluZSBfU09DS1NfSF8KI2VuZGlmICAvKiAhIF9TT0NLU19IXyAqLwoKI2lm ZGVmIGxpbnQKZXh0ZXJuIGNvbnN0IGludCBsaW50bm9sb29wX3NvY2tzX2g7CiNlbHNlCiNkZWZp bmUgbGludG5vbG9vcF9zb2Nrc19oIDAKI2VuZGlmCgojaWZuZGVmIEhBVkVfT1NGX09MRFNUWUxF CiNkZWZpbmUgSEFWRV9PU0ZfT0xEU1RZTEUgMAojZW5kaWYgIC8qICFIQVZFX09TRl9PTERTVFlM RSAqLwoKI2lmIFNPQ0tTTElCUkFSWV9EWU5BTUlDCgojaWZkZWYgYWNjZXB0CiN1bmRlZiBhY2Nl cHQKI2VuZGlmICAvKiBhY2NlcHQgKi8KI2lmIEhBVkVfRVhUUkFfT1NGX1NZTUJPTFMKI2RlZmlu ZSBhY2NlcHQocywgYWRkciwgYWRkcmxlbikJCQlzeXNfRWFjY2VwdChzLCBhZGRyLCBhZGRybGVu KQojZWxzZQojZGVmaW5lIGFjY2VwdChzLCBhZGRyLCBhZGRybGVuKQkJCXN5c19hY2NlcHQocywg YWRkciwgYWRkcmxlbikKI2VuZGlmICAvKiBIQVZFX0VYVFJBX09TRl9TWU1CT0xTICovCgojaWZk ZWYgYmluZAojdW5kZWYgYmluZAojZW5kaWYgIC8qIGJpbmQgKi8KI2RlZmluZSBiaW5kKHMsIG5h bWUsIG5hbWVsZW4pCQkJc3lzX2JpbmQocywgbmFtZSwgbmFtZWxlbikKCiNpZmRlZiBiaW5kcmVz dnBvcnQKI3VuZGVmIGJpbmRyZXN2cG9ydAojZW5kaWYgIC8qIGJpbmRyZXN2cG9ydCAqLwojZGVm aW5lIGJpbmRyZXN2cG9ydChzZCwgc2luKQkJCQlzeXNfYmluZHJlc3Zwb3J0KHNkLCBzaW4pCgoj aWZkZWYgY29ubmVjdAojdW5kZWYgY29ubmVjdAojZW5kaWYgIC8qIGNvbm5lY3QgKi8KI2RlZmlu ZSBjb25uZWN0KHMsIG5hbWUsIG5hbWVsZW4pCQlzeXNfY29ubmVjdChzLCBuYW1lLCBuYW1lbGVu KQoKI2lmZGVmIGdldGhvc3RieW5hbWUKI3VuZGVmIGdldGhvc3RieW5hbWUKI2VuZGlmICAvKiBn ZXRob3N0YnluYW1lICovCiNpZiBIQVZFX0dFVEhPU1RCWU5BTUUyCi8qCiAqIGEgbGl0dGxlIHRy aWNreSAuLi4gd2UgbmVlZCBpdCB0byBiZSBhdCB0aGUgYm90dG9tIG9mIHRoZSBzdGFjaywKICog bGlrZSBhIHN5c2NhbGwuCiovCiNkZWZpbmUgZ2V0aG9zdGJ5bmFtZShuYW1lKQkJCQlzeXNfZ2V0 aG9zdGJ5bmFtZTIobmFtZSwgQUZfSU5FVCkKI2Vsc2UKI2RlZmluZSBnZXRob3N0YnluYW1lKG5h bWUpCQkJCXN5c19nZXRob3N0YnluYW1lKG5hbWUpCiNlbmRpZgoKI2lmZGVmIGdldGhvc3RieW5h bWUyCiN1bmRlZiBnZXRob3N0YnluYW1lMgojZW5kaWYgIC8qIGdldGhvc3RieW5hbWUyICovCiNk ZWZpbmUgZ2V0aG9zdGJ5bmFtZTIobmFtZSwgYWYpCQkJc3lzX2dldGhvc3RieW5hbWUyKG5hbWUs IGFmKQoKI2lmZGVmIGdldHBlZXJuYW1lCiN1bmRlZiBnZXRwZWVybmFtZQojZW5kaWYgIC8qIGdl dHBlZXJuYW1lICovCiNpZiBIQVZFX0VYVFJBX09TRl9TWU1CT0xTCiNkZWZpbmUgZ2V0cGVlcm5h bWUocywgbmFtZSwgbmFtZWxlbikJc3lzX0VnZXRwZWVybmFtZShzLCBuYW1lLCBuYW1lbGVuKQoj ZWxzZQojZGVmaW5lIGdldHBlZXJuYW1lKHMsIG5hbWUsIG5hbWVsZW4pCXN5c19nZXRwZWVybmFt ZShzLCBuYW1lLCBuYW1lbGVuKQojZW5kaWYgIC8qIEhBVkVfRVhUUkFfT1NGX1NZTUJPTFMgKi8K CiNpZmRlZiBnZXRzb2NrbmFtZQojdW5kZWYgZ2V0c29ja25hbWUKI2VuZGlmICAvKiBnZXRzb2Nr bmFtZSAqLwojaWYgSEFWRV9FWFRSQV9PU0ZfU1lNQk9MUwojZGVmaW5lIGdldHNvY2tuYW1lKHMs IG5hbWUsIG5hbWVsZW4pCXN5c19FZ2V0c29ja25hbWUocywgbmFtZSwgbmFtZWxlbikKI2Vsc2UK I2RlZmluZSBnZXRzb2NrbmFtZShzLCBuYW1lLCBuYW1lbGVuKQlzeXNfZ2V0c29ja25hbWUocywg bmFtZSwgbmFtZWxlbikKI2VuZGlmICAvKiBIQVZFX0VYVFJBX09TRl9TWU1CT0xTICovCgojaWZk ZWYgcmVhZAojdW5kZWYgcmVhZAojZW5kaWYgIC8qIHJlYWQgKi8KI2RlZmluZSByZWFkKGQsIGJ1 ZiwgbmJ5dGVzKQkJCQlzeXNfcmVhZChkLCBidWYsIG5ieXRlcykKCiNpZmRlZiByZWFkdgojdW5k ZWYgcmVhZHYKI2VuZGlmICAvKiByZWFkdiAqLwojaWYgSEFWRV9FWFRSQV9PU0ZfU1lNQk9MUwoj ZGVmaW5lIHJlYWR2KGQsIGlvdiwgaW92Y250KQkJCQlzeXNfRXJlYWR2KGQsIGlvdiwgaW92Y250 KQojZWxzZQojZGVmaW5lIHJlYWR2KGQsIGlvdiwgaW92Y250KQkJCQlzeXNfcmVhZHYoZCwgaW92 LCBpb3ZjbnQpCiNlbmRpZiAgLyogSEFWRV9FWFRSQV9PU0ZfU1lNQk9MUyAqLwoKI2lmZGVmIHJl Y3YKI3VuZGVmIHJlY3YKI2VuZGlmICAvKiByZWN2ICovCiNkZWZpbmUgcmVjdihzLCBtc2csIGxl biwgZmxhZ3MpCQkJc3lzX3JlY3YocywgbXNnLCBsZW4sIGZsYWdzKQoKI2lmZGVmIHJlY3Zmcm9t CiN1bmRlZiByZWN2ZnJvbQojZW5kaWYgIC8qIHJlY3Zmcm9tICovCiNpZiBIQVZFX0VYVFJBX09T Rl9TWU1CT0xTCiNkZWZpbmUgcmVjdmZyb20ocywgYnVmLCBsZW4sIGZsYWdzLCBmcm9tLCBmcm9t bGVuKQlcCgkJICBzeXNfRXJlY3Zmcm9tKHMsIGJ1ZiwgbGVuLCBmbGFncywgZnJvbSwgZnJvbWxl bikKI2Vsc2UKI2RlZmluZSByZWN2ZnJvbShzLCBidWYsIGxlbiwgZmxhZ3MsIGZyb20sIGZyb21s ZW4pCVwKCQkgIHN5c19yZWN2ZnJvbShzLCBidWYsIGxlbiwgZmxhZ3MsIGZyb20sIGZyb21sZW4p CgojZW5kaWYgIC8qIEhBVkVfRVhUUkFfT1NGX1NZTUJPTFMgKi8KCiNpZmRlZiByZWN2bXNnCiN1 bmRlZiByZWN2bXNnCiNlbmRpZiAgLyogcmVjdm1zZyAqLwojaWYgSEFWRV9FWFRSQV9PU0ZfU1lN Qk9MUwojZGVmaW5lIHJlY3Ztc2cocywgbXNnLCBmbGFncykJCQlzeXNfRXJlY3Ztc2cocywgbXNn LCBmbGFncykKI2Vsc2UKI2RlZmluZSByZWN2bXNnKHMsIG1zZywgZmxhZ3MpCQkJc3lzX3JlY3Zt c2cocywgbXNnLCBmbGFncykKI2VuZGlmICAvKiBIQVZFX0VYVFJBX09TRl9TWU1CT0xTICovCgoj aWZkZWYgcnJlc3Zwb3J0CiN1bmRlZiBycmVzdnBvcnQKI2VuZGlmICAvKiBycmVzdnBvcnQgKi8K I2RlZmluZSBycmVzdnBvcnQocG9ydCkJCQkJCQlzeXNfcnJlc3Zwb3J0KHBvcnQpCgojaWZkZWYg c2VuZHRvCiN1bmRlZiBzZW5kdG8KI2VuZGlmICAvKiBzZW5kdG8gKi8KI2RlZmluZSBzZW5kdG8o cywgbXNnLCBsZW4sIGZsYWdzLCB0bywgdG9sZW4pCVwKCQkgIHN5c19zZW5kdG8ocywgbXNnLCBs ZW4sIGZsYWdzLCB0bywgdG9sZW4pCgojaWZkZWYgd3JpdGUKI3VuZGVmIHdyaXRlCiNlbmRpZiAg Lyogd3JpdGUgKi8KI2RlZmluZSB3cml0ZShkLCBidWYsIG5ieXRlcykJCQkJc3lzX3dyaXRlKGQs IGJ1ZiwgbmJ5dGVzKQoKI2lmZGVmIHdyaXRldgojdW5kZWYgd3JpdGV2CiNlbmRpZiAgLyogd3Jp dGV2ICovCiNpZiBIQVZFX0VYVFJBX09TRl9TWU1CT0xTCiNkZWZpbmUgd3JpdGV2KGQsIGlvdiwg aW92Y250KQkJCXN5c19Fd3JpdGV2KGQsIGlvdiwgaW92Y250KQojZWxzZQojZGVmaW5lIHdyaXRl dihkLCBpb3YsIGlvdmNudCkJCQlzeXNfd3JpdGV2KGQsIGlvdiwgaW92Y250KQojZW5kaWYgIC8q IEhBVkVfRVhUUkFfT1NGX1NZTUJPTFMgKi8KCiNpZmRlZiBzZW5kCiN1bmRlZiBzZW5kCiNlbmRp ZiAgLyogc2VuZCAqLwojZGVmaW5lIHNlbmQocywgbXNnLCBsZW4sIGZsYWdzKQkJCXN5c19zZW5k KHMsIG1zZywgbGVuLCBmbGFncykKCiNpZmRlZiBzZW5kbXNnCiN1bmRlZiBzZW5kbXNnCiNlbmRp ZiAgLyogc2VuZG1zZyAqLwojaWYgSEFWRV9FWFRSQV9PU0ZfU1lNQk9MUwojZGVmaW5lIHNlbmRt c2cocywgbXNnLCBmbGFncykJCQlzeXNfRXNlbmRtc2cocywgbXNnLCBmbGFncykKI2Vsc2UKI2Rl ZmluZSBzZW5kbXNnKHMsIG1zZywgZmxhZ3MpCQkJc3lzX3NlbmRtc2cocywgbXNnLCBmbGFncykK I2VuZGlmICAvKiBIQVZFX0VYVFJBX09TRl9TWU1CT0xTICovCgojZW5kaWYgLyogU09DS1NMSUJS QVJZX0RZTkFNSUMgKi8KCnN0cnVjdCBjb25maWdzdGF0ZV90IHsKCXVuc2lnbmVkCQkJCWluaXQ6 MTsKCXVuc2lnbmVkCQkJCTowOwoJc3RydWN0IHNvY2thZGRyCWxhc3Rjb25uZWN0OwkJLyogYWRk cmVzcyB3ZSBsYXN0IGNvbm5lY3RlZCB0by4JCSovCglwaWRfdAkJCQkJcGlkOwoJdW5zaWduZWQJ CQkJOjA7Cn07CgpzdHJ1Y3Qgb3B0aW9uX3QgewoJaW50CQkJCQlkZWJ1ZzsKCWNoYXIJCQkJCSpj b25maWdmaWxlOwkvKiBuYW1lIG9mIGN1cnJlbnQgY29uZmlnZmlsZS4JCQkJKi8KCXVuc2lnbmVk CQkJCWxidWY6MTsJCQkvKiBsaW5lYnVmZmVyZWQgb3V0cHV0PwkJCQkJCQkqLwoJdW5zaWduZWQJ CQkJOjA7Cn07CgoKCnN0cnVjdCBjb25maWdfdCB7CglwaWRfdAkJCQkJCQkJY29ubmVjdGNoaWxk OwkJCQkvKiBjb25uZWN0IHByb2Nlc3MuCQkqLwoJaW50CQkJCQkJCQljb25uZWN0X3M7CQkJCQkv KiBzb2NrZXQgdG8gY2hpbGQuCQkqLwoJY2hhcgkJCQkJCQkJZG9tYWluW01BWEhPU1ROQU1FTEVO XTsgLyogbG9jYWxkb21haW4uCQkJKi8KCXN0cnVjdCBsb2d0eXBlX3QJCQkJbG9nOwkJCQkJCQkv KiB3aGVyZSB0byBsb2cuCQkJKi8KCXN0cnVjdCBvcHRpb25fdAkJCQlvcHRpb247CQkJCQkJLyog bWlzYy4gb3B0aW9ucy4JCQkqLwoJc3RydWN0IGNvbmZpZ3N0YXRlX3QJCQlzdGF0ZTsKCWludAkJ CQkJCQkJcmVzb2x2ZXByb3RvY29sOwkJCS8qIHJlc29sdmVwcm90b2NvbC4JCSovCglzdHJ1Y3Qg cm91dGVfdAkJCQkJKnJvdXRlOwkJCQkJCS8qIGxpbmtlZCBsaXN0IG9mIHJvdXRlcyovCn07Cgpz dHJ1Y3QgY2hpbGRwYWNrZXRfdCB7CiAgIHN0cnVjdCBzb2Nrc2hvc3RfdCAgIHNyYzsKICAgc3Ry dWN0IHNvY2tzaG9zdF90ICAgZHN0OwogICBzdHJ1Y3Qgc29ja3NfdCAgICAgICBwYWNrZXQ7Cn07 CgoKX19CRUdJTl9ERUNMUwoKLyoKICogbGlic29ja3MgZnVuY3Rpb24gZGVjbGFyYXRpb25zCiAq LwoKdm9pZApjbGllbnRpbml0IF9fUCgodm9pZCkpOwovKgogKiBpbml0aWFsaXNlcyBjbGllbnRz dGF0ZSwgcmVhZHMgY29uZmlnZmlsZSwgZXRjLgogKi8KCgojaWYgIUhBVkVfT1NGX09MRFNUWUxF CmludCBSYWNjZXB0IF9fUCgoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopKTsK aW50IFJjb25uZWN0IF9fUCgoaW50LCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90 KSk7CmludCBSZ2V0c29ja25hbWUgX19QKChpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVu X3QgKikpOwppbnQgUmdldHBlZXJuYW1lIF9fUCgoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29j a2xlbl90ICopKTsKc3NpemVfdCBSc2VuZHRvIF9fUCgoaW50IHMsIGNvbnN0IHZvaWQgKm1zZywg c2l6ZV90IGxlbiwgaW50IGZsYWdzLCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKnRvLCBzb2NrbGVu X3QgdG9sZW4pKTsKc3NpemVfdCBScmVjdmZyb20gX19QKChpbnQgcywgdm9pZCAqYnVmLCBzaXpl X3QgbGVuLCBpbnQgZmxhZ3MsIHN0cnVjdCBzb2NrYWRkciAqIGZyb20sIHNvY2tsZW5fdCAqZnJv bWxlbikpOwpzc2l6ZV90IFJzZW5kbXNnIF9fUCgoaW50IHMsIGNvbnN0IHN0cnVjdCBtc2doZHIg Km1zZywgaW50IGZsYWdzKSk7CnNzaXplX3QgUnJlY3Ztc2cgX19QKChpbnQgcywgc3RydWN0IG1z Z2hkciAqbXNnLCBpbnQgZmxhZ3MpKTsKaW50IFJiaW5kIF9fUCgoaW50LCBjb25zdCBzdHJ1Y3Qg c29ja2FkZHIgKiwgc29ja2xlbl90KSk7CiNlbmRpZiAgLyogIUhBVkVfT1NGX09MRFNUWUxFICov CgppbnQgUmJpbmRyZXN2cG9ydCBfX1AoKGludCwgc3RydWN0IHNvY2thZGRyX2luICopKTsKaW50 IFJycmVzdnBvcnQgX19QKChpbnQgKikpOwpzdHJ1Y3QgaG9zdGVudCAqUmdldGhvc3RieW5hbWUg X19QKChjb25zdCBjaGFyICopKTsKc3RydWN0IGhvc3RlbnQgKlJnZXRob3N0YnluYW1lMiBfX1Ao KGNvbnN0IGNoYXIgKiwgaW50IGFmKSk7CnNzaXplX3QgUndyaXRlIF9fUCgoaW50IGQsIGNvbnN0 IHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlcykpOwpzc2l6ZV90IFJ3cml0ZXYgX19QKChpbnQgZCwg Y29uc3Qgc3RydWN0IGlvdmVjICppb3YsIGludCBpb3ZjbnQpKTsKc3NpemVfdCBSc2VuZCBfX1Ao KGludCBzLCBjb25zdCB2b2lkICptc2csIHNpemVfdCBsZW4sIGludCBmbGFncykpOwpzc2l6ZV90 IFJyZWFkIF9fUCgoaW50IGQsIHZvaWQgKmJ1Ziwgc2l6ZV90IG5ieXRlcykpOwpzc2l6ZV90IFJy ZWFkdiBfX1AoKGludCBkLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGlvdmNudCkpOwpz c2l6ZV90IFJyZWN2IF9fUCgoaW50IHMsIHZvaWQgKm1zZywgc2l6ZV90IGxlbiwgaW50IGZsYWdz KSk7CgppbnQgU09DS1Npbml0IF9fUCgoY2hhciAqKSk7CmludCBSbGlzdGVuIF9fUCgoaW50LCBp bnQpKTsKaW50IFJzZWxlY3QgX19QKChpbnQsIGZkX3NldCAqLCBmZF9zZXQgKiwgZmRfc2V0ICos IHN0cnVjdCB0aW1ldmFsICopKTsKLyoKICogdW51c2VkIGZ1bmN0aW9ucyBuZWVkZWQgdG8gY29t cGlsZSBwcm9ncmFtcyB3aXRoIHN1cHBvcnQgZm9yIG90aGVyCiAqIHNvY2tzIGltcGxlbWVudGF0 aW9ucy4KICovCgoKaW50CnVkcHNldHVwIF9fUCgoaW50IHMsIGNvbnN0IHN0cnVjdCBzb2NrYWRk ciAqdG8sIGludCB0eXBlKSk7Ci8qCiAqIHNldHMgdXAgdWRwIHJlbGF5aW5nIGJldHdlZW4gYWRk cmVzcyBvZiAicyIgYW5kICJ0byIgYnkgY29ubmVjdGluZwogKiB0byBzb2Nrc3NlcnZlci4KICog SWYgcmVsYXlpbmcgaXMgYWxyZWFkeSBzZXQgdXAgdGhlIGZ1bmN0aW9uIHJldHVybnMgd2l0aCBz dWNjZXNzLgogKiBUeXBlIGlzIHRoZSB0eXBlIG9mIGNvbm5lY3Rpb24gc2V0dXAsIFNPQ0tTX1NF TkQgb3IgU09DS1NfUkVDVi4KICogQXQgdGhlIG1vbWVudCBvbmx5IFNPQ0tTX1NFTkQgaXMgc3Vw cG9ydGVkLgogKiBSZXR1cm5zOgogKgkJT24gc3VjY2VzczogMAogKgkJT24gZmFpbHVyZTogLTEK ICovCgoKaW50Cm5lZ290aWF0ZV9tZXRob2QgX19QKChpbnQgcywgc3RydWN0IHNvY2tzX3QgKnBh Y2tldCkpOwovKgogKiBOZWdvdGlhdGVzIGEgbWV0aG9kIHRvIGJlIHVzZWQgd2hlbiB0YWxraW5n IHdpdGggdGhlIHNlcnZlciBjb25uZWN0ZWQKICogdG8gInMiLiAgInBhY2tldCIgaXMgdGhlIHBh Y2tldCB0aGF0IHdpbGwgbGF0ZXIgYmUgc2VudCB0byBzZXJ2ZXIsCiAqIG9ubHkgdGhlICJhdXRo IiBlbGVtZW50IGluIGl0IHdpbGwgYmUgc2V0IGJ1dCBvdGhlciBlbGVtZW50cyBhcmUgbmVlZGVk CiAqIHRvby4KICogUmV0dXJuczoKICoJCU9uIHN1Y2Nlc3M6IDAKICoJCU9uIGZhaWx1cmU6IC0x CiAqLwoKCmludApzb2Nrc19zZW5kcmVxdWVzdCBfX1AoKGludCBzLCBjb25zdCBzdHJ1Y3QgcmVx dWVzdF90ICpyZXF1ZXN0KSk7Ci8qCiAqIFNlbmRzIHRoZSByZXF1ZXN0ICJyZXF1ZXN0IiB0byB0 aGUgc29ja3NzZXJ2ZXIgY29ubmVjdGVkIHRvICJzIi4KICogUmV0dXJuczoKICoJCU9uIHN1Y2Nl c3M6IDAKICoJCU9uIGZhaWx1cmU6IC0xCiAqLwoKaW50CnNvY2tzX3JlY3ZyZXNwb25zZSBfX1Ao KGludCBzLCBzdHJ1Y3QgcmVzcG9uc2VfdCAqcmVzcG9uc2UsIGludCB2ZXJzaW9uKSk7Ci8qCiAq IFJlY2VpdmVzIGEgc29ja3MgcmVzcG9uc2UgZnJvbSB0aGUgInMiLiAgInJlc3BvbnNlIiBpcyBm aWxsZWQgaW4gd2l0aAogKiB0aGUgZGF0YSByZWNlaXZlZC4KICogInZlcnNpb24iIGlzIHRoZSBw cm90b2NvbHZlcnNpb24gbmVnb3RpYXRlZC4KICogUmV0dXJuczoKICoJCU9uIHN1Y2Nlc3M6IDAK ICoJCU9uIGZhaWx1cmU6IC0xCiAqLwoKCmludApzb2Nrc19uZWdvdGlhdGUgX19QKChpbnQgcywg aW50IGNvbnRyb2wsIHN0cnVjdCBzb2Nrc190ICpwYWNrZXQsCgkJCQkJCQlzdHJ1Y3Qgcm91dGVf dCAqcm91dGUpKTsKLyoKICogInMiIGlzIHRoZSBzb2NrZXQgZGF0YSB3aWxsIGZsb3cgb3Zlci4K ICogImNvbnRyb2wiIGlzIHRoZSBjb250cm9sIGNvbm5lY3Rpb24gdG8gdGhlIHNvY2tzIHNlcnZl ci4KICogInBhY2tldCIgaXMgYSBzb2NrcyBwYWNrZXQgY29udGFpbmluZyB0aGUgcmVxdWVzdC4K ICoJInJvdXRlIiBpcyB0aGUgY29ubmVjdGVkIHJvdXRlLgogKiBOZWdvdGlhdGVzIG1ldGhvZCBh bmQgZmlsbHMgdGhlIHJlc3BvbnNlIHRvIHRoZSByZXF1ZXN0IGludG8gcGFja2V0LT5yZXMuCiAq IFJldHVybnM6CiAqCQlPbiBzdWNjZXNzOiAwIChzZXJ2ZXIgcmVwbGllZCB0byBvdXIgcmVxdWVz dCkuCiAqCQlPbiBmYWlsdXJlOiAtMS4KICovCgoKCnN0cnVjdCByb3V0ZV90ICoKc29ja3NfbmJj b25uZWN0cm91dGUgX19QKChpbnQgcywgaW50IGNvbnRyb2wsIHN0cnVjdCBzb2Nrc190ICpwYWNr ZXQsCgkJCQkJCQkJICBjb25zdCBzdHJ1Y3Qgc29ja3Nob3N0X3QgKnNyYywKCQkJCQkJCQkgIGNv bnN0IHN0cnVjdCBzb2Nrc2hvc3RfdCAqZHN0KSk7Ci8qCiAqIFRoZSBub24tYmxvY2tpbmcgdmVy c2lvbiBvZiBzb2Nrc19jb25uZWN0cm91dGUoKSwgb25seSB1c2VkIGJ5IGNsaWVudC4KICogVGFr ZXMgb25lIGFkZGl0aW9uYWwgYXJndW1lbnQsICJzIiwgd2hpY2ggaXMgdGhlIHNvY2tldCB0byBj b25uZWN0CiAqIGFuZCBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgYXMgImNvbnRyb2wiIChtc3By b3h5IGNhc2UpLgogKi8KCnZvaWQKc29ja3NfYmFkcm91dGUgX19QKChzdHJ1Y3Qgcm91dGVfdCAq cm91dGUpKTsKLyoKICogTWFya3Mgcm91dGUgInJvdXRlIiBhcyBiYWQuCiAqLwoKaW50CnJlY3Zf c29ja3Nob3N0IF9fUCgoaW50IHMsIHN0cnVjdCBzb2Nrc2hvc3RfdCAqaG9zdCwgaW50IHZlcnNp b24sCgkJCQkJCSAgc3RydWN0IGF1dGhtZXRob2RfdCAqYXV0aCkpOwovKgogKiBGaWxscyAiaG9z dCIgYmFzZWQgb24gZGF0YSByZWFkIGZyb20gInMiLiAgInZlcnNpb24iIGlzIHRoZSB2ZXJzaW9u CiAqIHRoZSByZW1vdGUgcGVlciBpcyBleHBlY3RlZCB0byBzZW5kIGRhdGEgaW4uCiAqCiAqIFJl dHVybnM6CiAqCQlPbiBzdWNjZXNzOiAwCiAqCQlPbiBmYWlsdXJlOiAtMQogKi8KCgoJLyoKCSAq ICBNaXNjLiBmdW5jdGlvbnMgdG8gaGVscCBrZWVwIHRyYWNrIG9mIG91ciBjb25uZWN0aW9uKHMp IHRvIHRoZSBzZXJ2ZXIuCgkgKi8KCnN0cnVjdCBzb2Nrc2ZkX3QgKgpzb2Nrc19hZGRhZGRyIF9f UCgodW5zaWduZWQgaW50IGNsaWVudGZkLCBzdHJ1Y3Qgc29ja3NmZF90ICpzb2Nrc2FkZHJlc3Mp KTsKLyoKICogImNsaWVudGZkIiBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHN0cnVjdHVyZSAic29j a3NmZCIuCiAqIFRoZSBmdW5jdGlvbiBkdXBsaWNhdGVzIGFsbCBhcmd1bWVudHMgaW4gaXQncyBv d24gZm9ybSBhbmQgZG9lcwogKiBub3QgYWNjZXNzIHRoZSBtZW1vcnkgcmVmZXJlbmNlZCBieSB0 aGVtIGFmdGVyd2FyZHMuCiAqCiAqIFRoZSBmdW5jdGlvbiBjaGVja3MgdGhlIHN0YXRlIG9mIGFs bCBmaWxlZGVzY3JpcHRvcnMgb24gZWFjaCBjYWxsIGFuZAogKiByZW1vdmVzIHRob3NlIHRoYXQg YXJlIG5vIGxvbmdlciBvcGVuLgogKgogKiBSZXR1cm5zOgogKgkJT24gc3VjY2VzczogcG9pbnRl ciB0byB0aGUgYWRkZWQgc29ja3NmZF90IHN0cnVjdHVyZS4KICoJCU9uIGZhaWx1cmU6IGV4aXRz LiAgKG1lbW9yeSBleGhhdXN0ZWQgYW5kIHByb2Nlc3MgZ3JldyBkZXNjcmlwdG9yIHNpemUuKQog KgogKi8KCnN0cnVjdCBzb2Nrc2ZkX3QgKgpzb2Nrc19nZXRhZGRyIF9fUCgodW5zaWduZWQgaW50 IGZkKSk7Ci8qCiAqIFJldHVybnM6CiAqCQlPbiBzdWNjZXNzOiAgdGhlIHNvY2tldGFkZHJlc3Mg YXNzb2NpYXRlZCB3aXRoIGZpbGVkZXNjcmlwdG9yICJmZCIuCiAqCQlPbiBmYWlsdXJlOgkgTlVM TC4gIChubyBzb2NrZXRhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCAiZmQiKS4KICovCgoKdm9pZApz b2Nrc19ybWFkZHIgX19QKCh1bnNpZ25lZCBpbnQgcykpOwovKgogKiByZW1vdmVzIHRoZSBhc3Nv Y2lhdGlvbiBmb3IgdGhlIHNvY2tldCAicyIsIGFsc28gY2xvc2VzIHRoZSBzZXJ2ZXIKICogY29u bmVjdGlvbi4gIElmICJzIiBpcyBub3QgcmVnaXN0ZXJlZCB0aGUgcmVxdWVzdCBpcyBpZ25vcmVk LgogKi8KCnN0cnVjdCBzb2Nrc2ZkX3QgKgpzb2Nrc2ZkZHVwIF9fUCgoY29uc3Qgc3RydWN0IHNv Y2tzZmRfdCAqb2xkLCBzdHJ1Y3Qgc29ja3NmZF90ICpuZXcpKTsKLyoKICogRHVwbGljYXRlcyAi b2xkIiwgaW4gIm5ldyIuCiAqIFJldHVybnM6CiAqCQlPbiBzdWNjZXNzOiAibmV3Ii4KICoJCU9u IGZhaWx1cmU6IE5VTEwgKHJlc291cmNlIHNob3J0YWdlKS4KICovCgoKaW50CnNvY2tzX2FkZHJj b250cm9sIF9fUCgoY29uc3Qgc3RydWN0IHNvY2thZGRyICpsb2NhbCwKCQkJCQkJCSAgY29uc3Qg c3RydWN0IHNvY2thZGRyICpyZW1vdGUpKTsKLyoKICogR29lcyB0aHJvdWdoIGFsbCBhZGRyZXNz ZXMgcmVnaXN0ZXJlZCBhbmQgdHJpZXMgdG8gZmluZCBvbmUgd2hlcmUKICogdGhlIGNvbnRyb2wg c29ja2V0IGhhcyBhIGxvY2FsIGFkZHJlc3Mgb2YgImxvY2FsIiBhbmQgcGVlciBhZGRyZXNzCiAq IG9mICJyZW1vdGUiLiAgSWYgZWl0aGVyIG9mICJsb2NhbCIgb3IgInJlbW90ZSIgaXMgTlVMTCwg dGhhdAogKiBlbmRwb2ludCBpcyBub3QgY2hlY2tlZCBhZ2FpbnN0LgogKglSZXR1cm5zOgogKgkJ T24gc3VjY2VzczogdGhlIGRlc2NyaXB0b3IgdGhlIHNvY2tzZmQgc3RydWN0IHdhcyByZWdpc3Rl cmVkIHdpdGguCiAqCQlPbiBmYWlsdXJlOiAtMQogKi8KCmludApzb2Nrc19hZGRybWF0Y2ggX19Q KChjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKmxvY2FsLAoJCQkJCQkJY29uc3Qgc3RydWN0IHNvY2th ZGRyICpyZW1vdGUsCgkJCQkJCQljb25zdCBzdHJ1Y3Qgc29ja3NzdGF0ZV90ICpzdGF0ZSkpOwov KgogKiBHb2VzIHRocm91Z2ggYWxsIGFkZHJlc3NlcyByZWdpc3RlcmVkIGFuZCB0cmllcyB0byBm aW5kIG9uZSB3aGVyZQogKiBhbGwgYXJndW1lbnRzIG1hdGNoLgogKiBBcmd1bWVudHMgdGhhdCBh cmUgTlVMTCBvciBoYXZlICJpbGxlZ2FsIiB2YWx1ZXMgYXJlIGlnbm9yZWQuCiAqIFJldHVybnM6 CiAqCQlPbiBzdWNjZXNzOiB0aGUgZGVzY3JpcHRvciB0aGUgc29ja3NmZCB3aXRoIG1hdGNoaW5n IGFyZ3VtZW50cyB3YXMKICogICAgICAgICAgICAgICAgcmVnaXN0ZXJlZCB3aXRoICg+PSAwKS4K ICoJCU9uIGZhaWx1cmU6IC0xLgogKi8KCgppbnQKc29ja3NfaXNhZGRyIF9fUCgodW5zaWduZWQg aW50IGZkKSk7Ci8qCiAqIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIGFkZHJlc3MgcmVnaXN0 ZXJlZCBmb3IgdGhlIHNvY2tldCAiZmQiLCBmYWxzZQogKiBvdGhlcndpc2UuCiAqLwoKCmludApz b2Nrc19hZGRyaXNvayBfX1AoKHVuc2lnbmVkIGludCBzKSk7Ci8qCiAqIENvbXBhcmVzIHRoZSBj dXJyZW50IGFkZHJlc3Mgb2YgInMiIHRvIHRoZSByZWdpc3RlcmVkIGFkZHJlc3MuCiAqIElmIHRo ZXJlIGlzIGEgbWlzbWF0Y2gsIHRoZSBmdW5jdGlvbiB3aWxsIHRyeSB0byBjb3JyZWN0IGl0IGlm IHBvc3NpYmxlLgogKiBSZXR1cm5zOgogKgkJSWYgY3VycmVudCBhZGRyZXNzIGZvdW5kIHRvIG1h dGNoIHJlZ2lzdGVyZWQ6IHRydWUuCiAqCQlFbHNlOiBmYWxzZS4KICovCgppbnQKc29ja3NfYWRk ZmQgX19QKCh1bnNpZ25lZCBpbnQgZmQpKTsKLyoKICogYWRkcyB0aGUgZmlsZWRlc2NyaXB0b3Ig ImZkIiB0byBhbiBpbnRlcm5hbCB0YWJsZS4KICogSWYgaXQgaXMgYWxyZWFkeSBpbiB0aGUgdGFi bGUgdGhlICByZXF1ZXN0IGlzIGlnbm9yZWQuCiAqIFJldHVybnM6CiAqCQlPbiBzdWNjZXNzOiAw CiAqCQlPbiBmYWlsdXJlOiAtMQogKi8KCmludApzb2Nrc19pc2ZkIF9fUCgodW5zaWduZWQgaW50 IGZkKSk7Ci8qCiAqIHJldHVybnMgMSBpZiAiZmQiIGlzIGEgZmlsZWRlc2NyaXB0b3IgaW4gb3Vy IGludGVybmFsIHRhYmxlLCAwIGlmIG5vdC4KICovCgp2b2lkCnNvY2tzX3JtZmQgX19QKCh1bnNp Z25lZCBpbnQgZmQpKTsKLyoKICogcmVtb3ZlcyB0aGUgZmlsZWRlc2NyaXB0b3IgImZkIiBmcm9t IG91ciBpbnRlcm5hbCB0YWJsZS4KICovCgoKaW50CmZkaXNvcGVuIF9fUCgoaW50IGZkKSk7Ci8q CiAqIHJldHVybnMgMSBpZiB0aGUgZmlsZWRlc2NyaXB0b3IgImZkIiBjdXJyZW50bHkgcmVmZXJl bmNlcyBhIG9wZW4gb2JqZWN0LgogKiByZXR1cm5zIDAgb3RoZXJ3aXNlLgogKi8KCgppbnQKY2xp ZW50bWV0aG9kX3VuYW1lIF9fUCgoaW50IHMsIGNvbnN0IHN0cnVjdCBzb2Nrc2hvc3RfdCAqaG9z dCwgaW50IHZlcnNpb24pKTsKLyoKICogRW50ZXJzIHVzZXJuYW1lL3Bhc3N3b3JkIG5lZ290aWF0 aW9uIHdpdGggdGhlIHNvY2tzc2VydmVyIGNvbm5lY3RlZCB0bwogKiB0aGUgc29ja2V0ICJzIi4K ICogImhvc3QiIGdpdmVzIHRoZSBuYW1lIG9mIHRoZSBzZXJ2ZXIuCiAqICJ2ZXJzaW9uIiBnaXZl cyB0aGUgc29ja3N2ZXJzaW9uIGVzdGFibGlzaGVkIHRvIHVzZS4KICogUmV0dXJuczoKICoJCU9u IHN1Y2Nlc3M6IDAKICoJCU9uIGZhaWx1cmU6IHdoYXRldmVyIHRoZSByZW1vdGUgc29ja3NzZXJ2 ZXIgcmV0dXJuZWQgYXMgc3RhdHVzLgogKi8KCgpjaGFyICoKc29ja3NfZ2V0dXNlcm5hbWUgX19Q KChjb25zdCBzdHJ1Y3Qgc29ja3Nob3N0X3QgKmhvc3QsIGNoYXIgKmJ1ZiwKCQkJCQkJCSAgc2l6 ZV90IGJ1ZmxlbikpOwovKgogKiBUcmllcyB0byBkZXRlcm1pbmUgdGhlIHVzZXJuYW1lIG9mIHRo ZSBjdXJyZW50IHVzZXIsIHRvIGJlIHVzZWQKICogd2hlbiBuZWdvdGlhdGluZyB3aXRoIHRoZSBz ZXJ2ZXIgImhvc3QiLgogKiBUaGUgTlVMLXRlcm1pbmF0ZWQgdXNlcm5hbWUgaXMgd3JpdHRlbiB0 byAiYnVmIiwgd2hpY2ggaXMgb2Ygc2l6ZQogKiAiYnVmbGVuIi4KICogUmV0dXJuczoKICoJCU9u IHN1Y2Nlc3M6IHBvaW50ZXIgdG8gImJ1ZiIgd2l0aCB0aGUgdXNlcm5hbWUuCiAqCQlPbiBmYWls dXJlOiBOVUxMLgogKi8KCmNoYXIgKgpzb2Nrc19nZXRwYXNzd29yZCBfX1AoKGNvbnN0IHN0cnVj dCBzb2Nrc2hvc3RfdCAqaG9zdCwgY29uc3QgY2hhciAqdXNlciwKCQkJCQkJCSAgY2hhciAqYnVm LCBzaXplX3QgYnVmbGVuKSk7Ci8qCiAqIFRyaWVzIHRvIGRldGVybWluZSB0aGUgcGFzc3dvcmQg b2YgdXNlciAidXNlciIsIHRvIGJlIHVzZWQKICogd2hlbiBuZWdvdGlhdGluZyB3aXRoIHRoZSBz ZXJ2ZXIgImhvc3QiLgogKiBUaGUgTlVMLXRlcm1pbmF0ZWQgcGFzc3dvcmQgaXMgd3JpdHRlbiB0 byAiYnVmIiwgd2hpY2ggaXMgb2YgbGVuZ3RoCiAqICJidWZsZW4iCiAqIFJldHVybnM6CiAqCQlP biBzdWNjZXNzOiBwb2ludGVyIHRvICJidWYiIHdpdGggdGhlIHBhc3N3b3JkLgogKgkJT24gZmFp bHVyZTogTlVMTC4KICovCgoKaW50CnNlcnZlcnJlcGx5aXNvayBfX1AoKGludCB2ZXJzaW9uLCBp bnQgcmVwbHksIHN0cnVjdCByb3V0ZV90ICpyb3V0ZSkpOwovKgogKiAicmVwbHljb2RlIiBpcyB0 aGUgcmVwbHkgY29kZSByZXR1cm5lZCBieSBhIHNvY2tzc2VydmVyIG9mIHZlcnNpb24KICogInZl cnNpb24iLgogKiAicm91dGUiIGlzIHRoZSByb3V0ZSB0aGF0IHdhcyB1c2VkIGZvciB0aGUgc29j a3NzZXJ2ZXIuICBJZgogKiB0aGUgZXJyb3Jjb2RlIGluZGljYXRlcyBhIHNlcnZlcmZhaWx1cmUs IGl0IG1pZ2h0IGJlICJiYWRyb3V0ZWQiLgogKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlcGx5IGlu ZGljYXRlcyByZXF1ZXN0IHN1Y2NlZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlCiAqIGFuZCBzZXRzIGVy cm5vIGFjY29yZGluZ2x5LgogKi8KCmludAptc3Byb3h5X25lZ290aWF0ZSBfX1AoKGludCBzLCBp bnQgY29udHJvbCwgc3RydWN0IHNvY2tzX3QgKnBhY2tldCkpOwovKgogKiBOZWdvdGlhdGVzIHdp dGggdGhlIG1zcHJveHkgc2VydmVyIGNvbm5lY3RlZCB0byAiY29udHJvbCIuCiAqICJzIiBnaXZl cyB0aGUgc29ja2V0IHRvIGJlIHVzZWQgZm9yIGRhdGFmbG93LgogKiAicGFja2V0IiBjb250YWlu cyB0aGUgcmVxdWVzdCBhbmQgb24gcmV0dXJuIGZyb20gdGhlIGZ1bmN0aW9uCiAqIGNvbnRhaW5z IHRoZSByZXNwb25zZS4KICogUmV0dXJuczoKICoJCU9uIHN1Y2Nlc3M6IDAgKHNlcnZlciByZXBs aWVkIHRvIG91ciByZXF1ZXN0KS4KICoJCU9uIGZhaWx1cmU6IC0xCiAqLwoKCmludApzZW5kX21z cHJlcXVlc3QgX19QKChpbnQgcywgc3RydWN0IG1zcHJveHlfc3RhdGVfdCAqc3RhdGUsCgkJCQkJ CSAgc3RydWN0IG1zcHJveHlfcmVxdWVzdF90ICpwYWNrZXQpKTsKLyoKICogU2VuZHMgYSBtc3By b3h5IHJlcXVlc3QgdG8gInMiLgogKiAic3RhdGUiIGlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRo ZSBjb25uZWN0aW9uIHRvICJzIiwKICogInBhY2tldCIgaXMgdGhlIHJlcXVlc3QgdG8gc2VuZC4K ICovCgppbnQKcmVjdl9tc3ByZXNwb25zZSBfX1AoKGludCBzLCBzdHJ1Y3QgbXNwcm94eV9zdGF0 ZV90ICpzdGF0ZSwKCQkJCQkJICBzdHJ1Y3QgbXNwcm94eV9yZXNwb25zZV90ICpwYWNrZXQpKTsK LyoKICogUmVjZWl2ZXMgYSBtc3Byb3h5IHJlc3BvbnNlIGZyb20gInMiLgogKiAic3RhdGUiIGlz IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb25uZWN0aW9uIHRvICJzIiwKICogInBhY2tldCIg aXMgdGhlIG1lbW9yeSB0aGUgcmVzcG9uc2UgaXMgcmVhZCBpbnRvLgogKi8KCmludAptc3Byb3h5 X3NpZ2lvIF9fUCgoaW50IHMpKTsKLyoKICogTXVzdCBiZSBjYWxsZWQgb24gc29ja2V0cyB3aGVy ZSB3ZSBleHBlY3QgdGhlIGNvbm5lY3Rpb24gdG8gYmUgZm9yd2FyZGVkCiAqIGJ5IHRoZSBtc3By b3h5IHNlcnZlci4KICogInMiIGlzIHRoZSBzb2NrZXQgYW5kIG11c3QgaGF2ZSBiZWVuIGFkZGVk IHdpdGggc29ja3NfYWRkYWRkcigpIGJlZm9yZWhhbmQuCiAqIFJldHVybnM6CiAqCQlPbiBzdWNj ZXNzOiAwCiAqCQlPbiBmYWlsdXJlOiAtMQogKi8KCmludAptc3Byb3h5X2luaXQgX19QKCh2b2lk KSk7Ci8qCiAqIGluaXRzIHRoaW5ncyBmb3IgdXNpbmcgYSBtc3Byb3h5c2VydmVyLgogKgkJT24g c3VjY2VzczogMAogKgkJT24gZmFpbHVyZTogLTEKICovCgppbnQKaHR0cHByb3h5X25lZ290aWF0 ZSBfX1AoKGludCBjb250cm9sLCBzdHJ1Y3Qgc29ja3NfdCAqcGFja2V0KSk7Ci8qCiAqIE5lZ290 aWF0ZXMgYSBtZXRob2QgdG8gYmUgdXNlZCB3aGVuIHRhbGtpbmcgd2l0aCB0aGUgc2VydmVyIGNv bm5lY3RlZAogKiB0byAicyIuICAicGFja2V0IiBpcyB0aGUgcGFja2V0IHRoYXQgd2lsbCBsYXRl ciBiZSBzZW50IHRvIHNlcnZlci4KICogcGFja2V0LT5yZXMucmVwbHkgd2lsbCBiZSBzZXQgZGVw ZW5kaW5nIG9uIHRoZSByZXN1bHQgb2YgbmVnb3RpYXRpb24uCiAqIFJldHVybnM6CiAqCQlPbiBz dWNjZXNzOiAwIChzZXJ2ZXIgcmVwbGllZCB0byBvdXIgcmVxdWVzdCkuCiAqCQlPbiBmYWlsdXJl OiAtMS4KICovCgojaWYgRElBR05PU1RJQwp2b2lkCmNjX3NvY2tzZmR2KGludCBzaWcpOwovKgog KiBjb25zaXN0ZW5jeWNoZWNrIG9uIHNvY2tzZmR2LgogKi8KI2VuZGlmCgoKI2lmIFNPQ0tTTElC UkFSWV9EWU5BTUlDCgppbnQgc3lzX3JyZXN2cG9ydCBfX1AoKGludCAqKSk7CmludCBzeXNfYmlu ZHJlc3Zwb3J0IF9fUCgoaW50LCBzdHJ1Y3Qgc29ja2FkZHJfaW4gKikpOwoKSEFWRV9QUk9UX1JF QURfMCBzeXNfcmVhZApfX1AoKEhBVkVfUFJPVF9SRUFEXzEsIEhBVkVfUFJPVF9SRUFEXzIsIEhB VkVfUFJPVF9SRUFEXzMpKTsKSEFWRV9QUk9UX1JFQURWXzAgc3lzX3JlYWR2Cl9fUCgoSEFWRV9Q Uk9UX1JFQURWXzEsIEhBVkVfUFJPVF9SRUFEVl8yLCBIQVZFX1BST1RfUkVBRFZfMykpOwpIQVZF X1BST1RfUkVDVl8wIHN5c19yZWN2Cl9fUCgoSEFWRV9QUk9UX1JFQ1ZfMSwgSEFWRV9QUk9UX1JF Q1ZfMiwgSEFWRV9QUk9UX1JFQ1ZfMywgSEFWRV9QUk9UX1JFQ1ZfNCkpOwpIQVZFX1BST1RfUkVD Vk1TR18wIHN5c19yZWN2bXNnCl9fUCgoSEFWRV9QUk9UX1JFQ1ZNU0dfMSwgSEFWRV9QUk9UX1JF Q1ZNU0dfMiwgSEFWRV9QUk9UX1JFQ1ZNU0dfMykpOwpIQVZFX1BST1RfU0VORF8wIHN5c19zZW5k Cl9fUCgoSEFWRV9QUk9UX1NFTkRfMSAsIEhBVkVfUFJPVF9TRU5EXzIsIEhBVkVfUFJPVF9TRU5E XzMsIEhBVkVfUFJPVF9TRU5EXzQpKTsKSEFWRV9QUk9UX1dSSVRFXzAgc3lzX3dyaXRlCl9fUCgo SEFWRV9QUk9UX1dSSVRFXzEsIEhBVkVfUFJPVF9XUklURV8yLCBIQVZFX1BST1RfV1JJVEVfMykp OwoKI2lmIEhBVkVfT1NGX09MRFNUWUxFCmludCBzeXNfYWNjZXB0IF9fUCgoaW50LCBzdHJ1Y3Qg c29ja2FkZHIgKiwgaW50ICopKTsKI2Vsc2UKSEFWRV9QUk9UX0FDQ0VQVF8wIHN5c19hY2NlcHQK X19QKChIQVZFX1BST1RfQUNDRVBUXzEsIEhBVkVfUFJPVF9BQ0NFUFRfMiwgSEFWRV9QUk9UX0FD Q0VQVF8zKSk7CiNlbmRpZiAgLyogSEFWRV9FWFRSQV9PU0ZfU1lNQk9MUyAqLwoKI2lmIEhBVkVf T1NGX09MRFNUWUxFCmludCBzeXNfYmluZCBfX1AoKGludCwgY29uc3Qgc3RydWN0IHNvY2thZGRy ICosIGludCkpOwojZWxzZQpIQVZFX1BST1RfQklORF8wIHN5c19iaW5kCl9fUCgoSEFWRV9QUk9U X0JJTkRfMSwgSEFWRV9QUk9UX0JJTkRfMiwgSEFWRV9QUk9UX0JJTkRfMykpOwojZW5kaWYgLyog IUhBVkVfT1NGX09MRFNUWUxFICovCgojaWYgSEFWRV9PU0ZfT0xEU1RZTEUKaW50IHN5c19jb25u ZWN0IF9fUCgoaW50LCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiwgaW50KSk7CiNlbHNlCkhBVkVf UFJPVF9DT05ORUNUXzAgc3lzX2Nvbm5lY3QKX19QKChIQVZFX1BST1RfQ09OTkVDVF8xLCBIQVZF X1BST1RfQ09OTkVDVF8yLCBIQVZFX1BST1RfQ09OTkVDVF8zKSk7CiNlbmRpZiAgLyogSEFWRV9P U0ZfT0xEU1RZTEUgKi8KCiNpZiBIQVZFX09TRl9PTERTVFlMRQppbnQgc3lzX2dldHBlZXJuYW1l IF9fUCgoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgaW50ICopKTsKI2Vsc2UKSEFWRV9QUk9UX0dF VFBFRVJOQU1FXzAgc3lzX2dldHBlZXJuYW1lCl9fUCgoSEFWRV9QUk9UX0dFVFBFRVJOQU1FXzEs IEhBVkVfUFJPVF9HRVRQRUVSTkFNRV8yLCBIQVZFX1BST1RfR0VUUEVFUk5BTUVfMykpOwojZW5k aWYgIC8qIEhBVkVfRVhUUkFfT1NGX1NZTUJPTFMgKi8KCiNpZiBIQVZFX09TRl9PTERTVFlMRQpp bnQgc3lzX2dldHNvY2tuYW1lIF9fUCgoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgaW50ICopKTsK I2Vsc2UKSEFWRV9QUk9UX0dFVFNPQ0tOQU1FXzAgc3lzX2dldHNvY2tuYW1lCl9fUCgoSEFWRV9Q Uk9UX0dFVFNPQ0tOQU1FXzEsIEhBVkVfUFJPVF9HRVRTT0NLTkFNRV8yLCBIQVZFX1BST1RfR0VU U09DS05BTUVfMykpOwojZW5kaWYgIC8qIEhBVkVfRVhUUkFfT1NGX1NZTUJPTFMgKi8KCiNpZiBI QVZFX09TRl9PTERTVFlMRQppbnQgc3lzX3JlY3Zmcm9tIF9fUCgoaW50LCB2b2lkKiwgaW50LCBp bnQsIHN0cnVjdCBzb2NrYWRkciAqLCBpbnQgKikpOwojZWxzZQpIQVZFX1BST1RfUkVDVkZST01f MCBzeXNfcmVjdmZyb20KX19QKChIQVZFX1BST1RfUkVDVkZST01fMSwgSEFWRV9QUk9UX1JFQ1ZG Uk9NXzIsIEhBVkVfUFJPVF9SRUNWRlJPTV8zLCBIQVZFX1BST1RfUkVDVkZST01fNCwgSEFWRV9Q Uk9UX1JFQ1ZGUk9NXzUsIEhBVkVfUFJPVF9SRUNWRlJPTV82KSk7CiNlbmRpZgoKI2lmIEhBVkVf T1NGX09MRFNUWUxFCnNzaXplX3Qgc3lzX3dyaXRldiBfX1AoKGludCwgc3RydWN0IGlvdmVjICos IGludCkpOwojZWxzZQpIQVZFX1BST1RfV1JJVEVWXzAgc3lzX3dyaXRldgpfX1AoKEhBVkVfUFJP VF9XUklURVZfMSwgSEFWRV9QUk9UX1dSSVRFVl8yLCBIQVZFX1BST1RfV1JJVEVWXzMpKTsKI2Vu ZGlmCgojaWYgSEFWRV9PU0ZfT0xEU1RZTEUKc3NpemVfdCBzeXNfc2VuZG1zZyBfX1AoKGludCwg c3RydWN0IG1zZ2hkciAqLCBpbnQpKTsKI2Vsc2UKSEFWRV9QUk9UX1NFTkRNU0dfMCBzeXNfc2Vu ZG1zZwpfX1AoKEhBVkVfUFJPVF9TRU5ETVNHXzEsIEhBVkVfUFJPVF9TRU5ETVNHXzIsIEhBVkVf UFJPVF9TRU5ETVNHXzMpKTsKI2VuZGlmCgojaWYgSEFWRV9PU0ZfT0xEU1RZTEUKaW50IHN5c19z ZW5kdG8gX19QKChpbnQsIGNvbnN0IHZvaWQgKiwgaW50LCBpbnQsIGNvbnN0IHN0cnVjdCBzb2Nr YWRkciAqLCBzb2NrbGVuX3QpKTsKI2Vsc2UKSEFWRV9QUk9UX1NFTkRUT18wIHN5c19zZW5kdG8K X19QKChIQVZFX1BST1RfU0VORFRPXzEsIEhBVkVfUFJPVF9TRU5EVE9fMiwgSEFWRV9QUk9UX1NF TkRUT18zLCBIQVZFX1BST1RfU0VORFRPXzQsIEhBVkVfUFJPVF9TRU5EVE9fNSwgSEFWRV9QUk9U X1NFTkRUT182KSk7CiNlbmRpZiAvKiAhSEFWRV9PU0ZfT0xEU1RZTEUgKi8KCiNpZiBIQVZFX0VY VFJBX09TRl9TWU1CT0xTCmludCBzeXNfRWFjY2VwdCBfX1AoKGludCwgc3RydWN0IHNvY2thZGRy ICosIHNvY2tsZW5fdCAqKSk7CmludCBzeXNfRWdldHBlZXJuYW1lIF9fUCgoaW50LCBzdHJ1Y3Qg c29ja2FkZHIgKiwgc29ja2xlbl90ICopKTsKaW50IHN5c19FZ2V0c29ja25hbWUgX19QKChpbnQs IHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikpOwpzc2l6ZV90IHN5c19FcmVhZHYgX19Q KChpbnQsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqLCBpbnQpKTsKaW50IHN5c19FcmVjdmZyb20gX19Q KChpbnQsIHZvaWQgKiwgc2l6ZV90LCBpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzaXplX3QgKikp Owpzc2l6ZV90IHN5c19FcmVjdm1zZyBfX1AoKGludCwgc3RydWN0IG1zZ2hkciAqLCBpbnQpKTsK c3NpemVfdCBzeXNfRXNlbmRtc2cgX19QKChpbnQsIGNvbnN0IHN0cnVjdCBtc2doZHIgKiwgaW50 KSk7CnNzaXplX3Qgc3lzX0V3cml0ZXYgX19QKChpbnQsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqLCBp bnQpKTsKCmludCBzeXNfbmFjY2VwdCBfX1AoKGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2ts ZW5fdCAqKSk7CmludCBzeXNfbmdldHBlZXJuYW1lIF9fUCgoaW50LCBzdHJ1Y3Qgc29ja2FkZHIg Kiwgc29ja2xlbl90ICopKTsKaW50IHN5c19uZ2V0c29ja25hbWUgX19QKChpbnQsIHN0cnVjdCBz b2NrYWRkciAqLCBzb2NrbGVuX3QgKikpOwppbnQgc3lzX25yZWN2ZnJvbSBfX1AoKGludCwgdm9p ZCAqLCBzaXplX3QsIGludCwgc3RydWN0IHNvY2thZGRyICosIHNpemVfdCAqKSk7CnNzaXplX3Qg c3lzX25yZWN2bXNnIF9fUCgoaW50LCBzdHJ1Y3QgbXNnaGRyICosIGludCkpOwpzc2l6ZV90IHN5 c19uc2VuZG1zZyBfX1AoKGludCwgY29uc3Qgc3RydWN0IG1zZ2hkciAqLCBpbnQpKTsKCiNlbmRp ZiAgLyogSEFWRV9FWFRSQV9PU0ZfU1lNQk9MUyAqLwoKI2VuZGlmIC8qIFNPQ0tTTElCUkFSWV9E WU5BTUlDICovCgpfX0VORF9ERUNMUwo= --------------Boundary-00=_JSD0LALB7RG39HSCWRPO--