From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JolTv-0005vW-LM for qemu-devel@nongnu.org; Wed, 23 Apr 2008 16:22:19 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JolTu-0005uH-8Y for qemu-devel@nongnu.org; Wed, 23 Apr 2008 16:22:18 -0400 Received: from [199.232.76.173] (port=37085 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JolTt-0005u5-PS for qemu-devel@nongnu.org; Wed, 23 Apr 2008 16:22:17 -0400 Received: from smtp3-g19.free.fr ([212.27.42.29]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JolTs-000605-6V for qemu-devel@nongnu.org; Wed, 23 Apr 2008 16:22:17 -0400 Received: from smtp3-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp3-g19.free.fr (Postfix) with ESMTP id EE4B417B5CE for ; Wed, 23 Apr 2008 22:22:14 +0200 (CEST) Received: from [127.0.0.1] (rob92-10-88-171-126-33.fbx.proxad.net [88.171.126.33]) by smtp3-g19.free.fr (Postfix) with ESMTP id BB70E17B5C8 for ; Wed, 23 Apr 2008 22:22:12 +0200 (CEST) Message-ID: <480F9A73.50508@reactos.org> Date: Wed, 23 Apr 2008 22:22:11 +0200 From: =?UTF-8?B?SGVydsOpIFBvdXNzaW5lYXU=?= MIME-Version: 1.0 Subject: Re: [Qemu-devel] FDC: improve emulation [v2] References: <480656E7.7000707@reactos.org> <480F0B22.1000000@reactos.org> In-Reply-To: Content-Type: multipart/mixed; boundary="------------060308060501050407050601" Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------060308060501050407050601 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Blue Swirl a =C3=A9crit : > But it's better to commit many small patches rather than one big > patch, because if there are problems, the culprit patch can be > identified and fixed. So could you still rework the patch set? Here is the version with multiple small patches. fdc_01_lookuptable.diff - Adds a command lookup table, as suggested by Fabrice at=20 http://lists.gnu.org/archive/html/qemu-devel/2008-04/msg00143.html - This also moves initialization functions at the bottom of the file to=20 prevent multiple forward declarations. fdc_02_seek_next_sector.diff - Extract seeking to next sector handling in a function. Add a sector=20 seek in PIO read and write modes fdc_03_status_ab.diff - Fixes status A and status B registers. It removes one Sun4m mutation.=20 Also removes the internal FD_CTRL_INTR flag. fdc_04_dmaen.diff - Handles correctly FD_MSR_NONDMA/FD_DOR_NONDMA flags, and uses them=20 when possible. Fixes a problem with SPECIFY command. fdc_05_dor_reg.diff - Better handling of DOR register. DOR register drives external motors,=20 but it not limited to existing drives. - Use FD_DOR_nRESET flag instead of internal FD_CTRL_RESET flag. - Support writing to DOR register even in reset mode (as said in=20 specification) fdc_06_msr_reg.diff - Stores controller state in MSR register instead of internal state=20 field. This simplifies the fdctrl_read_main_status() function, which may=20 be called in some tight loops. fdc_07_cleanup.diff - Removes useless fields in fdrive_t structure. - Adds a message when bdrv_read/bdrv_write calls fail. - Rename int_status to status0. - Replace some constants by value names. fdc_08_tdr_reg.diff - Replaces bootsel field by the whole tdr register. It may be easier if=20 we want to later add support for tapes. fdc_09_4_fds.diff - Supports up to 4 floppy drives if MAX_FD is set to 4. fdc_10_cur_drv.diff - Replaces access to cur_drv field by macros. Herv=C3=A9 --------------060308060501050407050601 Content-Type: text/plain; name="fdc_01_lookuptable.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_01_lookuptable.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC0zMjIsNyArMzIyLDYg QEANCiBzdGF0aWMgaW50IGZkY3RybF90cmFuc2Zlcl9oYW5kbGVyICh2b2lkICpvcGFxdWUs IGludCBuY2hhbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg ZG1hX3BvcywgaW50IGRtYV9sZW4pOw0KIHN0YXRpYyB2b2lkIGZkY3RybF9yYWlzZV9pcnEg KGZkY3RybF90ICpmZGN0cmwsIHVpbnQ4X3Qgc3RhdHVzKTsNCi1zdGF0aWMgdm9pZCBmZGN0 cmxfcmVzdWx0X3RpbWVyKHZvaWQgKm9wYXF1ZSk7DQogDQogc3RhdGljIHVpbnQzMl90IGZk Y3RybF9yZWFkX3N0YXR1c0IgKGZkY3RybF90ICpmZGN0cmwpOw0KIHN0YXRpYyB1aW50MzJf dCBmZGN0cmxfcmVhZF9kb3IgKGZkY3RybF90ICpmZGN0cmwpOw0KQEAgLTY5NCw3OCArNjkz LDYgQEANCiAgICAgZmRjdHJsX3Jlc2V0KHMsIDApOw0KIH0NCiANCi1zdGF0aWMgZmRjdHJs X3QgKmZkY3RybF9pbml0X2NvbW1vbiAocWVtdV9pcnEgaXJxLCBpbnQgZG1hX2NoYW5uLA0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcGh5c19hZGRy X3QgaW9fYmFzZSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxv Y2tEcml2ZXJTdGF0ZSAqKmZkcykNCi17DQotICAgIGZkY3RybF90ICpmZGN0cmw7DQotICAg IGludCBpOw0KLQ0KLSAgICBGTE9QUFlfRFBSSU5URigiaW5pdCBjb250cm9sbGVyXG4iKTsN Ci0gICAgZmRjdHJsID0gcWVtdV9tYWxsb2N6KHNpemVvZihmZGN0cmxfdCkpOw0KLSAgICBp ZiAoIWZkY3RybCkNCi0gICAgICAgIHJldHVybiBOVUxMOw0KLSAgICBmZGN0cmwtPmZpZm8g PSBxZW11X21lbWFsaWduKDUxMiwgRkRfU0VDVE9SX0xFTik7DQotICAgIGlmIChmZGN0cmwt PmZpZm8gPT0gTlVMTCkgew0KLSAgICAgICAgcWVtdV9mcmVlKGZkY3RybCk7DQotICAgICAg ICByZXR1cm4gTlVMTDsNCi0gICAgfQ0KLSAgICBmZGN0cmwtPnJlc3VsdF90aW1lciA9IHFl bXVfbmV3X3RpbWVyKHZtX2Nsb2NrLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZkY3RybF9yZXN1bHRfdGltZXIsIGZkY3RybCk7DQotDQotICAgIGZk Y3RybC0+dmVyc2lvbiA9IDB4OTA7IC8qIEludGVsIDgyMDc4IGNvbnRyb2xsZXIgKi8NCi0g ICAgZmRjdHJsLT5pcnEgPSBpcnE7DQotICAgIGZkY3RybC0+ZG1hX2NoYW5uID0gZG1hX2No YW5uOw0KLSAgICBmZGN0cmwtPmlvX2Jhc2UgPSBpb19iYXNlOw0KLSAgICBmZGN0cmwtPmNv bmZpZyA9IEZEX0NPTkZJR19FSVMgfCBGRF9DT05GSUdfRUZJRk87IC8qIEltcGxpY2l0IHNl ZWssIHBvbGxpbmcgJiBGSUZPIGVuYWJsZWQgKi8NCi0gICAgaWYgKGZkY3RybC0+ZG1hX2No YW5uICE9IC0xKSB7DQotICAgICAgICBmZGN0cmwtPmRtYV9lbiA9IDE7DQotICAgICAgICBE TUFfcmVnaXN0ZXJfY2hhbm5lbChkbWFfY2hhbm4sICZmZGN0cmxfdHJhbnNmZXJfaGFuZGxl ciwgZmRjdHJsKTsNCi0gICAgfSBlbHNlIHsNCi0gICAgICAgIGZkY3RybC0+ZG1hX2VuID0g MDsNCi0gICAgfQ0KLSAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX0ZEOyBpKyspIHsNCi0gICAg ICAgIGZkX2luaXQoJmZkY3RybC0+ZHJpdmVzW2ldLCBmZHNbaV0pOw0KLSAgICB9DQotICAg IGZkY3RybF9yZXNldChmZGN0cmwsIDApOw0KLSAgICBmZGN0cmwtPnN0YXRlID0gRkRfQ1RS TF9BQ1RJVkU7DQotICAgIHJlZ2lzdGVyX3NhdmV2bSgiZmRjIiwgaW9fYmFzZSwgMSwgZmRj X3NhdmUsIGZkY19sb2FkLCBmZGN0cmwpOw0KLSAgICBxZW11X3JlZ2lzdGVyX3Jlc2V0KGZk Y3RybF9leHRlcm5hbF9yZXNldCwgZmRjdHJsKTsNCi0gICAgZm9yIChpID0gMDsgaSA8IE1B WF9GRDsgaSsrKSB7DQotICAgICAgICBmZF9yZXZhbGlkYXRlKCZmZGN0cmwtPmRyaXZlc1tp XSk7DQotICAgIH0NCi0NCi0gICAgcmV0dXJuIGZkY3RybDsNCi19DQotDQotZmRjdHJsX3Qg KmZkY3RybF9pbml0IChxZW11X2lycSBpcnEsIGludCBkbWFfY2hhbm4sIGludCBtZW1fbWFw cGVkLA0KLSAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3BoeXNfYWRkcl90IGlvX2Jh c2UsDQotICAgICAgICAgICAgICAgICAgICAgICBCbG9ja0RyaXZlclN0YXRlICoqZmRzKQ0K LXsNCi0gICAgZmRjdHJsX3QgKmZkY3RybDsNCi0gICAgaW50IGlvX21lbTsNCi0NCi0gICAg ZmRjdHJsID0gZmRjdHJsX2luaXRfY29tbW9uKGlycSwgZG1hX2NoYW5uLCBpb19iYXNlLCBm ZHMpOw0KLQ0KLSAgICBmZGN0cmwtPnN1bjRtID0gMDsNCi0gICAgaWYgKG1lbV9tYXBwZWQp IHsNCi0gICAgICAgIGlvX21lbSA9IGNwdV9yZWdpc3Rlcl9pb19tZW1vcnkoMCwgZmRjdHJs X21lbV9yZWFkLCBmZGN0cmxfbWVtX3dyaXRlLA0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmZGN0cmwpOw0KLSAgICAgICAgY3B1X3JlZ2lzdGVyX3BoeXNp Y2FsX21lbW9yeShpb19iYXNlLCAweDA4LCBpb19tZW0pOw0KLSAgICB9IGVsc2Ugew0KLSAg ICAgICAgcmVnaXN0ZXJfaW9wb3J0X3JlYWQoKHVpbnQzMl90KWlvX2Jhc2UgKyAweDAxLCA1 LCAxLCAmZmRjdHJsX3JlYWQsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZGN0 cmwpOw0KLSAgICAgICAgcmVnaXN0ZXJfaW9wb3J0X3JlYWQoKHVpbnQzMl90KWlvX2Jhc2Ug KyAweDA3LCAxLCAxLCAmZmRjdHJsX3JlYWQsDQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmZGN0cmwpOw0KLSAgICAgICAgcmVnaXN0ZXJfaW9wb3J0X3dyaXRlKCh1aW50MzJf dClpb19iYXNlICsgMHgwMSwgNSwgMSwgJmZkY3RybF93cml0ZSwNCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmZGN0cmwpOw0KLSAgICAgICAgcmVnaXN0ZXJfaW9wb3J0X3dy aXRlKCh1aW50MzJfdClpb19iYXNlICsgMHgwNywgMSwgMSwgJmZkY3RybF93cml0ZSwNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZGN0cmwpOw0KLSAgICB9DQotDQotICAg IHJldHVybiBmZGN0cmw7DQotfQ0KLQ0KIHN0YXRpYyB2b2lkIGZkY3RybF9oYW5kbGVfdGMo dm9pZCAqb3BhcXVlLCBpbnQgaXJxLCBpbnQgbGV2ZWwpDQogew0KICAgICAvL2ZkY3RybF90 ICpzID0gb3BhcXVlOw0KQEAgLTc3NiwyMyArNzAzLDYgQEANCiAgICAgfQ0KIH0NCiANCi1m ZGN0cmxfdCAqc3VuNG1fZmRjdHJsX2luaXQgKHFlbXVfaXJxIGlycSwgdGFyZ2V0X3BoeXNf YWRkcl90IGlvX2Jhc2UsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCbG9ja0Ry aXZlclN0YXRlICoqZmRzLCBxZW11X2lycSAqZmRjX3RjKQ0KLXsNCi0gICAgZmRjdHJsX3Qg KmZkY3RybDsNCi0gICAgaW50IGlvX21lbTsNCi0NCi0gICAgZmRjdHJsID0gZmRjdHJsX2lu aXRfY29tbW9uKGlycSwgMCwgaW9fYmFzZSwgZmRzKTsNCi0gICAgZmRjdHJsLT5zdW40bSA9 IDE7DQotICAgIGlvX21lbSA9IGNwdV9yZWdpc3Rlcl9pb19tZW1vcnkoMCwgZmRjdHJsX21l bV9yZWFkX3N0cmljdCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm ZGN0cmxfbWVtX3dyaXRlX3N0cmljdCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmZGN0cmwpOw0KLSAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxfbWVtb3J5KGlv X2Jhc2UsIDB4MDgsIGlvX21lbSk7DQotICAgICpmZGNfdGMgPSAqcWVtdV9hbGxvY2F0ZV9p cnFzKGZkY3RybF9oYW5kbGVfdGMsIGZkY3RybCwgMSk7DQotDQotICAgIHJldHVybiBmZGN0 cmw7DQotfQ0KLQ0KIC8qIFhYWDogbWF5IGNoYW5nZSBpZiBtb3ZlZCB0byBiZHJ2ICovDQog aW50IGZkY3RybF9nZXRfZHJpdmVfdHlwZShmZGN0cmxfdCAqZmRjdHJsLCBpbnQgZHJpdmVf bnVtKQ0KIHsNCkBAIC0xNzMwLDUwICsxNjQwLDU0IEBADQogICAgIGZkY3RybF9yYWlzZV9p cnEoZmRjdHJsLCBGRF9TUjBfU0VFSyk7DQogfQ0KIA0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ew0KKyAgICB1aW50OF90IHZhbHVlOw0KKyAgICB1aW50OF90IG1hc2s7DQorICAgIGNvbnN0 IGNoYXIqIG5hbWU7DQorICAgIGludCBwYXJhbWV0ZXJzOw0KKyAgICB2b2lkICgqaGFuZGxl cikoZmRjdHJsX3QgKmZkY3RybCwgaW50IGRpcmVjdGlvbik7DQorICAgIGludCBkaXJlY3Rp b247DQorfSBoYW5kbGVyc1tdID0gew0KKyAgICB7IEZEX0NNRF9SRUFELCAweDFmLCAiUkVB RCIsIDgsIGZkY3RybF9zdGFydF90cmFuc2ZlciwgRkRfRElSX1JFQUQgfSwNCisgICAgeyBG RF9DTURfV1JJVEUsIDB4M2YsICJXUklURSIsIDgsIGZkY3RybF9zdGFydF90cmFuc2Zlciwg RkRfRElSX1dSSVRFIH0sDQorICAgIHsgRkRfQ01EX1NFRUssIDB4ZmYsICJTRUVLIiwgMiwg ZmRjdHJsX2hhbmRsZV9zZWVrIH0sDQorICAgIHsgRkRfQ01EX1NFTlNFX0lOVEVSUlVQVF9T VEFUVVMsIDB4ZmYsICJTRU5TRSBJTlRFUlJVUFQgU1RBVFVTIiwgMCwgZmRjdHJsX2hhbmRs ZV9zZW5zZV9pbnRlcnJ1cHRfc3RhdHVzIH0sDQorICAgIHsgRkRfQ01EX1JFQ0FMSUJSQVRF LCAweGZmLCAiUkVDQUxJQlJBVEUiLCAxLCBmZGN0cmxfaGFuZGxlX3JlY2FsaWJyYXRlIH0s DQorICAgIHsgRkRfQ01EX0ZPUk1BVF9UUkFDSywgMHhiZiwgIkZPUk1BVCBUUkFDSyIsIDUs IGZkY3RybF9oYW5kbGVfZm9ybWF0X3RyYWNrIH0sDQorICAgIHsgRkRfQ01EX1JFQURfVFJB Q0ssIDB4YmYsICJSRUFEIFRSQUNLIiwgOCwgZmRjdHJsX3N0YXJ0X3RyYW5zZmVyLCBGRF9E SVJfUkVBRCB9LA0KKyAgICB7IEZEX0NNRF9SRVNUT1JFLCAweGZmLCAiUkVTVE9SRSIsIDE3 LCBmZGN0cmxfaGFuZGxlX3Jlc3RvcmUgfSwgLyogcGFydCBvZiBSRUFEIERFTEVURUQgREFU QSAqLw0KKyAgICB7IEZEX0NNRF9TQVZFLCAweGZmLCAiU0FWRSIsIDAsIGZkY3RybF9oYW5k bGVfc2F2ZSB9LCAvKiBwYXJ0IG9mIFJFQUQgREVMRVRFRCBEQVRBICovDQorICAgIHsgRkRf Q01EX1JFQURfREVMRVRFRCwgMHgxZiwgIlJFQUQgREVMRVRFRCBEQVRBIiwgOCwgZmRjdHJs X3N0YXJ0X3RyYW5zZmVyX2RlbCwgRkRfRElSX1JFQUQgfSwNCisgICAgeyBGRF9DTURfU0NB Tl9FUVVBTCwgMHgxZiwgIlNDQU4gRVFVQUwiLCA4LCBmZGN0cmxfc3RhcnRfdHJhbnNmZXIs IEZEX0RJUl9TQ0FORSB9LA0KKyAgICB7IEZEX0NNRF9WRVJJRlksIDB4MWYsICJWRVJJRlki LCA4LCBmZGN0cmxfdW5pbXBsZW1lbnRlZCB9LA0KKyAgICB7IEZEX0NNRF9TQ0FOX0xPV19P Ul9FUVVBTCwgMHgxZiwgIlNDQU4gTE9XIE9SIEVRVUFMIiwgOCwgZmRjdHJsX3N0YXJ0X3Ry YW5zZmVyLCBGRF9ESVJfU0NBTkwgfSwNCisgICAgeyBGRF9DTURfU0NBTl9ISUdIX09SX0VR VUFMLCAweDFmLCAiU0NBTiBISUdIIE9SIEVRVUFMIiwgOCwgZmRjdHJsX3N0YXJ0X3RyYW5z ZmVyLCBGRF9ESVJfU0NBTkggfSwNCisgICAgeyBGRF9DTURfV1JJVEVfREVMRVRFRCwgMHgz ZiwgIldSSVRFIERFTEVURUQgREFUQSIsIDgsIGZkY3RybF9zdGFydF90cmFuc2Zlcl9kZWws IEZEX0RJUl9XUklURSB9LA0KKyAgICB7IEZEX0NNRF9SRUFEX0lELCAweGJmLCAiUkVBRCBJ RCIsIDEsIGZkY3RybF9oYW5kbGVfcmVhZGlkIH0sDQorICAgIHsgRkRfQ01EX1NQRUNJRlks IDB4ZmYsICJTUEVDSUZZIiwgMiwgZmRjdHJsX2hhbmRsZV9zcGVjaWZ5IH0sDQorICAgIHsg RkRfQ01EX1NFTlNFX0RSSVZFX1NUQVRVUywgMHhmZiwgIlNFTlNFIERSSVZFIFNUQVRVUyIs IDEsIGZkY3RybF9oYW5kbGVfc2Vuc2VfZHJpdmVfc3RhdHVzIH0sDQorICAgIHsgRkRfQ01E X1BFUlBFTkRJQ1VMQVJfTU9ERSwgMHhmZiwgIlBFUlBFTkRJQ1VMQVIgTU9ERSIsIDEsIGZk Y3RybF9oYW5kbGVfcGVycGVuZGljdWxhcl9tb2RlIH0sDQorICAgIHsgRkRfQ01EX0NPTkZJ R1VSRSwgMHhmZiwgIkNPTkZJR1VSRSIsIDMsIGZkY3RybF9oYW5kbGVfY29uZmlndXJlIH0s DQorICAgIHsgRkRfQ01EX1BPV0VSRE9XTl9NT0RFLCAweGZmLCAiUE9XRVJET1dOIE1PREUi LCAyLCBmZGN0cmxfaGFuZGxlX3Bvd2VyZG93bl9tb2RlIH0sDQorICAgIHsgRkRfQ01EX09Q VElPTiwgMHhmZiwgIk9QVElPTiIsIDEsIGZkY3RybF9oYW5kbGVfb3B0aW9uIH0sDQorICAg IHsgRkRfQ01EX0RSSVZFX1NQRUNJRklDQVRJT05fQ09NTUFORCwgMHhmZiwgIkRSSVZFIFNQ RUNJRklDQVRJT04gQ09NTUFORCIsIDUsIGZkY3RybF9oYW5kbGVfZHJpdmVfc3BlY2lmaWNh dGlvbl9jb21tYW5kIH0sDQorICAgIHsgRkRfQ01EX1JFTEFUSVZFX1NFRUtfT1VULCAweGZm LCAiUkVMQVRJVkUgU0VFSyBPVVQiLCAyLCBmZGN0cmxfaGFuZGxlX3JlbGF0aXZlX3NlZWtf b3V0IH0sDQorICAgIHsgRkRfQ01EX0ZPUk1BVF9BTkRfV1JJVEUsIDB4ZmYsICJGT1JNQVQg QU5EIFdSSVRFIiwgMTAsIGZkY3RybF91bmltcGxlbWVudGVkIH0sDQorICAgIHsgRkRfQ01E X1JFTEFUSVZFX1NFRUtfSU4sIDB4ZmYsICJSRUxBVElWRSBTRUVLIElOIiwgMiwgZmRjdHJs X2hhbmRsZV9yZWxhdGl2ZV9zZWVrX2luIH0sDQorICAgIHsgRkRfQ01EX0xPQ0ssIDB4N2Ys ICJMT0NLIiwgMCwgZmRjdHJsX2hhbmRsZV9sb2NrIH0sDQorICAgIHsgRkRfQ01EX0RVTVBS RUcsIDB4ZmYsICJEVU1QUkVHIiwgMCwgZmRjdHJsX2hhbmRsZV9kdW1wcmVnIH0sDQorICAg IHsgRkRfQ01EX1ZFUlNJT04sIDB4ZmYsICJWRVJTSU9OIiwgMCwgZmRjdHJsX2hhbmRsZV92 ZXJzaW9uIH0sDQorICAgIHsgRkRfQ01EX1BBUlRfSUQsIDB4ZmYsICJQQVJUIElEIiwgMCwg ZmRjdHJsX2hhbmRsZV9wYXJ0aWQgfSwNCisgICAgeyBGRF9DTURfV1JJVEUsIDB4MWYsICJX UklURSAoQmVPUykiLCA4LCBmZGN0cmxfc3RhcnRfdHJhbnNmZXIsIEZEX0RJUl9XUklURSB9 LCAvKiBub3QgaW4gc3BlY2lmaWNhdGlvbiA7IEJlT1MgNC41IGJ1ZyAqLw0KKyAgICB7IDAs IDAsICJ1bmtub3duIiwgMCwgZmRjdHJsX3VuaW1wbGVtZW50ZWQgfSwgLyogZGVmYXVsdCBo YW5kbGVyICovDQorfTsNCisvKiBBc3NvY2lhdGUgY29tbWFuZCB0byBhbiBpbmRleCBpbiB0 aGUgJ2hhbmRsZXJzJyBhcnJheSAqLw0KK3N0YXRpYyB1aW50OF90IGNvbW1hbmRfdG9faGFu ZGxlclsyNTZdOw0KKw0KIHN0YXRpYyB2b2lkIGZkY3RybF93cml0ZV9kYXRhIChmZGN0cmxf dCAqZmRjdHJsLCB1aW50MzJfdCB2YWx1ZSkNCiB7DQogICAgIGZkcml2ZV90ICpjdXJfZHJ2 Ow0KICAgICBpbnQgcG9zOw0KLSAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsNCi0gICAgICAg IHVpbnQ4X3QgdmFsdWU7DQotICAgICAgICB1aW50OF90IG1hc2s7DQotICAgICAgICBjb25z dCBjaGFyKiBuYW1lOw0KLSAgICAgICAgaW50IHBhcmFtZXRlcnM7DQotICAgICAgICB2b2lk ICgqaGFuZGxlcikoZmRjdHJsX3QgKmZkY3RybCwgaW50IGRpcmVjdGlvbik7DQotICAgICAg ICBpbnQgcGFyYW1ldGVyOw0KLSAgICB9IGNvbW1hbmRzW10gPSB7DQotICAgICAgICB7IEZE X0NNRF9SRUFELCAweDFmLCAiUkVBRCIsIDgsIGZkY3RybF9zdGFydF90cmFuc2ZlciwgRkRf RElSX1JFQUQgfSwNCi0gICAgICAgIHsgRkRfQ01EX1dSSVRFLCAweDNmLCAiV1JJVEUiLCA4 LCBmZGN0cmxfc3RhcnRfdHJhbnNmZXIsIEZEX0RJUl9XUklURSB9LA0KLSAgICAgICAgeyBG RF9DTURfU0VFSywgMHhmZiwgIlNFRUsiLCAyLCBmZGN0cmxfaGFuZGxlX3NlZWsgfSwNCi0g ICAgICAgIHsgRkRfQ01EX1NFTlNFX0lOVEVSUlVQVF9TVEFUVVMsIDB4ZmYsICJTRU5TRSBJ TlRFUlJVUFQgU1RBVFVTIiwgMCwgZmRjdHJsX2hhbmRsZV9zZW5zZV9pbnRlcnJ1cHRfc3Rh dHVzIH0sDQotICAgICAgICB7IEZEX0NNRF9SRUNBTElCUkFURSwgMHhmZiwgIlJFQ0FMSUJS QVRFIiwgMSwgZmRjdHJsX2hhbmRsZV9yZWNhbGlicmF0ZSB9LA0KLSAgICAgICAgeyBGRF9D TURfRk9STUFUX1RSQUNLLCAweGJmLCAiRk9STUFUIFRSQUNLIiwgNSwgZmRjdHJsX2hhbmRs ZV9mb3JtYXRfdHJhY2sgfSwNCi0gICAgICAgIHsgRkRfQ01EX1JFQURfVFJBQ0ssIDB4YmYs ICJSRUFEIFRSQUNLIiwgOCwgZmRjdHJsX3N0YXJ0X3RyYW5zZmVyLCBGRF9ESVJfUkVBRCB9 LA0KLSAgICAgICAgeyBGRF9DTURfUkVTVE9SRSwgMHhmZiwgIlJFU1RPUkUiLCAxNywgZmRj dHJsX2hhbmRsZV9yZXN0b3JlIH0sIC8qIHBhcnQgb2YgUkVBRCBERUxFVEVEIERBVEEgKi8N Ci0gICAgICAgIHsgRkRfQ01EX1NBVkUsIDB4ZmYsICJTQVZFIiwgMCwgZmRjdHJsX2hhbmRs ZV9zYXZlIH0sIC8qIHBhcnQgb2YgUkVBRCBERUxFVEVEIERBVEEgKi8NCi0gICAgICAgIHsg RkRfQ01EX1JFQURfREVMRVRFRCwgMHgxZiwgIlJFQUQgREVMRVRFRCBEQVRBIiwgOCwgZmRj dHJsX3N0YXJ0X3RyYW5zZmVyX2RlbCwgRkRfRElSX1JFQUQgfSwNCi0gICAgICAgIHsgRkRf Q01EX1NDQU5fRVFVQUwsIDB4MWYsICJTQ0FOIEVRVUFMIiwgOCwgZmRjdHJsX3N0YXJ0X3Ry YW5zZmVyLCBGRF9ESVJfU0NBTkUgfSwNCi0gICAgICAgIHsgRkRfQ01EX1ZFUklGWSwgMHgx ZiwgIlZFUklGWSIsIDgsIGZkY3RybF91bmltcGxlbWVudGVkIH0sDQotICAgICAgICB7IEZE X0NNRF9TQ0FOX0xPV19PUl9FUVVBTCwgMHgxZiwgIlNDQU4gTE9XIE9SIEVRVUFMIiwgOCwg ZmRjdHJsX3N0YXJ0X3RyYW5zZmVyLCBGRF9ESVJfU0NBTkwgfSwNCi0gICAgICAgIHsgRkRf Q01EX1NDQU5fSElHSF9PUl9FUVVBTCwgMHgxZiwgIlNDQU4gSElHSCBPUiBFUVVBTCIsIDgs IGZkY3RybF9zdGFydF90cmFuc2ZlciwgRkRfRElSX1NDQU5IIH0sDQotICAgICAgICB7IEZE X0NNRF9XUklURV9ERUxFVEVELCAweDNmLCAiV1JJVEUgREVMRVRFRCBEQVRBIiwgOCwgZmRj dHJsX3N0YXJ0X3RyYW5zZmVyX2RlbCwgRkRfRElSX1dSSVRFIH0sDQotICAgICAgICB7IEZE X0NNRF9SRUFEX0lELCAweGJmLCAiUkVBRCBJRCIsIDEsIGZkY3RybF9oYW5kbGVfcmVhZGlk IH0sDQotICAgICAgICB7IEZEX0NNRF9TUEVDSUZZLCAweGZmLCAiU1BFQ0lGWSIsIDIsIGZk Y3RybF9oYW5kbGVfc3BlY2lmeSB9LA0KLSAgICAgICAgeyBGRF9DTURfU0VOU0VfRFJJVkVf U1RBVFVTLCAweGZmLCAiU0VOU0UgRFJJVkUgU1RBVFVTIiwgMSwgZmRjdHJsX2hhbmRsZV9z ZW5zZV9kcml2ZV9zdGF0dXMgfSwNCi0gICAgICAgIHsgRkRfQ01EX1BFUlBFTkRJQ1VMQVJf TU9ERSwgMHhmZiwgIlBFUlBFTkRJQ1VMQVIgTU9ERSIsIDEsIGZkY3RybF9oYW5kbGVfcGVy cGVuZGljdWxhcl9tb2RlIH0sDQotICAgICAgICB7IEZEX0NNRF9DT05GSUdVUkUsIDB4ZmYs ICJDT05GSUdVUkUiLCAzLCBmZGN0cmxfaGFuZGxlX2NvbmZpZ3VyZSB9LA0KLSAgICAgICAg eyBGRF9DTURfUE9XRVJET1dOX01PREUsIDB4ZmYsICJQT1dFUkRPV04gTU9ERSIsIDIsIGZk Y3RybF9oYW5kbGVfcG93ZXJkb3duX21vZGUgfSwNCi0gICAgICAgIHsgRkRfQ01EX09QVElP TiwgMHhmZiwgIk9QVElPTiIsIDEsIGZkY3RybF9oYW5kbGVfb3B0aW9uIH0sDQotICAgICAg ICB7IEZEX0NNRF9EUklWRV9TUEVDSUZJQ0FUSU9OX0NPTU1BTkQsIDB4ZmYsICJEUklWRSBT UEVDSUZJQ0FUSU9OIENPTU1BTkQiLCA1LCBmZGN0cmxfaGFuZGxlX2RyaXZlX3NwZWNpZmlj YXRpb25fY29tbWFuZCB9LA0KLSAgICAgICAgeyBGRF9DTURfUkVMQVRJVkVfU0VFS19PVVQs IDB4ZmYsICJSRUxBVElWRSBTRUVLIE9VVCIsIDIsIGZkY3RybF9oYW5kbGVfcmVsYXRpdmVf c2Vla19vdXQgfSwNCi0gICAgICAgIHsgRkRfQ01EX0ZPUk1BVF9BTkRfV1JJVEUsIDB4ZmYs ICJGT1JNQVQgQU5EIFdSSVRFIiwgMTAsIGZkY3RybF91bmltcGxlbWVudGVkIH0sDQotICAg ICAgICB7IEZEX0NNRF9SRUxBVElWRV9TRUVLX0lOLCAweGZmLCAiUkVMQVRJVkUgU0VFSyBJ TiIsIDIsIGZkY3RybF9oYW5kbGVfcmVsYXRpdmVfc2Vla19pbiB9LA0KLSAgICAgICAgeyBG RF9DTURfTE9DSywgMHg3ZiwgIkxPQ0siLCAwLCBmZGN0cmxfaGFuZGxlX2xvY2sgfSwNCi0g ICAgICAgIHsgRkRfQ01EX0RVTVBSRUcsIDB4ZmYsICJEVU1QUkVHIiwgMCwgZmRjdHJsX2hh bmRsZV9kdW1wcmVnIH0sDQotICAgICAgICB7IEZEX0NNRF9WRVJTSU9OLCAweGZmLCAiVkVS U0lPTiIsIDAsIGZkY3RybF9oYW5kbGVfdmVyc2lvbiB9LA0KLSAgICAgICAgeyBGRF9DTURf UEFSVF9JRCwgMHhmZiwgIlBBUlQgSUQiLCAwLCBmZGN0cmxfaGFuZGxlX3BhcnRpZCB9LA0K LSAgICAgICAgeyBGRF9DTURfV1JJVEUsIDB4MWYsICJXUklURSAoQmVPUykiLCA4LCBmZGN0 cmxfc3RhcnRfdHJhbnNmZXIsIEZEX0RJUl9XUklURSB9LCAvKiBub3QgaW4gc3BlY2lmaWNh dGlvbiA7IEJlT1MgNC41IGJ1ZyAqLw0KLSAgICB9Ow0KIA0KICAgICBjdXJfZHJ2ID0gZ2V0 X2N1cl9kcnYoZmRjdHJsKTsNCiAgICAgLyogUmVzZXQgbW9kZSAqLw0KQEAgLTE4MDMsMjAg KzE3MTcsMTEgQEANCiAgICAgfQ0KICAgICBpZiAoZmRjdHJsLT5kYXRhX3BvcyA9PSAwKSB7 DQogICAgICAgICAvKiBDb21tYW5kICovDQotICAgICAgICBmb3IgKHBvcyA9IDA7IHBvcyA8 IHNpemVvZihjb21tYW5kcykvc2l6ZW9mKGNvbW1hbmRzWzBdKTsgcG9zKyspIHsNCi0gICAg ICAgICAgICBpZiAoKHZhbHVlICYgY29tbWFuZHNbcG9zXS5tYXNrKSA9PSBjb21tYW5kc1tw b3NdLnZhbHVlKSB7DQotICAgICAgICAgICAgICAgIEZMT1BQWV9EUFJJTlRGKCIlcyBjb21t YW5kXG4iLCBjb21tYW5kc1twb3NdLm5hbWUpOw0KLSAgICAgICAgICAgICAgICBmZGN0cmwt PmRhdGFfbGVuID0gY29tbWFuZHNbcG9zXS5wYXJhbWV0ZXJzICsgMTsNCi0gICAgICAgICAg ICAgICAgZ290byBlbnF1ZXVlOw0KLSAgICAgICAgICAgIH0NCi0gICAgICAgIH0NCi0NCi0g ICAgICAgIC8qIFVua25vd24gY29tbWFuZCAqLw0KLSAgICAgICAgRkxPUFBZX0VSUk9SKCJ1 bmtub3duIGNvbW1hbmQ6IDB4JTAyeFxuIiwgdmFsdWUpOw0KLSAgICAgICAgZmRjdHJsX3Vu aW1wbGVtZW50ZWQoZmRjdHJsLCAwKTsNCi0gICAgICAgIHJldHVybjsNCisgICAgICAgIHBv cyA9IGNvbW1hbmRfdG9faGFuZGxlclt2YWx1ZSAmIDB4ZmZdOw0KKyAgICAgICAgRkxPUFBZ X0RQUklOVEYoIiVzIGNvbW1hbmRcbiIsIGhhbmRsZXJzW3Bvc10ubmFtZSk7DQorICAgICAg ICBmZGN0cmwtPmRhdGFfbGVuID0gaGFuZGxlcnNbcG9zXS5wYXJhbWV0ZXJzICsgMTsNCiAg ICAgfQ0KLSBlbnF1ZXVlOg0KKw0KICAgICBGTE9QUFlfRFBSSU5URigiJXM6ICUwMnhcbiIs IF9fZnVuY19fLCB2YWx1ZSk7DQogICAgIGZkY3RybC0+Zmlmb1tmZGN0cmwtPmRhdGFfcG9z XSA9IHZhbHVlOw0KICAgICBpZiAoKytmZGN0cmwtPmRhdGFfcG9zID09IGZkY3RybC0+ZGF0 YV9sZW4pIHsNCkBAIC0xODI4LDEzICsxNzMzLDkgQEANCiAgICAgICAgICAgICByZXR1cm47 DQogICAgICAgICB9DQogDQotICAgICAgICBmb3IgKHBvcyA9IDA7IHBvcyA8IHNpemVvZihj b21tYW5kcykvc2l6ZW9mKGNvbW1hbmRzWzBdKTsgcG9zKyspIHsNCi0gICAgICAgICAgICBp ZiAoKGZkY3RybC0+Zmlmb1swXSAmIGNvbW1hbmRzW3Bvc10ubWFzaykgPT0gY29tbWFuZHNb cG9zXS52YWx1ZSkgew0KLSAgICAgICAgICAgICAgICBGTE9QUFlfRFBSSU5URigidHJlYXQg JXMgY29tbWFuZFxuIiwgY29tbWFuZHNbcG9zXS5uYW1lKTsNCi0gICAgICAgICAgICAgICAg KCpjb21tYW5kc1twb3NdLmhhbmRsZXIpKGZkY3RybCwgY29tbWFuZHNbcG9zXS5wYXJhbWV0 ZXIpOw0KLSAgICAgICAgICAgICAgICBicmVhazsNCi0gICAgICAgICAgICB9DQotICAgICAg ICB9DQorICAgICAgICBwb3MgPSBjb21tYW5kX3RvX2hhbmRsZXJbZmRjdHJsLT5maWZvWzBd ICYgMHhmZl07DQorICAgICAgICBGTE9QUFlfRFBSSU5URigidHJlYXQgJXMgY29tbWFuZFxu IiwgaGFuZGxlcnNbcG9zXS5uYW1lKTsNCisgICAgICAgICgqaGFuZGxlcnNbcG9zXS5oYW5k bGVyKShmZGN0cmwsIGhhbmRsZXJzW3Bvc10uZGlyZWN0aW9uKTsNCiAgICAgfQ0KIH0NCiAN CkBAIC0xODUxLDQgKzE3NTIsMTAyIEBADQogICAgICAgICBjdXJfZHJ2LT5zZWN0ID0gKGN1 cl9kcnYtPnNlY3QgJSBjdXJfZHJ2LT5sYXN0X3NlY3QpICsgMTsNCiAgICAgfQ0KICAgICBm ZGN0cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwsIDB4MDAsIDB4MDAsIDB4MDApOw0KK30NCisN CisvKiBJbml0IGZ1bmN0aW9ucyAqLw0KK3N0YXRpYyBmZGN0cmxfdCAqZmRjdHJsX2luaXRf Y29tbW9uIChxZW11X2lycSBpcnEsIGludCBkbWFfY2hhbm4sDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9waHlzX2FkZHJfdCBpb19iYXNlLA0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCbG9ja0RyaXZlclN0YXRlICoq ZmRzKQ0KK3sNCisgICAgZmRjdHJsX3QgKmZkY3RybDsNCisgICAgaW50IGksIGo7DQorDQor ICAgIC8qIEZpbGwgJ2NvbW1hbmRfdG9faGFuZGxlcicgbG9va3VwIHRhYmxlICovDQorICAg IGZvciAoaSA9IHNpemVvZihoYW5kbGVycykvc2l6ZW9mKGhhbmRsZXJzWzBdKSAtIDE7IGkg Pj0gMDsgaS0tKSB7DQorICAgICAgICBmb3IgKGogPSAwOyBqIDwgc2l6ZW9mKGNvbW1hbmRf dG9faGFuZGxlcik7IGorKykgew0KKyAgICAgICAgICAgIGlmICgoaiAmIGhhbmRsZXJzW2ld Lm1hc2spID09IGhhbmRsZXJzW2ldLnZhbHVlKQ0KKyAgICAgICAgICAgICAgICBjb21tYW5k X3RvX2hhbmRsZXJbal0gPSBpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorICAgIEZMT1BQ WV9EUFJJTlRGKCJpbml0IGNvbnRyb2xsZXJcbiIpOw0KKyAgICBmZGN0cmwgPSBxZW11X21h bGxvY3ooc2l6ZW9mKGZkY3RybF90KSk7DQorICAgIGlmICghZmRjdHJsKQ0KKyAgICAgICAg cmV0dXJuIE5VTEw7DQorICAgIGZkY3RybC0+ZmlmbyA9IHFlbXVfbWVtYWxpZ24oNTEyLCBG RF9TRUNUT1JfTEVOKTsNCisgICAgaWYgKGZkY3RybC0+ZmlmbyA9PSBOVUxMKSB7DQorICAg ICAgICBxZW11X2ZyZWUoZmRjdHJsKTsNCisgICAgICAgIHJldHVybiBOVUxMOw0KKyAgICB9 DQorICAgIGZkY3RybC0+cmVzdWx0X3RpbWVyID0gcWVtdV9uZXdfdGltZXIodm1fY2xvY2ss DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRjdHJsX3Jl c3VsdF90aW1lciwgZmRjdHJsKTsNCisNCisgICAgZmRjdHJsLT52ZXJzaW9uID0gMHg5MDsg LyogSW50ZWwgODIwNzggY29udHJvbGxlciAqLw0KKyAgICBmZGN0cmwtPmlycSA9IGlycTsN CisgICAgZmRjdHJsLT5kbWFfY2hhbm4gPSBkbWFfY2hhbm47DQorICAgIGZkY3RybC0+aW9f YmFzZSA9IGlvX2Jhc2U7DQorICAgIGZkY3RybC0+Y29uZmlnID0gRkRfQ09ORklHX0VJUyB8 IEZEX0NPTkZJR19FRklGTzsgLyogSW1wbGljaXQgc2VlaywgcG9sbGluZyAmIEZJRk8gZW5h YmxlZCAqLw0KKyAgICBpZiAoZmRjdHJsLT5kbWFfY2hhbm4gIT0gLTEpIHsNCisgICAgICAg IGZkY3RybC0+ZG1hX2VuID0gMTsNCisgICAgICAgIERNQV9yZWdpc3Rlcl9jaGFubmVsKGRt YV9jaGFubiwgJmZkY3RybF90cmFuc2Zlcl9oYW5kbGVyLCBmZGN0cmwpOw0KKyAgICB9IGVs c2Ugew0KKyAgICAgICAgZmRjdHJsLT5kbWFfZW4gPSAwOw0KKyAgICB9DQorICAgIGZvciAo aSA9IDA7IGkgPCBNQVhfRkQ7IGkrKykgew0KKyAgICAgICAgZmRfaW5pdCgmZmRjdHJsLT5k cml2ZXNbaV0sIGZkc1tpXSk7DQorICAgIH0NCisgICAgZmRjdHJsX3Jlc2V0KGZkY3RybCwg MCk7DQorICAgIGZkY3RybC0+c3RhdGUgPSBGRF9DVFJMX0FDVElWRTsNCisgICAgcmVnaXN0 ZXJfc2F2ZXZtKCJmZGMiLCBpb19iYXNlLCAxLCBmZGNfc2F2ZSwgZmRjX2xvYWQsIGZkY3Ry bCk7DQorICAgIHFlbXVfcmVnaXN0ZXJfcmVzZXQoZmRjdHJsX2V4dGVybmFsX3Jlc2V0LCBm ZGN0cmwpOw0KKyAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX0ZEOyBpKyspIHsNCisgICAgICAg IGZkX3JldmFsaWRhdGUoJmZkY3RybC0+ZHJpdmVzW2ldKTsNCisgICAgfQ0KKw0KKyAgICBy ZXR1cm4gZmRjdHJsOw0KK30NCisNCitmZGN0cmxfdCAqZmRjdHJsX2luaXQgKHFlbXVfaXJx IGlycSwgaW50IGRtYV9jaGFubiwgaW50IG1lbV9tYXBwZWQsDQorICAgICAgICAgICAgICAg ICAgICAgICB0YXJnZXRfcGh5c19hZGRyX3QgaW9fYmFzZSwNCisgICAgICAgICAgICAgICAg ICAgICAgIEJsb2NrRHJpdmVyU3RhdGUgKipmZHMpDQorew0KKyAgICBmZGN0cmxfdCAqZmRj dHJsOw0KKyAgICBpbnQgaW9fbWVtOw0KKw0KKyAgICBmZGN0cmwgPSBmZGN0cmxfaW5pdF9j b21tb24oaXJxLCBkbWFfY2hhbm4sIGlvX2Jhc2UsIGZkcyk7DQorDQorICAgIGZkY3RybC0+ c3VuNG0gPSAwOw0KKyAgICBpZiAobWVtX21hcHBlZCkgew0KKyAgICAgICAgaW9fbWVtID0g Y3B1X3JlZ2lzdGVyX2lvX21lbW9yeSgwLCBmZGN0cmxfbWVtX3JlYWQsIGZkY3RybF9tZW1f d3JpdGUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkY3Ry bCk7DQorICAgICAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxfbWVtb3J5KGlvX2Jhc2UsIDB4 MDgsIGlvX21lbSk7DQorICAgIH0gZWxzZSB7DQorICAgICAgICByZWdpc3Rlcl9pb3BvcnRf cmVhZCgodWludDMyX3QpaW9fYmFzZSArIDB4MDEsIDUsIDEsICZmZGN0cmxfcmVhZCwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkY3RybCk7DQorICAgICAgICByZWdpc3Rl cl9pb3BvcnRfcmVhZCgodWludDMyX3QpaW9fYmFzZSArIDB4MDcsIDEsIDEsICZmZGN0cmxf cmVhZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkY3RybCk7DQorICAgICAg ICByZWdpc3Rlcl9pb3BvcnRfd3JpdGUoKHVpbnQzMl90KWlvX2Jhc2UgKyAweDAxLCA1LCAx LCAmZmRjdHJsX3dyaXRlLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkY3Ry bCk7DQorICAgICAgICByZWdpc3Rlcl9pb3BvcnRfd3JpdGUoKHVpbnQzMl90KWlvX2Jhc2Ug KyAweDA3LCAxLCAxLCAmZmRjdHJsX3dyaXRlLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZkY3RybCk7DQorICAgIH0NCisNCisgICAgcmV0dXJuIGZkY3RybDsNCit9DQor DQorZmRjdHJsX3QgKnN1bjRtX2ZkY3RybF9pbml0IChxZW11X2lycSBpcnEsIHRhcmdldF9w aHlzX2FkZHJfdCBpb19iYXNlLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxv Y2tEcml2ZXJTdGF0ZSAqKmZkcywgcWVtdV9pcnEgKmZkY190YykNCit7DQorICAgIGZkY3Ry bF90ICpmZGN0cmw7DQorICAgIGludCBpb19tZW07DQorDQorICAgIGZkY3RybCA9IGZkY3Ry bF9pbml0X2NvbW1vbihpcnEsIDAsIGlvX2Jhc2UsIGZkcyk7DQorICAgIGZkY3RybC0+c3Vu NG0gPSAxOw0KKyAgICBpb19tZW0gPSBjcHVfcmVnaXN0ZXJfaW9fbWVtb3J5KDAsIGZkY3Ry bF9tZW1fcmVhZF9zdHJpY3QsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmRjdHJsX21lbV93cml0ZV9zdHJpY3QsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmRjdHJsKTsNCisgICAgY3B1X3JlZ2lzdGVyX3BoeXNpY2FsX21lbW9y eShpb19iYXNlLCAweDA4LCBpb19tZW0pOw0KKyAgICAqZmRjX3RjID0gKnFlbXVfYWxsb2Nh dGVfaXJxcyhmZGN0cmxfaGFuZGxlX3RjLCBmZGN0cmwsIDEpOw0KKw0KKyAgICByZXR1cm4g ZmRjdHJsOw0KIH0NCg== --------------060308060501050407050601 Content-Type: text/plain; name="fdc_02_seek_next_sector.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_02_seek_next_sector.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC05NzQsNiArOTc0LDQw IEBADQogI2VuZGlmDQogfQ0KIA0KKy8qIFNlZWsgdG8gbmV4dCBzZWN0b3IgKi8NCitzdGF0 aWMgaW50IGZkY3RybF9zZWVrX3RvX25leHRfc2VjdCAoZmRjdHJsX3QgKmZkY3RybCwgZmRy aXZlX3QgKmN1cl9kcnYpDQorew0KKyAgICBGTE9QUFlfRFBSSU5URigic2VlayB0byBuZXh0 IHNlY3RvciAoJWQgJTAyeCAlMDJ4ID0+ICVkKVxuIiwNCisgICAgICAgICAgICAgICAgICAg Y3VyX2Rydi0+aGVhZCwgY3VyX2Rydi0+dHJhY2ssIGN1cl9kcnYtPnNlY3QsDQorICAgICAg ICAgICAgICAgICAgIGZkX3NlY3RvcihjdXJfZHJ2KSk7DQorICAgIC8qIFhYWDogY3VyX2Ry di0+c2VjdCA+PSBjdXJfZHJ2LT5sYXN0X3NlY3Qgc2hvdWxkIGJlIGFuDQorICAgICAgIGVy cm9yIGluIGZhY3QgKi8NCisgICAgaWYgKGN1cl9kcnYtPnNlY3QgPj0gY3VyX2Rydi0+bGFz dF9zZWN0IHx8DQorICAgICAgICBjdXJfZHJ2LT5zZWN0ID09IGZkY3RybC0+ZW90KSB7DQor ICAgICAgICBjdXJfZHJ2LT5zZWN0ID0gMTsNCisgICAgICAgIGlmIChGRF9NVUxUSV9UUkFD SyhmZGN0cmwtPmRhdGFfc3RhdGUpKSB7DQorICAgICAgICAgICAgaWYgKGN1cl9kcnYtPmhl YWQgPT0gMCAmJg0KKyAgICAgICAgICAgICAgICAoY3VyX2Rydi0+ZmxhZ3MgJiBGRElTS19E QkxfU0lERVMpICE9IDApIHsNCisgICAgICAgICAgICAgICAgY3VyX2Rydi0+aGVhZCA9IDE7 DQorICAgICAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICAgICAgY3VyX2Rydi0+aGVh ZCA9IDA7DQorICAgICAgICAgICAgICAgIGN1cl9kcnYtPnRyYWNrKys7DQorICAgICAgICAg ICAgICAgIGlmICgoY3VyX2Rydi0+ZmxhZ3MgJiBGRElTS19EQkxfU0lERVMpID09IDApDQor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsNCisgICAgICAgICAgICB9DQorICAgICAg ICB9IGVsc2Ugew0KKyAgICAgICAgICAgIGN1cl9kcnYtPnRyYWNrKys7DQorICAgICAgICAg ICAgcmV0dXJuIDA7DQorICAgICAgICB9DQorICAgICAgICBGTE9QUFlfRFBSSU5URigic2Vl ayB0byBuZXh0IHRyYWNrICglZCAlMDJ4ICUwMnggPT4gJWQpXG4iLA0KKyAgICAgICAgICAg ICAgICAgICAgICAgY3VyX2Rydi0+aGVhZCwgY3VyX2Rydi0+dHJhY2ssDQorICAgICAgICAg ICAgICAgICAgICAgICBjdXJfZHJ2LT5zZWN0LCBmZF9zZWN0b3IoY3VyX2RydikpOw0KKyAg ICB9IGVsc2Ugew0KKyAgICAgICAgY3VyX2Rydi0+c2VjdCsrOw0KKyAgICB9DQorICAgIHJl dHVybiAxOw0KK30NCisNCiAvKiBDYWxsYmFjayBmb3IgdHJhbnNmZXIgZW5kIChzdG9wIG9y IGFib3J0KSAqLw0KIHN0YXRpYyB2b2lkIGZkY3RybF9zdG9wX3RyYW5zZmVyIChmZGN0cmxf dCAqZmRjdHJsLCB1aW50OF90IHN0YXR1czAsDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQ4X3Qgc3RhdHVzMSwgdWludDhfdCBzdGF0dXMyKQ0KQEAgLTExOTYs MzUgKzEyMzAsOCBAQA0KICAgICAgICAgcmVsX3BvcyA9IGZkY3RybC0+ZGF0YV9wb3MgJSBG RF9TRUNUT1JfTEVOOw0KICAgICAgICAgaWYgKHJlbF9wb3MgPT0gMCkgew0KICAgICAgICAg ICAgIC8qIFNlZWsgdG8gbmV4dCBzZWN0b3IgKi8NCi0gICAgICAgICAgICBGTE9QUFlfRFBS SU5URigic2VlayB0byBuZXh0IHNlY3RvciAoJWQgJTAyeCAlMDJ4ID0+ICVkKSAoJWQpXG4i LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cl9kcnYtPmhlYWQsIGN1cl9kcnYt PnRyYWNrLCBjdXJfZHJ2LT5zZWN0LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZk X3NlY3RvcihjdXJfZHJ2KSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmZGN0cmwt PmRhdGFfcG9zIC0gbGVuKTsNCi0gICAgICAgICAgICAvKiBYWFg6IGN1cl9kcnYtPnNlY3Qg Pj0gY3VyX2Rydi0+bGFzdF9zZWN0IHNob3VsZCBiZSBhbg0KLSAgICAgICAgICAgICAgIGVy cm9yIGluIGZhY3QgKi8NCi0gICAgICAgICAgICBpZiAoY3VyX2Rydi0+c2VjdCA+PSBjdXJf ZHJ2LT5sYXN0X3NlY3QgfHwNCi0gICAgICAgICAgICAgICAgY3VyX2Rydi0+c2VjdCA9PSBm ZGN0cmwtPmVvdCkgew0KLSAgICAgICAgICAgICAgICBjdXJfZHJ2LT5zZWN0ID0gMTsNCi0g ICAgICAgICAgICAgICAgaWYgKEZEX01VTFRJX1RSQUNLKGZkY3RybC0+ZGF0YV9zdGF0ZSkp IHsNCi0gICAgICAgICAgICAgICAgICAgIGlmIChjdXJfZHJ2LT5oZWFkID09IDAgJiYNCi0g ICAgICAgICAgICAgICAgICAgICAgICAoY3VyX2Rydi0+ZmxhZ3MgJiBGRElTS19EQkxfU0lE RVMpICE9IDApIHsNCi0gICAgICAgICAgICAgICAgICAgICAgICBjdXJfZHJ2LT5oZWFkID0g MTsNCi0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQotICAgICAgICAgICAgICAgICAg ICAgICAgY3VyX2Rydi0+aGVhZCA9IDA7DQotICAgICAgICAgICAgICAgICAgICAgICAgY3Vy X2Rydi0+dHJhY2srKzsNCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGN1cl9kcnYt PmZsYWdzICYgRkRJU0tfREJMX1NJREVTKSA9PSAwKQ0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCi0gICAgICAgICAgICAgICAgICAgIH0NCi0gICAgICAgICAgICAg ICAgfSBlbHNlIHsNCi0gICAgICAgICAgICAgICAgICAgIGN1cl9kcnYtPnRyYWNrKys7DQot ICAgICAgICAgICAgICAgICAgICBicmVhazsNCi0gICAgICAgICAgICAgICAgfQ0KLSAgICAg ICAgICAgICAgICBGTE9QUFlfRFBSSU5URigic2VlayB0byBuZXh0IHRyYWNrICglZCAlMDJ4 ICUwMnggPT4gJWQpXG4iLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJf ZHJ2LT5oZWFkLCBjdXJfZHJ2LT50cmFjaywNCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY3VyX2Rydi0+c2VjdCwgZmRfc2VjdG9yKGN1cl9kcnYpKTsNCi0gICAgICAgICAg ICB9IGVsc2Ugew0KLSAgICAgICAgICAgICAgICBjdXJfZHJ2LT5zZWN0Kys7DQotICAgICAg ICAgICAgfQ0KKyAgICAgICAgICAgIGlmICghZmRjdHJsX3NlZWtfdG9fbmV4dF9zZWN0KGZk Y3RybCwgY3VyX2RydikpDQorICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgfQ0K ICAgICB9DQogIGVuZF90cmFuc2ZlcjoNCkBAIC0xMjUwLDcgKzEyNTcsNyBAQA0KIHsNCiAg ICAgZmRyaXZlX3QgKmN1cl9kcnY7DQogICAgIHVpbnQzMl90IHJldHZhbCA9IDA7DQotICAg IGludCBwb3MsIGxlbjsNCisgICAgaW50IHBvczsNCiANCiAgICAgY3VyX2RydiA9IGdldF9j dXJfZHJ2KGZkY3RybCk7DQogICAgIGZkY3RybC0+c3RhdGUgJj0gfkZEX0NUUkxfU0xFRVA7 DQpAQCAtMTI2Miw5ICsxMjY5LDEyIEBADQogICAgIGlmIChGRF9TVEFURShmZGN0cmwtPmRh dGFfc3RhdGUpID09IEZEX1NUQVRFX0RBVEEpIHsNCiAgICAgICAgIHBvcyAlPSBGRF9TRUNU T1JfTEVOOw0KICAgICAgICAgaWYgKHBvcyA9PSAwKSB7DQotICAgICAgICAgICAgbGVuID0g ZmRjdHJsLT5kYXRhX2xlbiAtIGZkY3RybC0+ZGF0YV9wb3M7DQotICAgICAgICAgICAgaWYg KGxlbiA+IEZEX1NFQ1RPUl9MRU4pDQotICAgICAgICAgICAgICAgIGxlbiA9IEZEX1NFQ1RP Ul9MRU47DQorICAgICAgICAgICAgaWYgKGZkY3RybC0+ZGF0YV9wb3MgIT0gMCkNCisgICAg ICAgICAgICAgICAgaWYgKCFmZGN0cmxfc2Vla190b19uZXh0X3NlY3QoZmRjdHJsLCBjdXJf ZHJ2KSkgew0KKyAgICAgICAgICAgICAgICAgICAgRkxPUFBZX0RQUklOVEYoImVycm9yIHNl ZWtpbmcgdG8gbmV4dCBzZWN0b3IgJWRcbiIsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmZF9zZWN0b3IoY3VyX2RydikpOw0KKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDA7DQorICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICBiZHJ2X3JlYWQo Y3VyX2Rydi0+YnMsIGZkX3NlY3RvcihjdXJfZHJ2KSwgZmRjdHJsLT5maWZvLCAxKTsNCiAg ICAgICAgIH0NCiAgICAgfQ0KQEAgLTE3MDcsNiArMTcxNywxMSBAQA0KICAgICAgICAgaWYg KGZkY3RybC0+ZGF0YV9wb3MgJSBGRF9TRUNUT1JfTEVOID09IChGRF9TRUNUT1JfTEVOIC0g MSkgfHwNCiAgICAgICAgICAgICBmZGN0cmwtPmRhdGFfcG9zID09IGZkY3RybC0+ZGF0YV9s ZW4pIHsNCiAgICAgICAgICAgICBiZHJ2X3dyaXRlKGN1cl9kcnYtPmJzLCBmZF9zZWN0b3Io Y3VyX2RydiksIGZkY3RybC0+ZmlmbywgMSk7DQorICAgICAgICAgICAgaWYgKCFmZGN0cmxf c2Vla190b19uZXh0X3NlY3QoZmRjdHJsLCBjdXJfZHJ2KSkgew0KKyAgICAgICAgICAgICAg ICBGTE9QUFlfRFBSSU5URigiZXJyb3Igc2Vla2luZyB0byBuZXh0IHNlY3RvciAlZFxuIiwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRfc2VjdG9yKGN1cl9kcnYpKTsN CisgICAgICAgICAgICAgICAgcmV0dXJuOw0KKyAgICAgICAgICAgIH0NCiAgICAgICAgIH0N CiAgICAgICAgIC8qIFN3aXRjaCBmcm9tIHRyYW5zZmVyIG1vZGUgdG8gc3RhdHVzIG1vZGUN CiAgICAgICAgICAqIHRoZW4gZnJvbSBzdGF0dXMgbW9kZSB0byBjb21tYW5kIG1vZGUNCg== --------------060308060501050407050601 Content-Type: text/plain; name="fdc_03_status_ab.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_03_status_ab.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC0zMjMsNiArMzIzLDcg QEANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZG1hX3Bvcywg aW50IGRtYV9sZW4pOw0KIHN0YXRpYyB2b2lkIGZkY3RybF9yYWlzZV9pcnEgKGZkY3RybF90 ICpmZGN0cmwsIHVpbnQ4X3Qgc3RhdHVzKTsNCiANCitzdGF0aWMgdWludDMyX3QgZmRjdHJs X3JlYWRfc3RhdHVzQSAoZmRjdHJsX3QgKmZkY3RybCk7DQogc3RhdGljIHVpbnQzMl90IGZk Y3RybF9yZWFkX3N0YXR1c0IgKGZkY3RybF90ICpmZGN0cmwpOw0KIHN0YXRpYyB1aW50MzJf dCBmZGN0cmxfcmVhZF9kb3IgKGZkY3RybF90ICpmZGN0cmwpOw0KIHN0YXRpYyB2b2lkIGZk Y3RybF93cml0ZV9kb3IgKGZkY3RybF90ICpmZGN0cmwsIHVpbnQzMl90IHZhbHVlKTsNCkBA IC0zMzksNyArMzQwLDYgQEANCiAgICAgRkRfQ1RSTF9SRVNFVCAgPSAweDAyLA0KICAgICBG RF9DVFJMX1NMRUVQICA9IDB4MDQsIC8qIFhYWDogc3VwcHJlc3MgdGhhdCAqLw0KICAgICBG RF9DVFJMX0JVU1kgICA9IDB4MDgsIC8qIGRtYSB0cmFuc2ZlciBpbiBwcm9ncmVzcyAqLw0K LSAgICBGRF9DVFJMX0lOVFIgICA9IDB4MTAsDQogfTsNCiANCiBlbnVtIHsNCkBAIC0zNjEs OCArMzYxLDggQEANCiB9Ow0KIA0KIGVudW0gew0KLSAgICBGRF9SRUdfMCA9IDB4MDAsDQot ICAgIEZEX1JFR19TVEFUVVNCID0gMHgwMSwNCisgICAgRkRfUkVHX1NSQSA9IDB4MDAsDQor ICAgIEZEX1JFR19TUkIgPSAweDAxLA0KICAgICBGRF9SRUdfRE9SID0gMHgwMiwNCiAgICAg RkRfUkVHX1REUiA9IDB4MDMsDQogICAgIEZEX1JFR19NU1IgPSAweDA0LA0KQEAgLTQyMSw2 ICs0MjEsMjYgQEANCiB9Ow0KIA0KIGVudW0gew0KKyAgICBGRF9TUkFfRElSICAgICAgPSAw eDAxLA0KKyAgICBGRF9TUkFfbldQICAgICAgPSAweDAyLA0KKyAgICBGRF9TUkFfbklORFgg ICAgPSAweDA0LA0KKyAgICBGRF9TUkFfSERTRUwgICAgPSAweDA4LA0KKyAgICBGRF9TUkFf blRSSzAgICAgPSAweDEwLA0KKyAgICBGRF9TUkFfU1RFUCAgICAgPSAweDIwLA0KKyAgICBG RF9TUkFfbkRSVjIgICAgPSAweDQwLA0KKyAgICBGRF9TUkFfSU5UUEVORCAgPSAweDgwLA0K K307DQorDQorZW51bSB7DQorICAgIEZEX1NSQl9NVFIwICAgICA9IDB4MDEsDQorICAgIEZE X1NSQl9NVFIxICAgICA9IDB4MDIsDQorICAgIEZEX1NSQl9XR0FURSAgICA9IDB4MDQsDQor ICAgIEZEX1NSQl9SREFUQSAgICA9IDB4MDgsDQorICAgIEZEX1NSQl9XREFUQSAgICA9IDB4 MTAsDQorICAgIEZEX1NSQl9EUjAgICAgICA9IDB4MjAsDQorfTsNCisNCitlbnVtIHsNCiAg ICAgRkRfRE9SX1NFTE1BU0sgID0gMHgwMSwNCiAgICAgRkRfRE9SX25SRVNFVCAgID0gMHgw NCwNCiAgICAgRkRfRE9SX0RNQUVOICAgID0gMHgwOCwNCkBAIC00NzIsNiArNDkyLDggQEAN CiAgICAgdGFyZ2V0X3BoeXNfYWRkcl90IGlvX2Jhc2U7DQogICAgIC8qIENvbnRyb2xsZXIg c3RhdGUgKi8NCiAgICAgUUVNVVRpbWVyICpyZXN1bHRfdGltZXI7DQorICAgIHVpbnQ4X3Qg c3JhOw0KKyAgICB1aW50OF90IHNyYjsNCiAgICAgdWludDhfdCBzdGF0ZTsNCiAgICAgdWlu dDhfdCBkbWFfZW47DQogICAgIHVpbnQ4X3QgY3VyX2RydjsNCkBAIC01MDYsMTUgKzUyOCwx MCBAQA0KICAgICB1aW50MzJfdCByZXR2YWw7DQogDQogICAgIHN3aXRjaCAocmVnICYgMHgw Nykgew0KLSAgICBjYXNlIEZEX1JFR18wOg0KLSAgICAgICAgaWYgKGZkY3RybC0+c3VuNG0p IHsNCi0gICAgICAgICAgICAvLyBJZGVudGlmeSB0byBMaW51eCBhcyBTODIwNzhCDQotICAg ICAgICAgICAgcmV0dmFsID0gZmRjdHJsX3JlYWRfc3RhdHVzQihmZGN0cmwpOw0KLSAgICAg ICAgfSBlbHNlIHsNCi0gICAgICAgICAgICByZXR2YWwgPSAodWludDMyX3QpKC0xKTsNCi0g ICAgICAgIH0NCisgICAgY2FzZSBGRF9SRUdfU1JBOg0KKyAgICAgICAgcmV0dmFsID0gZmRj dHJsX3JlYWRfc3RhdHVzQShmZGN0cmwpOw0KICAgICAgICAgYnJlYWs7DQotICAgIGNhc2Ug RkRfUkVHX1NUQVRVU0I6DQorICAgIGNhc2UgRkRfUkVHX1NSQjoNCiAgICAgICAgIHJldHZh bCA9IGZkY3RybF9yZWFkX3N0YXR1c0IoZmRjdHJsKTsNCiAgICAgICAgIGJyZWFrOw0KICAg ICBjYXNlIEZEX1JFR19ET1I6DQpAQCAtNjE3LDYgKzYzNCw5IEBADQogew0KICAgICBmZGN0 cmxfdCAqcyA9IG9wYXF1ZTsNCiANCisgICAgLyogQ29udHJvbGxlciBzdGF0ZSAqLw0KKyAg ICBxZW11X3B1dF84cyhmLCAmcy0+c3JhKTsNCisgICAgcWVtdV9wdXRfOHMoZiwgJnMtPnNy Yik7DQogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5zdGF0ZSk7DQogICAgIHFlbXVfcHV0Xzhz KGYsICZzLT5kbWFfZW4pOw0KICAgICBxZW11X3B1dF84cyhmLCAmcy0+Y3VyX2Rydik7DQpA QCAtNjYxLDYgKzY4MSw5IEBADQogICAgIGlmICh2ZXJzaW9uX2lkICE9IDEpDQogICAgICAg ICByZXR1cm4gLUVJTlZBTDsNCiANCisgICAgLyogQ29udHJvbGxlciBzdGF0ZSAqLw0KKyAg ICBxZW11X2dldF84cyhmLCAmcy0+c3JhKTsNCisgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnNy Yik7DQogICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5zdGF0ZSk7DQogICAgIHFlbXVfZ2V0Xzhz KGYsICZzLT5kbWFfZW4pOw0KICAgICBxZW11X2dldF84cyhmLCAmcy0+Y3VyX2Rydik7DQpA QCAtNzEyLDkgKzczNSwxMSBAQA0KIC8qIENoYW5nZSBJUlEgc3RhdGUgKi8NCiBzdGF0aWMg dm9pZCBmZGN0cmxfcmVzZXRfaXJxIChmZGN0cmxfdCAqZmRjdHJsKQ0KIHsNCisgICAgaWYg KCEoZmRjdHJsLT5zcmEgJiBGRF9TUkFfSU5UUEVORCkpDQorICAgICAgICByZXR1cm47DQog ICAgIEZMT1BQWV9EUFJJTlRGKCJSZXNldCBpbnRlcnJ1cHRcbiIpOw0KICAgICBxZW11X3Nl dF9pcnEoZmRjdHJsLT5pcnEsIDApOw0KLSAgICBmZGN0cmwtPnN0YXRlICY9IH5GRF9DVFJM X0lOVFI7DQorICAgIGZkY3RybC0+c3JhICY9IH5GRF9TUkFfSU5UUEVORDsNCiB9DQogDQog c3RhdGljIHZvaWQgZmRjdHJsX3JhaXNlX2lycSAoZmRjdHJsX3QgKmZkY3RybCwgdWludDhf dCBzdGF0dXMpDQpAQCAtNzI1LDkgKzc1MCw5IEBADQogICAgICAgICBmZGN0cmwtPmludF9z dGF0dXMgPSBzdGF0dXM7DQogICAgICAgICByZXR1cm47DQogICAgIH0NCi0gICAgaWYgKH4o ZmRjdHJsLT5zdGF0ZSAmIEZEX0NUUkxfSU5UUikpIHsNCisgICAgaWYgKCEoZmRjdHJsLT5z cmEgJiBGRF9TUkFfSU5UUEVORCkpIHsNCiAgICAgICAgIHFlbXVfc2V0X2lycShmZGN0cmwt PmlycSwgMSk7DQotICAgICAgICBmZGN0cmwtPnN0YXRlIHw9IEZEX0NUUkxfSU5UUjsNCisg ICAgICAgIGZkY3RybC0+c3JhIHw9IEZEX1NSQV9JTlRQRU5EOw0KICAgICB9DQogICAgIEZM T1BQWV9EUFJJTlRGKCJTZXQgaW50ZXJydXB0IHN0YXR1cyB0byAweCUwMnhcbiIsIHN0YXR1 cyk7DQogICAgIGZkY3RybC0+aW50X3N0YXR1cyA9IHN0YXR1czsNCkBAIC03NDEsNiArNzY2 LDEwIEBADQogICAgIEZMT1BQWV9EUFJJTlRGKCJyZXNldCBjb250cm9sbGVyXG4iKTsNCiAg ICAgZmRjdHJsX3Jlc2V0X2lycShmZGN0cmwpOw0KICAgICAvKiBJbml0aWFsaXNlIGNvbnRy b2xsZXIgKi8NCisgICAgZmRjdHJsLT5zcmEgPSAwOw0KKyAgICBmZGN0cmwtPnNyYiA9IDB4 YzA7DQorICAgIGlmICghZmRjdHJsLT5kcml2ZXNbMV0uYnMpDQorICAgICAgICBmZGN0cmwt PnNyYSB8PSBGRF9TUkFfbkRSVjI7DQogICAgIGZkY3RybC0+Y3VyX2RydiA9IDA7DQogICAg IC8qIEZJRk8gc3RhdGUgKi8NCiAgICAgZmRjdHJsLT5kYXRhX3BvcyA9IDA7DQpAQCAtNzY5 LDExICs3OTgsMjQgQEANCiAgICAgcmV0dXJuIGZkY3RybC0+Y3VyX2RydiA9PSAwID8gZHJ2 MChmZGN0cmwpIDogZHJ2MShmZGN0cmwpOw0KIH0NCiANCisvKiBTdGF0dXMgQSByZWdpc3Rl ciA6IDB4MDAgKHJlYWQtb25seSkgKi8NCitzdGF0aWMgdWludDMyX3QgZmRjdHJsX3JlYWRf c3RhdHVzQSAoZmRjdHJsX3QgKmZkY3RybCkNCit7DQorICAgIHVpbnQzMl90IHJldHZhbCA9 IGZkY3RybC0+c3JhOw0KKw0KKyAgICBGTE9QUFlfRFBSSU5URigic3RhdHVzIHJlZ2lzdGVy IEE6IDB4JTAyeFxuIiwgcmV0dmFsKTsNCisNCisgICAgcmV0dXJuIHJldHZhbDsNCit9DQor DQogLyogU3RhdHVzIEIgcmVnaXN0ZXIgOiAweDAxIChyZWFkLW9ubHkpICovDQogc3RhdGlj IHVpbnQzMl90IGZkY3RybF9yZWFkX3N0YXR1c0IgKGZkY3RybF90ICpmZGN0cmwpDQogew0K LSAgICBGTE9QUFlfRFBSSU5URigic3RhdHVzIHJlZ2lzdGVyOiAweDAwXG4iKTsNCi0gICAg cmV0dXJuIDA7DQorICAgIHVpbnQzMl90IHJldHZhbCA9IGZkY3RybC0+c3JiOw0KKw0KKyAg ICBGTE9QUFlfRFBSSU5URigic3RhdHVzIHJlZ2lzdGVyIEI6IDB4JTAyeFxuIiwgcmV0dmFs KTsNCisNCisgICAgcmV0dXJuIHJldHZhbDsNCiB9DQogDQogLyogRGlnaXRhbCBvdXRwdXQg cmVnaXN0ZXIgOiAweDAyICovDQpAQCAtODA5LDYgKzg1MSwyMyBAQA0KICAgICAgICAgfQ0K ICAgICB9DQogICAgIEZMT1BQWV9EUFJJTlRGKCJkaWdpdGFsIG91dHB1dCByZWdpc3RlciBz ZXQgdG8gMHglMDJ4XG4iLCB2YWx1ZSk7DQorDQorICAgIC8qIE1vdG9ycyAqLw0KKyAgICBp ZiAodmFsdWUgJiBGRF9ET1JfTU9URU4wKQ0KKyAgICAgICAgZmRjdHJsLT5zcmIgfD0gRkRf U1JCX01UUjA7DQorICAgIGVsc2UNCisgICAgICAgIGZkY3RybC0+c3JiICY9IH5GRF9TUkJf TVRSMDsNCisgICAgaWYgKHZhbHVlICYgRkRfRE9SX01PVEVOMSkNCisgICAgICAgIGZkY3Ry bC0+c3JiIHw9IEZEX1NSQl9NVFIxOw0KKyAgICBlbHNlDQorICAgICAgICBmZGN0cmwtPnNy YiAmPSB+RkRfU1JCX01UUjE7DQorDQorICAgIC8qIERyaXZlICovDQorICAgIGlmICh2YWx1 ZSAmIDEpDQorICAgICAgICBmZGN0cmwtPnNyYiB8PSBGRF9TUkJfRFIwOw0KKyAgICBlbHNl DQorICAgICAgICBmZGN0cmwtPnNyYiAmPSB+RkRfU1JCX0RSMDsNCisNCiAgICAgLyogRHJp dmUgbW90b3JzIHN0YXRlIGluZGljYXRvcnMgKi8NCiAgICAgaWYgKHZhbHVlICYgRkRfRE9S X01PVEVOMSkNCiAgICAgICAgIGZkX3N0YXJ0KGRydjEoZmRjdHJsKSk7DQo= --------------060308060501050407050601 Content-Type: text/plain; name="fdc_04_dmaen.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_04_dmaen.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC00OTQsNiArNDk0LDgg QEANCiAgICAgUUVNVVRpbWVyICpyZXN1bHRfdGltZXI7DQogICAgIHVpbnQ4X3Qgc3JhOw0K ICAgICB1aW50OF90IHNyYjsNCisgICAgdWludDhfdCBkb3I7DQorICAgIHVpbnQ4X3QgbXNy Ow0KICAgICB1aW50OF90IHN0YXRlOw0KICAgICB1aW50OF90IGRtYV9lbjsNCiAgICAgdWlu dDhfdCBjdXJfZHJ2Ow0KQEAgLTc3MSw2ICs3NzMsOSBAQA0KICAgICBpZiAoIWZkY3RybC0+ ZHJpdmVzWzFdLmJzKQ0KICAgICAgICAgZmRjdHJsLT5zcmEgfD0gRkRfU1JBX25EUlYyOw0K ICAgICBmZGN0cmwtPmN1cl9kcnYgPSAwOw0KKyAgICBmZGN0cmwtPmRvciA9IDA7DQorICAg IGZkY3RybC0+ZG9yIHw9IChmZGN0cmwtPmRtYV9jaGFubiAhPSAtMSkgPyBGRF9ET1JfRE1B RU4gOiAwOw0KKyAgICBmZGN0cmwtPm1zciA9IDA7DQogICAgIC8qIEZJRk8gc3RhdGUgKi8N CiAgICAgZmRjdHJsLT5kYXRhX3BvcyA9IDA7DQogICAgIGZkY3RybC0+ZGF0YV9sZW4gPSAw Ow0KQEAgLTgyOSw3ICs4MzQsNyBAQA0KICAgICBpZiAoZHJ2MShmZGN0cmwpLT5kcmZsYWdz ICYgRkRSSVZFX01PVE9SX09OKQ0KICAgICAgICAgcmV0dmFsIHw9IEZEX0RPUl9NT1RFTjE7 DQogICAgIC8qIERNQSBlbmFibGUgKi8NCi0gICAgaWYgKGZkY3RybC0+ZG1hX2VuKQ0KKyAg ICBpZiAoZmRjdHJsLT5kb3IgJiBGRF9ET1JfRE1BRU4pDQogICAgICAgICByZXR2YWwgfD0g RkRfRE9SX0RNQUVOOw0KICAgICAvKiBSZXNldCBpbmRpY2F0b3IgKi8NCiAgICAgaWYgKCEo ZmRjdHJsLT5zdGF0ZSAmIEZEX0NUUkxfUkVTRVQpKQ0KQEAgLTg5Nyw2ICs5MDIsOCBAQA0K ICAgICB9DQogICAgIC8qIFNlbGVjdGVkIGRyaXZlICovDQogICAgIGZkY3RybC0+Y3VyX2Ry diA9IHZhbHVlICYgRkRfRE9SX1NFTE1BU0s7DQorDQorICAgIGZkY3RybC0+ZG9yID0gdmFs dWU7DQogfQ0KIA0KIC8qIFRhcGUgZHJpdmUgcmVnaXN0ZXIgOiAweDAzICovDQpAQCAtMTA4 NSwxMCArMTA5MiwxMSBAQA0KICAgICBmZGN0cmwtPmZpZm9bNV0gPSBjdXJfZHJ2LT5zZWN0 Ow0KICAgICBmZGN0cmwtPmZpZm9bNl0gPSBGRF9TRUNUT1JfU0M7DQogICAgIGZkY3RybC0+ ZGF0YV9kaXIgPSBGRF9ESVJfUkVBRDsNCi0gICAgaWYgKGZkY3RybC0+c3RhdGUgJiBGRF9D VFJMX0JVU1kpIHsNCisgICAgaWYgKCEoZmRjdHJsLT5tc3IgJiBGRF9NU1JfTk9ORE1BKSkg ew0KICAgICAgICAgRE1BX3JlbGVhc2VfRFJFUShmZGN0cmwtPmRtYV9jaGFubik7DQogICAg ICAgICBmZGN0cmwtPnN0YXRlICY9IH5GRF9DVFJMX0JVU1k7DQogICAgIH0NCisgICAgZmRj dHJsLT5tc3IgJj0gfkZEX01TUl9OT05ETUE7DQogICAgIGZkY3RybF9zZXRfZmlmbyhmZGN0 cmwsIDcsIDEpOw0KIH0NCiANCkBAIC0xMTU5LDcgKzExNjcsNyBAQA0KICAgICAgICAgZmRj dHJsLT5kYXRhX2xlbiAqPSB0bXA7DQogICAgIH0NCiAgICAgZmRjdHJsLT5lb3QgPSBmZGN0 cmwtPmZpZm9bNl07DQotICAgIGlmIChmZGN0cmwtPmRtYV9lbikgew0KKyAgICBpZiAoZmRj dHJsLT5kb3IgJiBGRF9ET1JfRE1BRU4pIHsNCiAgICAgICAgIGludCBkbWFfbW9kZTsNCiAg ICAgICAgIC8qIERNQSB0cmFuc2ZlciBhcmUgZW5hYmxlZC4gQ2hlY2sgaWYgRE1BIGNoYW5u ZWwgaXMgd2VsbCBwcm9ncmFtbWVkICovDQogICAgICAgICBkbWFfbW9kZSA9IERNQV9nZXRf Y2hhbm5lbF9tb2RlKGZkY3RybC0+ZG1hX2NoYW5uKTsNCkBAIC0xMTg1LDYgKzExOTMsNyBA QA0KICAgICAgICAgfQ0KICAgICB9DQogICAgIEZMT1BQWV9EUFJJTlRGKCJzdGFydCBub24t RE1BIHRyYW5zZmVyXG4iKTsNCisgICAgZmRjdHJsLT5tc3IgfD0gRkRfTVNSX05PTkRNQTsN CiAgICAgLyogSU8gYmFzZWQgdHJhbnNmZXI6IGNhbGN1bGF0ZSBsZW4gKi8NCiAgICAgZmRj dHJsX3JhaXNlX2lycShmZGN0cmwsIDB4MDApOw0KIA0KQEAgLTEzMjUsNyArMTMzNCw3IEBA DQogICAgICAgICByZXR1cm4gMDsNCiAgICAgfQ0KICAgICBwb3MgPSBmZGN0cmwtPmRhdGFf cG9zOw0KLSAgICBpZiAoRkRfU1RBVEUoZmRjdHJsLT5kYXRhX3N0YXRlKSA9PSBGRF9TVEFU RV9EQVRBKSB7DQorICAgIGlmIChmZGN0cmwtPm1zciAmIEZEX01TUl9OT05ETUEpIHsNCiAg ICAgICAgIHBvcyAlPSBGRF9TRUNUT1JfTEVOOw0KICAgICAgICAgaWYgKHBvcyA9PSAwKSB7 DQogICAgICAgICAgICAgaWYgKGZkY3RybC0+ZGF0YV9wb3MgIT0gMCkNCkBAIC0xMzQzLDcg KzEzNTIsNyBAQA0KICAgICAgICAgLyogU3dpdGNoIGZyb20gdHJhbnNmZXIgbW9kZSB0byBz dGF0dXMgbW9kZQ0KICAgICAgICAgICogdGhlbiBmcm9tIHN0YXR1cyBtb2RlIHRvIGNvbW1h bmQgbW9kZQ0KICAgICAgICAgICovDQotICAgICAgICBpZiAoRkRfU1RBVEUoZmRjdHJsLT5k YXRhX3N0YXRlKSA9PSBGRF9TVEFURV9EQVRBKSB7DQorICAgICAgICBpZiAoZmRjdHJsLT5t c3IgJiBGRF9NU1JfTk9ORE1BKSB7DQogICAgICAgICAgICAgZmRjdHJsX3N0b3BfdHJhbnNm ZXIoZmRjdHJsLCBGRF9TUjBfU0VFSywgMHgwMCwgMHgwMCk7DQogICAgICAgICB9IGVsc2Ug ew0KICAgICAgICAgICAgIGZkY3RybF9yZXNldF9maWZvKGZkY3RybCk7DQpAQCAtMTQzOCw3 ICsxNDQ3LDcgQEANCiAgICAgZmRjdHJsLT5maWZvWzNdID0gMDsNCiAgICAgLyogdGltZXJz ICovDQogICAgIGZkY3RybC0+Zmlmb1s0XSA9IGZkY3RybC0+dGltZXIwOw0KLSAgICBmZGN0 cmwtPmZpZm9bNV0gPSAoZmRjdHJsLT50aW1lcjEgPDwgMSkgfCBmZGN0cmwtPmRtYV9lbjsN CisgICAgZmRjdHJsLT5maWZvWzVdID0gKGZkY3RybC0+dGltZXIxIDw8IDEpIHwgKGZkY3Ry bC0+ZG9yICYgRkRfRE9SX0RNQUVOID8gMSA6IDApOw0KICAgICBmZGN0cmwtPmZpZm9bNl0g PSBjdXJfZHJ2LT5sYXN0X3NlY3Q7DQogICAgIGZkY3RybC0+Zmlmb1s3XSA9IChmZGN0cmwt PmxvY2sgPDwgNykgfA0KICAgICAgICAgKGN1cl9kcnYtPnBlcnBlbmRpY3VsYXIgPDwgMik7 DQpAQCAtMTU0Nyw3ICsxNTU2LDEwIEBADQogew0KICAgICBmZGN0cmwtPnRpbWVyMCA9IChm ZGN0cmwtPmZpZm9bMV0gPj4gNCkgJiAweEY7DQogICAgIGZkY3RybC0+dGltZXIxID0gZmRj dHJsLT5maWZvWzJdID4+IDE7DQotICAgIGZkY3RybC0+ZG1hX2VuID0gMSAtIChmZGN0cmwt PmZpZm9bMl0gJiAxKSA7DQorICAgIGlmIChmZGN0cmwtPmZpZm9bMl0gJiAxKQ0KKyAgICAg ICAgZmRjdHJsLT5kb3IgJj0gfkZEX0RPUl9ETUFFTjsNCisgICAgZWxzZQ0KKyAgICAgICAg ZmRjdHJsLT5kb3IgfD0gRkRfRE9SX0RNQUVOOw0KICAgICAvKiBObyByZXN1bHQgYmFjayAq Lw0KICAgICBmZGN0cmxfcmVzZXRfZmlmbyhmZGN0cmwpOw0KIH0NCkBAIC0xNzcwLDcgKzE3 ODIsNyBAQA0KICAgICAgICAgcmV0dXJuOw0KICAgICB9DQogICAgIC8qIElzIGl0IHdyaXRl IGNvbW1hbmQgdGltZSA/ICovDQotICAgIGlmIChGRF9TVEFURShmZGN0cmwtPmRhdGFfc3Rh dGUpID09IEZEX1NUQVRFX0RBVEEpIHsNCisgICAgaWYgKGZkY3RybC0+bXNyICYgRkRfTVNS X05PTkRNQSkgew0KICAgICAgICAgLyogRklGTyBkYXRhIHdyaXRlICovDQogICAgICAgICBm ZGN0cmwtPmZpZm9bZmRjdHJsLT5kYXRhX3BvcysrXSA9IHZhbHVlOw0KICAgICAgICAgaWYg KGZkY3RybC0+ZGF0YV9wb3MgJSBGRF9TRUNUT1JfTEVOID09IChGRF9TRUNUT1JfTEVOIC0g MSkgfHwNCkBAIC0xODYyLDEwICsxODc0LDcgQEANCiAgICAgZmRjdHJsLT5pb19iYXNlID0g aW9fYmFzZTsNCiAgICAgZmRjdHJsLT5jb25maWcgPSBGRF9DT05GSUdfRUlTIHwgRkRfQ09O RklHX0VGSUZPOyAvKiBJbXBsaWNpdCBzZWVrLCBwb2xsaW5nICYgRklGTyBlbmFibGVkICov DQogICAgIGlmIChmZGN0cmwtPmRtYV9jaGFubiAhPSAtMSkgew0KLSAgICAgICAgZmRjdHJs LT5kbWFfZW4gPSAxOw0KICAgICAgICAgRE1BX3JlZ2lzdGVyX2NoYW5uZWwoZG1hX2NoYW5u LCAmZmRjdHJsX3RyYW5zZmVyX2hhbmRsZXIsIGZkY3RybCk7DQotICAgIH0gZWxzZSB7DQot ICAgICAgICBmZGN0cmwtPmRtYV9lbiA9IDA7DQogICAgIH0NCiAgICAgZm9yIChpID0gMDsg aSA8IE1BWF9GRDsgaSsrKSB7DQogICAgICAgICBmZF9pbml0KCZmZGN0cmwtPmRyaXZlc1tp XSwgZmRzW2ldKTsNCkBAIC0xOTE1LDcgKzE5MjQsNyBAQA0KICAgICBmZGN0cmxfdCAqZmRj dHJsOw0KICAgICBpbnQgaW9fbWVtOw0KIA0KLSAgICBmZGN0cmwgPSBmZGN0cmxfaW5pdF9j b21tb24oaXJxLCAwLCBpb19iYXNlLCBmZHMpOw0KKyAgICBmZGN0cmwgPSBmZGN0cmxfaW5p dF9jb21tb24oaXJxLCAtMSwgaW9fYmFzZSwgZmRzKTsNCiAgICAgZmRjdHJsLT5zdW40bSA9 IDE7DQogICAgIGlvX21lbSA9IGNwdV9yZWdpc3Rlcl9pb19tZW1vcnkoMCwgZmRjdHJsX21l bV9yZWFkX3N0cmljdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm ZGN0cmxfbWVtX3dyaXRlX3N0cmljdCwNCg== --------------060308060501050407050601 Content-Type: text/plain; name="fdc_05_dor_reg.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_05_dor_reg.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC02OSwxMCArNjksNiBA QA0KICAgICBGRFJJVkVfRFJWX05PTkUgPSAweDAzLCAgIC8qIE5vIGRyaXZlIGNvbm5lY3Rl ZCAgICAgKi8NCiB9IGZkcml2ZV90eXBlX3Q7DQogDQotdHlwZWRlZiBlbnVtIGZkcml2ZV9m bGFnc190IHsNCi0gICAgRkRSSVZFX01PVE9SX09OICAgPSAweDAxLCAvKiBtb3RvciBvbi9v ZmYgICAgICAgICAgICovDQotfSBmZHJpdmVfZmxhZ3NfdDsNCi0NCiB0eXBlZGVmIGVudW0g ZmRpc2tfZmxhZ3NfdCB7DQogICAgIEZESVNLX0RCTF9TSURFUyAgPSAweDAxLA0KIH0gZmRp c2tfZmxhZ3NfdDsNCkBAIC04MSw3ICs3Nyw2IEBADQogICAgIEJsb2NrRHJpdmVyU3RhdGUg KmJzOw0KICAgICAvKiBEcml2ZSBzdGF0dXMgKi8NCiAgICAgZmRyaXZlX3R5cGVfdCBkcml2 ZTsNCi0gICAgZmRyaXZlX2ZsYWdzX3QgZHJmbGFnczsNCiAgICAgdWludDhfdCBwZXJwZW5k aWN1bGFyOyAgICAvKiAyLjg4IE1CIGFjY2VzcyBtb2RlICAgICovDQogICAgIC8qIFBvc2l0 aW9uICovDQogICAgIHVpbnQ4X3QgaGVhZDsNCkBAIC0xMDMsNyArOTgsNiBAQA0KICAgICAv KiBEcml2ZSAqLw0KICAgICBkcnYtPmJzID0gYnM7DQogICAgIGRydi0+ZHJpdmUgPSBGRFJJ VkVfRFJWX05PTkU7DQotICAgIGRydi0+ZHJmbGFncyA9IDA7DQogICAgIGRydi0+cGVycGVu ZGljdWxhciA9IDA7DQogICAgIC8qIERpc2sgKi8NCiAgICAgZHJ2LT5sYXN0X3NlY3QgPSAw Ow0KQEAgLTI5NiwyNCArMjkwLDYgQEANCiAgICAgfQ0KIH0NCiANCi0vKiBNb3RvciBjb250 cm9sICovDQotc3RhdGljIHZvaWQgZmRfc3RhcnQgKGZkcml2ZV90ICpkcnYpDQotew0KLSAg ICBkcnYtPmRyZmxhZ3MgfD0gRkRSSVZFX01PVE9SX09OOw0KLX0NCi0NCi1zdGF0aWMgdm9p ZCBmZF9zdG9wIChmZHJpdmVfdCAqZHJ2KQ0KLXsNCi0gICAgZHJ2LT5kcmZsYWdzICY9IH5G RFJJVkVfTU9UT1JfT047DQotfQ0KLQ0KLS8qIFJlLWluaXRpYWxpc2UgYSBkcml2ZXMgKG1v dG9yIG9mZiwgcmVwb3NpdGlvbmVkKSAqLw0KLXN0YXRpYyB2b2lkIGZkX3Jlc2V0IChmZHJp dmVfdCAqZHJ2KQ0KLXsNCi0gICAgZmRfc3RvcChkcnYpOw0KLSAgICBmZF9yZWNhbGlicmF0 ZShkcnYpOw0KLX0NCi0NCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovDQogLyogSW50ZWwgODIwNzggZmxvcHB5IGRpc2sgY29u dHJvbGxlciBlbXVsYXRpb24gICAgICAgICAgKi8NCiANCkBAIC0zMzcsNyArMzEzLDYgQEAN CiANCiBlbnVtIHsNCiAgICAgRkRfQ1RSTF9BQ1RJVkUgPSAweDAxLCAvKiBYWFg6IHN1cHBy ZXNzIHRoYXQgKi8NCi0gICAgRkRfQ1RSTF9SRVNFVCAgPSAweDAyLA0KICAgICBGRF9DVFJM X1NMRUVQICA9IDB4MDQsIC8qIFhYWDogc3VwcHJlc3MgdGhhdCAqLw0KICAgICBGRF9DVFJM X0JVU1kgICA9IDB4MDgsIC8qIGRtYSB0cmFuc2ZlciBpbiBwcm9ncmVzcyAqLw0KIH07DQpA QCAtNjIxLDEwICs1OTYsNiBAQA0KIA0KIHN0YXRpYyB2b2lkIGZkX3NhdmUgKFFFTVVGaWxl ICpmLCBmZHJpdmVfdCAqZmQpDQogew0KLSAgICB1aW50OF90IHRtcDsNCi0NCi0gICAgdG1w ID0gZmQtPmRyZmxhZ3M7DQotICAgIHFlbXVfcHV0XzhzKGYsICZ0bXApOw0KICAgICBxZW11 X3B1dF84cyhmLCAmZmQtPmhlYWQpOw0KICAgICBxZW11X3B1dF84cyhmLCAmZmQtPnRyYWNr KTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJmZkLT5zZWN0KTsNCkBAIC02NjIsMTAgKzYzMyw2 IEBADQogDQogc3RhdGljIGludCBmZF9sb2FkIChRRU1VRmlsZSAqZiwgZmRyaXZlX3QgKmZk KQ0KIHsNCi0gICAgdWludDhfdCB0bXA7DQotDQotICAgIHFlbXVfZ2V0XzhzKGYsICZ0bXAp Ow0KLSAgICBmZC0+ZHJmbGFncyA9IHRtcDsNCiAgICAgcWVtdV9nZXRfOHMoZiwgJmZkLT5o ZWFkKTsNCiAgICAgcWVtdV9nZXRfOHMoZiwgJmZkLT50cmFjayk7DQogICAgIHFlbXVfZ2V0 XzhzKGYsICZmZC0+c2VjdCk7DQpAQCAtNzczLDcgKzc0MCw3IEBADQogICAgIGlmICghZmRj dHJsLT5kcml2ZXNbMV0uYnMpDQogICAgICAgICBmZGN0cmwtPnNyYSB8PSBGRF9TUkFfbkRS VjI7DQogICAgIGZkY3RybC0+Y3VyX2RydiA9IDA7DQotICAgIGZkY3RybC0+ZG9yID0gMDsN CisgICAgZmRjdHJsLT5kb3IgPSBGRF9ET1JfblJFU0VUOw0KICAgICBmZGN0cmwtPmRvciB8 PSAoZmRjdHJsLT5kbWFfY2hhbm4gIT0gLTEpID8gRkRfRE9SX0RNQUVOIDogMDsNCiAgICAg ZmRjdHJsLT5tc3IgPSAwOw0KICAgICAvKiBGSUZPIHN0YXRlICovDQpAQCAtNzgyLDcgKzc0 OSw3IEBADQogICAgIGZkY3RybC0+ZGF0YV9zdGF0ZSA9IEZEX1NUQVRFX0NNRDsNCiAgICAg ZmRjdHJsLT5kYXRhX2RpciA9IEZEX0RJUl9XUklURTsNCiAgICAgZm9yIChpID0gMDsgaSA8 IE1BWF9GRDsgaSsrKQ0KLSAgICAgICAgZmRfcmVzZXQoJmZkY3RybC0+ZHJpdmVzW2ldKTsN CisgICAgICAgIGZkX3JlY2FsaWJyYXRlKCZmZGN0cmwtPmRyaXZlc1tpXSk7DQogICAgIGZk Y3RybF9yZXNldF9maWZvKGZkY3RybCk7DQogICAgIGlmIChkb19pcnEpDQogICAgICAgICBm ZGN0cmxfcmFpc2VfaXJxKGZkY3RybCwgRkRfU1IwX1JEWUNIRyk7DQpAQCAtODI2LDE5ICs3 OTMsOCBAQA0KIC8qIERpZ2l0YWwgb3V0cHV0IHJlZ2lzdGVyIDogMHgwMiAqLw0KIHN0YXRp YyB1aW50MzJfdCBmZGN0cmxfcmVhZF9kb3IgKGZkY3RybF90ICpmZGN0cmwpDQogew0KLSAg ICB1aW50MzJfdCByZXR2YWwgPSAwOw0KKyAgICB1aW50MzJfdCByZXR2YWwgPSBmZGN0cmwt PmRvcjsNCiANCi0gICAgLyogRHJpdmUgbW90b3JzIHN0YXRlIGluZGljYXRvcnMgKi8NCi0g ICAgaWYgKGRydjAoZmRjdHJsKS0+ZHJmbGFncyAmIEZEUklWRV9NT1RPUl9PTikNCi0gICAg ICAgIHJldHZhbCB8PSBGRF9ET1JfTU9URU4wOw0KLSAgICBpZiAoZHJ2MShmZGN0cmwpLT5k cmZsYWdzICYgRkRSSVZFX01PVE9SX09OKQ0KLSAgICAgICAgcmV0dmFsIHw9IEZEX0RPUl9N T1RFTjE7DQotICAgIC8qIERNQSBlbmFibGUgKi8NCi0gICAgaWYgKGZkY3RybC0+ZG9yICYg RkRfRE9SX0RNQUVOKQ0KLSAgICAgICAgcmV0dmFsIHw9IEZEX0RPUl9ETUFFTjsNCi0gICAg LyogUmVzZXQgaW5kaWNhdG9yICovDQotICAgIGlmICghKGZkY3RybC0+c3RhdGUgJiBGRF9D VFJMX1JFU0VUKSkNCi0gICAgICAgIHJldHZhbCB8PSBGRF9ET1JfblJFU0VUOw0KICAgICAv KiBTZWxlY3RlZCBkcml2ZSAqLw0KICAgICByZXR2YWwgfD0gZmRjdHJsLT5jdXJfZHJ2Ow0K ICAgICBGTE9QUFlfRFBSSU5URigiZGlnaXRhbCBvdXRwdXQgcmVnaXN0ZXI6IDB4JTAyeFxu IiwgcmV0dmFsKTsNCkBAIC04NDgsMTMgKzgwNCw2IEBADQogDQogc3RhdGljIHZvaWQgZmRj dHJsX3dyaXRlX2RvciAoZmRjdHJsX3QgKmZkY3RybCwgdWludDMyX3QgdmFsdWUpDQogew0K LSAgICAvKiBSZXNldCBtb2RlICovDQotICAgIGlmIChmZGN0cmwtPnN0YXRlICYgRkRfQ1RS TF9SRVNFVCkgew0KLSAgICAgICAgaWYgKCEodmFsdWUgJiBGRF9ET1JfblJFU0VUKSkgew0K LSAgICAgICAgICAgIEZMT1BQWV9EUFJJTlRGKCJGbG9wcHkgY29udHJvbGxlciBpbiBSRVNF VCBzdGF0ZSAhXG4iKTsNCi0gICAgICAgICAgICByZXR1cm47DQotICAgICAgICB9DQotICAg IH0NCiAgICAgRkxPUFBZX0RQUklOVEYoImRpZ2l0YWwgb3V0cHV0IHJlZ2lzdGVyIHNldCB0 byAweCUwMnhcbiIsIHZhbHVlKTsNCiANCiAgICAgLyogTW90b3JzICovDQpAQCAtODczLDMx ICs4MjIsMTYgQEANCiAgICAgZWxzZQ0KICAgICAgICAgZmRjdHJsLT5zcmIgJj0gfkZEX1NS Ql9EUjA7DQogDQotICAgIC8qIERyaXZlIG1vdG9ycyBzdGF0ZSBpbmRpY2F0b3JzICovDQot ICAgIGlmICh2YWx1ZSAmIEZEX0RPUl9NT1RFTjEpDQotICAgICAgICBmZF9zdGFydChkcnYx KGZkY3RybCkpOw0KLSAgICBlbHNlDQotICAgICAgICBmZF9zdG9wKGRydjEoZmRjdHJsKSk7 DQotICAgIGlmICh2YWx1ZSAmIEZEX0RPUl9NT1RFTjApDQotICAgICAgICBmZF9zdGFydChk cnYwKGZkY3RybCkpOw0KLSAgICBlbHNlDQotICAgICAgICBmZF9zdG9wKGRydjAoZmRjdHJs KSk7DQotICAgIC8qIERNQSBlbmFibGUgKi8NCi0jaWYgMA0KLSAgICBpZiAoZmRjdHJsLT5k bWFfY2hhbm4gIT0gLTEpDQotICAgICAgICBmZGN0cmwtPmRtYV9lbiA9IHZhbHVlICYgRkRf RE9SX0RNQUVOID8gMSA6IDA7DQotI2VuZGlmDQogICAgIC8qIFJlc2V0ICovDQogICAgIGlm ICghKHZhbHVlICYgRkRfRE9SX25SRVNFVCkpIHsNCi0gICAgICAgIGlmICghKGZkY3RybC0+ c3RhdGUgJiBGRF9DVFJMX1JFU0VUKSkgew0KKyAgICAgICAgaWYgKGZkY3RybC0+ZG9yICYg RkRfRE9SX25SRVNFVCkgew0KICAgICAgICAgICAgIEZMT1BQWV9EUFJJTlRGKCJjb250cm9s bGVyIGVudGVyIFJFU0VUIHN0YXRlXG4iKTsNCi0gICAgICAgICAgICBmZGN0cmwtPnN0YXRl IHw9IEZEX0NUUkxfUkVTRVQ7DQogICAgICAgICB9DQogICAgIH0gZWxzZSB7DQotICAgICAg ICBpZiAoZmRjdHJsLT5zdGF0ZSAmIEZEX0NUUkxfUkVTRVQpIHsNCisgICAgICAgIGlmICgh KGZkY3RybC0+ZG9yICYgRkRfRE9SX25SRVNFVCkpIHsNCiAgICAgICAgICAgICBGTE9QUFlf RFBSSU5URigiY29udHJvbGxlciBvdXQgb2YgUkVTRVQgc3RhdGVcbiIpOw0KICAgICAgICAg ICAgIGZkY3RybF9yZXNldChmZGN0cmwsIDEpOw0KLSAgICAgICAgICAgIGZkY3RybC0+c3Rh dGUgJj0gfihGRF9DVFJMX1JFU0VUIHwgRkRfQ1RSTF9TTEVFUCk7DQorICAgICAgICAgICAg ZmRjdHJsLT5zdGF0ZSAmPSB+RkRfQ1RSTF9TTEVFUDsNCiAgICAgICAgIH0NCiAgICAgfQ0K ICAgICAvKiBTZWxlY3RlZCBkcml2ZSAqLw0KQEAgLTkyMiw3ICs4NTYsNyBAQA0KIHN0YXRp YyB2b2lkIGZkY3RybF93cml0ZV90YXBlIChmZGN0cmxfdCAqZmRjdHJsLCB1aW50MzJfdCB2 YWx1ZSkNCiB7DQogICAgIC8qIFJlc2V0IG1vZGUgKi8NCi0gICAgaWYgKGZkY3RybC0+c3Rh dGUgJiBGRF9DVFJMX1JFU0VUKSB7DQorICAgIGlmICghKGZkY3RybC0+ZG9yICYgRkRfRE9S X25SRVNFVCkpIHsNCiAgICAgICAgIEZMT1BQWV9EUFJJTlRGKCJGbG9wcHkgY29udHJvbGxl ciBpbiBSRVNFVCBzdGF0ZSAhXG4iKTsNCiAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KQEAg LTkzNyw3ICs4NzEsOCBAQA0KIHsNCiAgICAgdWludDMyX3QgcmV0dmFsID0gMDsNCiANCi0g ICAgZmRjdHJsLT5zdGF0ZSAmPSB+KEZEX0NUUkxfU0xFRVAgfCBGRF9DVFJMX1JFU0VUKTsN CisgICAgZmRjdHJsLT5kb3IgfD0gRkRfRE9SX25SRVNFVDsNCisgICAgZmRjdHJsLT5zdGF0 ZSAmPSB+RkRfQ1RSTF9TTEVFUDsNCiAgICAgaWYgKCEoZmRjdHJsLT5zdGF0ZSAmIEZEX0NU UkxfQlVTWSkpIHsNCiAgICAgICAgIC8qIERhdGEgdHJhbnNmZXIgYWxsb3dlZCAqLw0KICAg ICAgICAgcmV0dmFsIHw9IEZEX01TUl9SUU07DQpAQCAtOTU5LDE2ICs4OTQsMTYgQEANCiBz dGF0aWMgdm9pZCBmZGN0cmxfd3JpdGVfcmF0ZSAoZmRjdHJsX3QgKmZkY3RybCwgdWludDMy X3QgdmFsdWUpDQogew0KICAgICAvKiBSZXNldCBtb2RlICovDQotICAgIGlmIChmZGN0cmwt PnN0YXRlICYgRkRfQ1RSTF9SRVNFVCkgew0KKyAgICBpZiAoIShmZGN0cmwtPmRvciAmIEZE X0RPUl9uUkVTRVQpKSB7DQogICAgICAgICBGTE9QUFlfRFBSSU5URigiRmxvcHB5IGNvbnRy b2xsZXIgaW4gUkVTRVQgc3RhdGUgIVxuIik7DQogICAgICAgICByZXR1cm47DQogICAgIH0N CiAgICAgRkxPUFBZX0RQUklOVEYoInNlbGVjdCByYXRlIHJlZ2lzdGVyIHNldCB0byAweCUw MnhcbiIsIHZhbHVlKTsNCiAgICAgLyogUmVzZXQ6IGF1dG9jbGVhciAqLw0KICAgICBpZiAo dmFsdWUgJiBGRF9EU1JfU1dSRVNFVCkgew0KLSAgICAgICAgZmRjdHJsLT5zdGF0ZSB8PSBG RF9DVFJMX1JFU0VUOw0KKyAgICAgICAgZmRjdHJsLT5kb3IgJj0gfkZEX0RPUl9uUkVTRVQ7 DQogICAgICAgICBmZGN0cmxfcmVzZXQoZmRjdHJsLCAxKTsNCi0gICAgICAgIGZkY3RybC0+ c3RhdGUgJj0gfkZEX0NUUkxfUkVTRVQ7DQorICAgICAgICBmZGN0cmwtPmRvciB8PSBGRF9E T1JfblJFU0VUOw0KICAgICB9DQogICAgIGlmICh2YWx1ZSAmIEZEX0RTUl9QV1JET1dOKSB7 DQogICAgICAgICBmZGN0cmwtPnN0YXRlIHw9IEZEX0NUUkxfU0xFRVA7DQpAQCAtMTYxOCw3 ICsxNTUzLDYgQEANCiANCiAgICAgZmRjdHJsLT5jdXJfZHJ2ID0gZmRjdHJsLT5maWZvWzFd ICYgRkRfRE9SX1NFTE1BU0s7DQogICAgIGN1cl9kcnYgPSBnZXRfY3VyX2RydihmZGN0cmwp Ow0KLSAgICBmZF9zdGFydChjdXJfZHJ2KTsNCiAgICAgaWYgKGZkY3RybC0+Zmlmb1syXSA8 PSBjdXJfZHJ2LT50cmFjaykNCiAgICAgICAgIGN1cl9kcnYtPmRpciA9IDE7DQogICAgIGVs c2UNCkBAIC0xNjQwLDcgKzE1NzQsNyBAQA0KICAgICBpZiAoZmRjdHJsLT5maWZvWzFdICYg MHg4MCkNCiAgICAgICAgIGN1cl9kcnYtPnBlcnBlbmRpY3VsYXIgPSBmZGN0cmwtPmZpZm9b MV0gJiAweDc7DQogICAgIC8qIE5vIHJlc3VsdCBiYWNrICovDQotICAgICAgICAgICBmZGN0 cmxfcmVzZXRfZmlmbyhmZGN0cmwpOw0KKyAgICBmZGN0cmxfcmVzZXRfZmlmbyhmZGN0cmwp Ow0KIH0NCiANCiBzdGF0aWMgdm9pZCBmZGN0cmxfaGFuZGxlX2NvbmZpZ3VyZSAoZmRjdHJs X3QgKmZkY3RybCwgaW50IGRpcmVjdGlvbikNCkBAIC0xNjkyLDcgKzE2MjYsNiBAQA0KIA0K ICAgICBmZGN0cmwtPmN1cl9kcnYgPSBmZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VMTUFT SzsNCiAgICAgY3VyX2RydiA9IGdldF9jdXJfZHJ2KGZkY3RybCk7DQotICAgIGZkX3N0YXJ0 KGN1cl9kcnYpOw0KICAgICBjdXJfZHJ2LT5kaXIgPSAwOw0KICAgICBpZiAoZmRjdHJsLT5m aWZvWzJdICsgY3VyX2Rydi0+dHJhY2sgPj0gY3VyX2Rydi0+bWF4X3RyYWNrKSB7DQogICAg ICAgICBjdXJfZHJ2LT50cmFjayA9IGN1cl9kcnYtPm1heF90cmFjayAtIDE7DQpAQCAtMTcw OSw3ICsxNjQyLDYgQEANCiANCiAgICAgZmRjdHJsLT5jdXJfZHJ2ID0gZmRjdHJsLT5maWZv WzFdICYgRkRfRE9SX1NFTE1BU0s7DQogICAgIGN1cl9kcnYgPSBnZXRfY3VyX2RydihmZGN0 cmwpOw0KLSAgICBmZF9zdGFydChjdXJfZHJ2KTsNCiAgICAgY3VyX2Rydi0+ZGlyID0gMTsN CiAgICAgaWYgKGZkY3RybC0+Zmlmb1syXSA+IGN1cl9kcnYtPnRyYWNrKSB7DQogICAgICAg ICBjdXJfZHJ2LT50cmFjayA9IDA7DQpAQCAtMTc3Miw3ICsxNzA0LDcgQEANCiANCiAgICAg Y3VyX2RydiA9IGdldF9jdXJfZHJ2KGZkY3RybCk7DQogICAgIC8qIFJlc2V0IG1vZGUgKi8N Ci0gICAgaWYgKGZkY3RybC0+c3RhdGUgJiBGRF9DVFJMX1JFU0VUKSB7DQorICAgIGlmICgh KGZkY3RybC0+ZG9yICYgRkRfRE9SX25SRVNFVCkpIHsNCiAgICAgICAgIEZMT1BQWV9EUFJJ TlRGKCJGbG9wcHkgY29udHJvbGxlciBpbiBSRVNFVCBzdGF0ZSAhXG4iKTsNCiAgICAgICAg IHJldHVybjsNCiAgICAgfQ0K --------------060308060501050407050601 Content-Type: text/plain; name="fdc_06_msr_reg.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_06_msr_reg.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC0zMTIsMTIgKzMxMiw2 IEBADQogc3RhdGljIHVpbnQzMl90IGZkY3RybF9yZWFkX2RpciAoZmRjdHJsX3QgKmZkY3Ry bCk7DQogDQogZW51bSB7DQotICAgIEZEX0NUUkxfQUNUSVZFID0gMHgwMSwgLyogWFhYOiBz dXBwcmVzcyB0aGF0ICovDQotICAgIEZEX0NUUkxfU0xFRVAgID0gMHgwNCwgLyogWFhYOiBz dXBwcmVzcyB0aGF0ICovDQotICAgIEZEX0NUUkxfQlVTWSAgID0gMHgwOCwgLyogZG1hIHRy YW5zZmVyIGluIHByb2dyZXNzICovDQotfTsNCi0NCi1lbnVtIHsNCiAgICAgRkRfRElSX1dS SVRFICAgPSAwLA0KICAgICBGRF9ESVJfUkVBRCAgICA9IDEsDQogICAgIEZEX0RJUl9TQ0FO RSAgID0gMiwNCkBAIC0zMjYsMTMgKzMyMCw5IEBADQogfTsNCiANCiBlbnVtIHsNCi0gICAg RkRfU1RBVEVfQ01EICAgID0gMHgwMCwNCi0gICAgRkRfU1RBVEVfU1RBVFVTID0gMHgwMSwN Ci0gICAgRkRfU1RBVEVfREFUQSAgID0gMHgwMiwNCi0gICAgRkRfU1RBVEVfU1RBVEUgID0g MHgwMywNCi0gICAgRkRfU1RBVEVfTVVMVEkgID0gMHgxMCwNCi0gICAgRkRfU1RBVEVfU0VF SyAgID0gMHgyMCwNCi0gICAgRkRfU1RBVEVfRk9STUFUID0gMHg0MCwNCisgICAgRkRfU1RB VEVfTVVMVEkgID0gMHgwMSwJLyogbXVsdGkgdHJhY2sgZmxhZyAqLw0KKyAgICBGRF9TVEFU RV9GT1JNQVQgPSAweDAyLAkvKiBmb3JtYXQgZmxhZyAqLw0KKyAgICBGRF9TVEFURV9TRUVL ICAgPSAweDA0LAkvKiBzZWVrIGZsYWcgKi8NCiB9Ow0KIA0KIGVudW0gew0KQEAgLTQ1MCw5 ICs0NDAsNiBAQA0KICAgICBGRF9ESVJfRFNLQ0hHICAgPSAweDgwLA0KIH07DQogDQotI2Rl ZmluZSBGRF9TVEFURShzdGF0ZSkgKChzdGF0ZSkgJiBGRF9TVEFURV9TVEFURSkNCi0jZGVm aW5lIEZEX1NFVF9TVEFURShzdGF0ZSwgbmV3X3N0YXRlKSBcDQotZG8geyAoc3RhdGUpID0g KChzdGF0ZSkgJiB+RkRfU1RBVEVfU1RBVEUpIHwgKG5ld19zdGF0ZSk7IH0gd2hpbGUgKDAp DQogI2RlZmluZSBGRF9NVUxUSV9UUkFDSyhzdGF0ZSkgKChzdGF0ZSkgJiBGRF9TVEFURV9N VUxUSSkNCiAjZGVmaW5lIEZEX0RJRF9TRUVLKHN0YXRlKSAoKHN0YXRlKSAmIEZEX1NUQVRF X1NFRUspDQogI2RlZmluZSBGRF9GT1JNQVRfQ01EKHN0YXRlKSAoKHN0YXRlKSAmIEZEX1NU QVRFX0ZPUk1BVCkNCkBAIC00NzAsNiArNDU3LDcgQEANCiAgICAgdWludDhfdCBzcmE7DQog ICAgIHVpbnQ4X3Qgc3JiOw0KICAgICB1aW50OF90IGRvcjsNCisgICAgdWludDhfdCBkc3I7 DQogICAgIHVpbnQ4X3QgbXNyOw0KICAgICB1aW50OF90IHN0YXRlOw0KICAgICB1aW50OF90 IGRtYV9lbjsNCkBAIC03MTMsOSArNzAxLDExIEBADQogDQogc3RhdGljIHZvaWQgZmRjdHJs X3JhaXNlX2lycSAoZmRjdHJsX3QgKmZkY3RybCwgdWludDhfdCBzdGF0dXMpDQogew0KLSAg ICAvLyBTcGFyYyBtdXRhdGlvbg0KLSAgICBpZiAoZmRjdHJsLT5zdW40bSAmJiAhZmRjdHJs LT5kbWFfZW4pIHsNCi0gICAgICAgIGZkY3RybC0+c3RhdGUgJj0gfkZEX0NUUkxfQlVTWTsN CisgICAgLyogU3BhcmMgbXV0YXRpb24gKi8NCisgICAgaWYgKGZkY3RybC0+c3VuNG0gJiYg KGZkY3RybC0+bXNyICYgRkRfTVNSX0NNREJVU1kpKSB7DQorICAgICAgICAvKiBYWFg6IG5v dCBzdXJlICovDQorICAgICAgICBmZGN0cmwtPm1zciAmPSB+RkRfTVNSX0NNREJVU1k7DQor ICAgICAgICBmZGN0cmwtPm1zciB8PSBGRF9NU1JfUlFNIHwgRkRfTVNSX0RJTzsNCiAgICAg ICAgIGZkY3RybC0+aW50X3N0YXR1cyA9IHN0YXR1czsNCiAgICAgICAgIHJldHVybjsNCiAg ICAgfQ0KQEAgLTc0MiwxMSArNzMyLDExIEBADQogICAgIGZkY3RybC0+Y3VyX2RydiA9IDA7 DQogICAgIGZkY3RybC0+ZG9yID0gRkRfRE9SX25SRVNFVDsNCiAgICAgZmRjdHJsLT5kb3Ig fD0gKGZkY3RybC0+ZG1hX2NoYW5uICE9IC0xKSA/IEZEX0RPUl9ETUFFTiA6IDA7DQotICAg IGZkY3RybC0+bXNyID0gMDsNCisgICAgZmRjdHJsLT5tc3IgPSBGRF9NU1JfUlFNOw0KICAg ICAvKiBGSUZPIHN0YXRlICovDQogICAgIGZkY3RybC0+ZGF0YV9wb3MgPSAwOw0KICAgICBm ZGN0cmwtPmRhdGFfbGVuID0gMDsNCi0gICAgZmRjdHJsLT5kYXRhX3N0YXRlID0gRkRfU1RB VEVfQ01EOw0KKyAgICBmZGN0cmwtPmRhdGFfc3RhdGUgPSAwOw0KICAgICBmZGN0cmwtPmRh dGFfZGlyID0gRkRfRElSX1dSSVRFOw0KICAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX0ZEOyBp KyspDQogICAgICAgICBmZF9yZWNhbGlicmF0ZSgmZmRjdHJsLT5kcml2ZXNbaV0pOw0KQEAg LTgzMSw3ICs4MjEsNyBAQA0KICAgICAgICAgaWYgKCEoZmRjdHJsLT5kb3IgJiBGRF9ET1Jf blJFU0VUKSkgew0KICAgICAgICAgICAgIEZMT1BQWV9EUFJJTlRGKCJjb250cm9sbGVyIG91 dCBvZiBSRVNFVCBzdGF0ZVxuIik7DQogICAgICAgICAgICAgZmRjdHJsX3Jlc2V0KGZkY3Ry bCwgMSk7DQotICAgICAgICAgICAgZmRjdHJsLT5zdGF0ZSAmPSB+RkRfQ1RSTF9TTEVFUDsN CisgICAgICAgICAgICBmZGN0cmwtPmRzciAmPSB+RkRfRFNSX1BXUkRPV047DQogICAgICAg ICB9DQogICAgIH0NCiAgICAgLyogU2VsZWN0ZWQgZHJpdmUgKi8NCkBAIC04NjksMjIgKzg1 OSwxMSBAQA0KIC8qIE1haW4gc3RhdHVzIHJlZ2lzdGVyIDogMHgwNCAocmVhZCkgKi8NCiBz dGF0aWMgdWludDMyX3QgZmRjdHJsX3JlYWRfbWFpbl9zdGF0dXMgKGZkY3RybF90ICpmZGN0 cmwpDQogew0KLSAgICB1aW50MzJfdCByZXR2YWwgPSAwOw0KKyAgICB1aW50MzJfdCByZXR2 YWwgPSBmZGN0cmwtPm1zcjsNCiANCisgICAgZmRjdHJsLT5kc3IgJj0gfkZEX0RTUl9QV1JE T1dOOw0KICAgICBmZGN0cmwtPmRvciB8PSBGRF9ET1JfblJFU0VUOw0KLSAgICBmZGN0cmwt PnN0YXRlICY9IH5GRF9DVFJMX1NMRUVQOw0KLSAgICBpZiAoIShmZGN0cmwtPnN0YXRlICYg RkRfQ1RSTF9CVVNZKSkgew0KLSAgICAgICAgLyogRGF0YSB0cmFuc2ZlciBhbGxvd2VkICov DQotICAgICAgICByZXR2YWwgfD0gRkRfTVNSX1JRTTsNCi0gICAgICAgIC8qIERhdGEgdHJh bnNmZXIgZGlyZWN0aW9uIGluZGljYXRvciAqLw0KLSAgICAgICAgaWYgKGZkY3RybC0+ZGF0 YV9kaXIgPT0gRkRfRElSX1JFQUQpDQotICAgICAgICAgICAgcmV0dmFsIHw9IEZEX01TUl9E SU87DQotICAgIH0NCi0gICAgLyogU2hvdWxkIGhhbmRsZSBGRF9NU1JfTk9ORE1BIGZvciBT UEVDSUZZIGNvbW1hbmQgKi8NCi0gICAgLyogQ29tbWFuZCBidXN5IGluZGljYXRvciAqLw0K LSAgICBpZiAoRkRfU1RBVEUoZmRjdHJsLT5kYXRhX3N0YXRlKSA9PSBGRF9TVEFURV9EQVRB IHx8DQotICAgICAgICBGRF9TVEFURShmZGN0cmwtPmRhdGFfc3RhdGUpID09IEZEX1NUQVRF X1NUQVRVUykNCi0gICAgICAgIHJldHZhbCB8PSBGRF9NU1JfQ01EQlVTWTsNCisNCiAgICAg RkxPUFBZX0RQUklOVEYoIm1haW4gc3RhdHVzIHJlZ2lzdGVyOiAweCUwMnhcbiIsIHJldHZh bCk7DQogDQogICAgIHJldHVybiByZXR2YWw7DQpAQCAtOTA2LDkgKzg4NSw5IEBADQogICAg ICAgICBmZGN0cmwtPmRvciB8PSBGRF9ET1JfblJFU0VUOw0KICAgICB9DQogICAgIGlmICh2 YWx1ZSAmIEZEX0RTUl9QV1JET1dOKSB7DQotICAgICAgICBmZGN0cmwtPnN0YXRlIHw9IEZE X0NUUkxfU0xFRVA7DQogICAgICAgICBmZGN0cmxfcmVzZXQoZmRjdHJsLCAxKTsNCiAgICAg fQ0KKyAgICBmZGN0cmwtPmRzciA9IHZhbHVlOw0KIH0NCiANCiBzdGF0aWMgaW50IGZkY3Ry bF9tZWRpYV9jaGFuZ2VkKGZkcml2ZV90ICpkcnYpDQpAQCAtOTQzLDcgKzkyMiw3IEBADQog ew0KICAgICBmZGN0cmwtPmRhdGFfZGlyID0gRkRfRElSX1dSSVRFOw0KICAgICBmZGN0cmwt PmRhdGFfcG9zID0gMDsNCi0gICAgRkRfU0VUX1NUQVRFKGZkY3RybC0+ZGF0YV9zdGF0ZSwg RkRfU1RBVEVfQ01EKTsNCisgICAgZmRjdHJsLT5tc3IgJj0gfihGRF9NU1JfQ01EQlVTWSB8 IEZEX01TUl9ESU8pOw0KIH0NCiANCiAvKiBTZXQgRklGTyBzdGF0dXMgZm9yIHRoZSBob3N0 IHRvIHJlYWQgKi8NCkBAIC05NTIsNyArOTMxLDcgQEANCiAgICAgZmRjdHJsLT5kYXRhX2Rp ciA9IEZEX0RJUl9SRUFEOw0KICAgICBmZGN0cmwtPmRhdGFfbGVuID0gZmlmb19sZW47DQog ICAgIGZkY3RybC0+ZGF0YV9wb3MgPSAwOw0KLSAgICBGRF9TRVRfU1RBVEUoZmRjdHJsLT5k YXRhX3N0YXRlLCBGRF9TVEFURV9TVEFUVVMpOw0KKyAgICBmZGN0cmwtPm1zciB8PSBGRF9N U1JfQ01EQlVTWSB8IEZEX01TUl9SUU0gfCBGRF9NU1JfRElPOw0KICAgICBpZiAoZG9faXJx KQ0KICAgICAgICAgZmRjdHJsX3JhaXNlX2lycShmZGN0cmwsIDB4MDApOw0KIH0NCkBAIC0x MDI5LDggKzEwMDgsOCBAQA0KICAgICBmZGN0cmwtPmRhdGFfZGlyID0gRkRfRElSX1JFQUQ7 DQogICAgIGlmICghKGZkY3RybC0+bXNyICYgRkRfTVNSX05PTkRNQSkpIHsNCiAgICAgICAg IERNQV9yZWxlYXNlX0RSRVEoZmRjdHJsLT5kbWFfY2hhbm4pOw0KLSAgICAgICAgZmRjdHJs LT5zdGF0ZSAmPSB+RkRfQ1RSTF9CVVNZOw0KICAgICB9DQorICAgIGZkY3RybC0+bXNyIHw9 IEZEX01TUl9SUU0gfCBGRF9NU1JfRElPOw0KICAgICBmZGN0cmwtPm1zciAmPSB+RkRfTVNS X05PTkRNQTsNCiAgICAgZmRjdHJsX3NldF9maWZvKGZkY3RybCwgNywgMSk7DQogfQ0KQEAg LTEwNzksMTAgKzEwNTgsMTEgQEANCiAgICAgZGVmYXVsdDoNCiAgICAgICAgIGJyZWFrOw0K ICAgICB9DQorDQogICAgIC8qIFNldCB0aGUgRklGTyBzdGF0ZSAqLw0KICAgICBmZGN0cmwt PmRhdGFfZGlyID0gZGlyZWN0aW9uOw0KICAgICBmZGN0cmwtPmRhdGFfcG9zID0gMDsNCi0g ICAgRkRfU0VUX1NUQVRFKGZkY3RybC0+ZGF0YV9zdGF0ZSwgRkRfU1RBVEVfREFUQSk7IC8q IEZJRk8gcmVhZHkgZm9yIGRhdGEgKi8NCisgICAgZmRjdHJsLT5tc3IgfD0gRkRfTVNSX0NN REJVU1k7DQogICAgIGlmIChmZGN0cmwtPmZpZm9bMF0gJiAweDgwKQ0KICAgICAgICAgZmRj dHJsLT5kYXRhX3N0YXRlIHw9IEZEX1NUQVRFX01VTFRJOw0KICAgICBlbHNlDQpAQCAtMTEx Niw3ICsxMDk2LDcgQEANCiAgICAgICAgICAgICAoZGlyZWN0aW9uID09IEZEX0RJUl9XUklU RSAmJiBkbWFfbW9kZSA9PSAyKSB8fA0KICAgICAgICAgICAgIChkaXJlY3Rpb24gPT0gRkRf RElSX1JFQUQgJiYgZG1hX21vZGUgPT0gMSkpIHsNCiAgICAgICAgICAgICAvKiBObyBhY2Nl c3MgaXMgYWxsb3dlZCB1bnRpbCBETUEgdHJhbnNmZXIgaGFzIGNvbXBsZXRlZCAqLw0KLSAg ICAgICAgICAgIGZkY3RybC0+c3RhdGUgfD0gRkRfQ1RSTF9CVVNZOw0KKyAgICAgICAgICAg IGZkY3RybC0+bXNyICY9IH5GRF9NU1JfUlFNOw0KICAgICAgICAgICAgIC8qIE5vdywgd2Ug anVzdCBoYXZlIHRvIHdhaXQgZm9yIHRoZSBETUEgY29udHJvbGxlciB0bw0KICAgICAgICAg ICAgICAqIHJlY2FsbCB1cy4uLg0KICAgICAgICAgICAgICAqLw0KQEAgLTExMjksNiArMTEw OSw4IEBADQogICAgIH0NCiAgICAgRkxPUFBZX0RQUklOVEYoInN0YXJ0IG5vbi1ETUEgdHJh bnNmZXJcbiIpOw0KICAgICBmZGN0cmwtPm1zciB8PSBGRF9NU1JfTk9ORE1BOw0KKyAgICBp ZiAoZGlyZWN0aW9uICE9IEZEX0RJUl9XUklURSkNCisgICAgICAgIGZkY3RybC0+bXNyIHw9 IEZEX01TUl9ESU87DQogICAgIC8qIElPIGJhc2VkIHRyYW5zZmVyOiBjYWxjdWxhdGUgbGVu ICovDQogICAgIGZkY3RybF9yYWlzZV9pcnEoZmRjdHJsLCAweDAwKTsNCiANCkBAIC0xMTU0 LDcgKzExMzYsNyBAQA0KICAgICB1aW50OF90IHN0YXR1czAgPSAweDAwLCBzdGF0dXMxID0g MHgwMCwgc3RhdHVzMiA9IDB4MDA7DQogDQogICAgIGZkY3RybCA9IG9wYXF1ZTsNCi0gICAg aWYgKCEoZmRjdHJsLT5zdGF0ZSAmIEZEX0NUUkxfQlVTWSkpIHsNCisgICAgaWYgKGZkY3Ry bC0+bXNyICYgRkRfTVNSX1JRTSkgew0KICAgICAgICAgRkxPUFBZX0RQUklOVEYoIk5vdCBp biBETUEgdHJhbnNmZXIgbW9kZSAhXG4iKTsNCiAgICAgICAgIHJldHVybiAwOw0KICAgICB9 DQpAQCAtMTI2Myw5ICsxMjQ1LDkgQEANCiAgICAgaW50IHBvczsNCiANCiAgICAgY3VyX2Ry diA9IGdldF9jdXJfZHJ2KGZkY3RybCk7DQotICAgIGZkY3RybC0+c3RhdGUgJj0gfkZEX0NU UkxfU0xFRVA7DQotICAgIGlmIChGRF9TVEFURShmZGN0cmwtPmRhdGFfc3RhdGUpID09IEZE X1NUQVRFX0NNRCkgew0KLSAgICAgICAgRkxPUFBZX0VSUk9SKCJjYW4ndCByZWFkIGRhdGEg aW4gQ01EIHN0YXRlXG4iKTsNCisgICAgZmRjdHJsLT5kc3IgJj0gfkZEX0RTUl9QV1JET1dO Ow0KKyAgICBpZiAoIShmZGN0cmwtPm1zciAmIEZEX01TUl9SUU0pIHx8ICEoZmRjdHJsLT5t c3IgJiBGRF9NU1JfRElPKSkgew0KKyAgICAgICAgRkxPUFBZX0VSUk9SKCJjb250cm9sbGVy IG5vdCByZWFkeSBmb3IgcmVhZGluZ1xuIik7DQogICAgICAgICByZXR1cm4gMDsNCiAgICAg fQ0KICAgICBwb3MgPSBmZGN0cmwtPmRhdGFfcG9zOw0KQEAgLTE3MDgsMTEgKzE2OTAsMTEg QEANCiAgICAgICAgIEZMT1BQWV9EUFJJTlRGKCJGbG9wcHkgY29udHJvbGxlciBpbiBSRVNF VCBzdGF0ZSAhXG4iKTsNCiAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KLSAgICBmZGN0cmwt PnN0YXRlICY9IH5GRF9DVFJMX1NMRUVQOw0KLSAgICBpZiAoRkRfU1RBVEUoZmRjdHJsLT5k YXRhX3N0YXRlKSA9PSBGRF9TVEFURV9TVEFUVVMpIHsNCi0gICAgICAgIEZMT1BQWV9FUlJP UigiY2FuJ3Qgd3JpdGUgZGF0YSBpbiBzdGF0dXMgbW9kZVxuIik7DQorICAgIGlmICghKGZk Y3RybC0+bXNyICYgRkRfTVNSX1JRTSkgfHwgKGZkY3RybC0+bXNyICYgRkRfTVNSX0RJTykp IHsNCisgICAgICAgIEZMT1BQWV9FUlJPUigiY29udHJvbGxlciBub3QgcmVhZHkgZm9yIHdy aXRpbmdcbiIpOw0KICAgICAgICAgcmV0dXJuOw0KICAgICB9DQorICAgIGZkY3RybC0+ZHNy ICY9IH5GRF9EU1JfUFdSRE9XTjsNCiAgICAgLyogSXMgaXQgd3JpdGUgY29tbWFuZCB0aW1l ID8gKi8NCiAgICAgaWYgKGZkY3RybC0+bXNyICYgRkRfTVNSX05PTkRNQSkgew0KICAgICAg ICAgLyogRklGTyBkYXRhIHdyaXRlICovDQpAQCAtMTcyOSw3ICsxNzExLDcgQEANCiAgICAg ICAgIC8qIFN3aXRjaCBmcm9tIHRyYW5zZmVyIG1vZGUgdG8gc3RhdHVzIG1vZGUNCiAgICAg ICAgICAqIHRoZW4gZnJvbSBzdGF0dXMgbW9kZSB0byBjb21tYW5kIG1vZGUNCiAgICAgICAg ICAqLw0KLSAgICAgICAgaWYgKEZEX1NUQVRFKGZkY3RybC0+ZGF0YV9zdGF0ZSkgPT0gRkRf U1RBVEVfREFUQSkNCisgICAgICAgIGlmIChmZGN0cmwtPmRhdGFfcG9zID09IGZkY3RybC0+ ZGF0YV9sZW4pDQogICAgICAgICAgICAgZmRjdHJsX3N0b3BfdHJhbnNmZXIoZmRjdHJsLCBG RF9TUjBfU0VFSywgMHgwMCwgMHgwMCk7DQogICAgICAgICByZXR1cm47DQogICAgIH0NCkBA IC0xODEyLDcgKzE3OTQsNiBAQA0KICAgICAgICAgZmRfaW5pdCgmZmRjdHJsLT5kcml2ZXNb aV0sIGZkc1tpXSk7DQogICAgIH0NCiAgICAgZmRjdHJsX3Jlc2V0KGZkY3RybCwgMCk7DQot ICAgIGZkY3RybC0+c3RhdGUgPSBGRF9DVFJMX0FDVElWRTsNCiAgICAgcmVnaXN0ZXJfc2F2 ZXZtKCJmZGMiLCBpb19iYXNlLCAxLCBmZGNfc2F2ZSwgZmRjX2xvYWQsIGZkY3RybCk7DQog ICAgIHFlbXVfcmVnaXN0ZXJfcmVzZXQoZmRjdHJsX2V4dGVybmFsX3Jlc2V0LCBmZGN0cmwp Ow0KICAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX0ZEOyBpKyspIHsNCg== --------------060308060501050407050601 Content-Type: text/plain; name="fdc_07_cleanup.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_07_cleanup.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC04Miw5ICs4Miw2IEBA DQogICAgIHVpbnQ4X3QgaGVhZDsNCiAgICAgdWludDhfdCB0cmFjazsNCiAgICAgdWludDhf dCBzZWN0Ow0KLSAgICAvKiBMYXN0IG9wZXJhdGlvbiBzdGF0dXMgKi8NCi0gICAgdWludDhf dCBkaXI7ICAgICAgICAgICAgICAvKiBEaXJlY3Rpb24gICAgICAgICAgICAgICovDQotICAg IHVpbnQ4X3Qgcnc7ICAgICAgICAgICAgICAgLyogUmVhZC93cml0ZSAgICAgICAgICAgICAq Lw0KICAgICAvKiBNZWRpYSAqLw0KICAgICBmZGlza19mbGFnc190IGZsYWdzOw0KICAgICB1 aW50OF90IGxhc3Rfc2VjdDsgICAgICAgIC8qIE5iIHNlY3RvciBwZXIgdHJhY2sgICAgKi8N CkBAIC0xMTYsNiArMTEzLDEzIEBADQogICAgIHJldHVybiBfZmRfc2VjdG9yKGRydi0+aGVh ZCwgZHJ2LT50cmFjaywgZHJ2LT5zZWN0LCBkcnYtPmxhc3Rfc2VjdCk7DQogfQ0KIA0KKy8q IFNlZWsgdG8gYSBuZXcgcG9zaXRpb246DQorICogcmV0dXJucyAwIGlmIGFscmVhZHkgb24g cmlnaHQgdHJhY2sNCisgKiByZXR1cm5zIDEgaWYgdHJhY2sgY2hhbmdlZA0KKyAqIHJldHVy bnMgMiBpZiB0cmFjayBpcyBpbnZhbGlkDQorICogcmV0dXJucyAzIGlmIHNlY3RvciBpcyBp bnZhbGlkDQorICogcmV0dXJucyA0IGlmIHNlZWsgaXMgZGlzYWJsZWQNCisgKi8NCiBzdGF0 aWMgaW50IGZkX3NlZWsgKGZkcml2ZV90ICpkcnYsIHVpbnQ4X3QgaGVhZCwgdWludDhfdCB0 cmFjaywgdWludDhfdCBzZWN0LA0KICAgICAgICAgICAgICAgICAgICAgaW50IGVuYWJsZV9z ZWVrKQ0KIHsNCkBAIC0xNjQsOCArMTY4LDYgQEANCiAgICAgZHJ2LT5oZWFkID0gMDsNCiAg ICAgZHJ2LT50cmFjayA9IDA7DQogICAgIGRydi0+c2VjdCA9IDE7DQotICAgIGRydi0+ZGly ID0gMTsNCi0gICAgZHJ2LT5ydyA9IDA7DQogfQ0KIA0KIC8qIFJlY29nbml6ZSBmbG9wcHkg Zm9ybWF0cyAqLw0KQEAgLTI5Nyw3ICsyOTksNyBAQA0KIHN0YXRpYyB2b2lkIGZkY3RybF9y ZXNldF9maWZvIChmZGN0cmxfdCAqZmRjdHJsKTsNCiBzdGF0aWMgaW50IGZkY3RybF90cmFu c2Zlcl9oYW5kbGVyICh2b2lkICpvcGFxdWUsIGludCBuY2hhbiwNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgZG1hX3BvcywgaW50IGRtYV9sZW4pOw0KLXN0 YXRpYyB2b2lkIGZkY3RybF9yYWlzZV9pcnEgKGZkY3RybF90ICpmZGN0cmwsIHVpbnQ4X3Qg c3RhdHVzKTsNCitzdGF0aWMgdm9pZCBmZGN0cmxfcmFpc2VfaXJxIChmZGN0cmxfdCAqZmRj dHJsLCB1aW50OF90IHN0YXR1czApOw0KIA0KIHN0YXRpYyB1aW50MzJfdCBmZGN0cmxfcmVh ZF9zdGF0dXNBIChmZGN0cmxfdCAqZmRjdHJsKTsNCiBzdGF0aWMgdWludDMyX3QgZmRjdHJs X3JlYWRfc3RhdHVzQiAoZmRjdHJsX3QgKmZkY3RybCk7DQpAQCAtMzg2LDYgKzM4OCwxNSBA QA0KIH07DQogDQogZW51bSB7DQorICAgIEZEX1NSMV9FQyAgICAgICA9IDB4ODAsIC8qIEVu ZCBvZiBjeWxpbmRlciAqLw0KK307DQorDQorZW51bSB7DQorICAgIEZEX1NSMl9TTlMgICAg ICA9IDB4MDQsIC8qIFNjYW4gbm90IHNhdGlzZmllZCAqLw0KKyAgICBGRF9TUjJfU0VIICAg ICAgPSAweDA4LCAvKiBTY2FuIGVxdWFsIGhpdCAqLw0KK307DQorDQorZW51bSB7DQogICAg IEZEX1NSQV9ESVIgICAgICA9IDB4MDEsDQogICAgIEZEX1NSQV9uV1AgICAgICA9IDB4MDIs DQogICAgIEZEX1NSQV9uSU5EWCAgICA9IDB4MDQsDQpAQCAtNDQ1LDcgKzQ1Niw2IEBADQog I2RlZmluZSBGRF9GT1JNQVRfQ01EKHN0YXRlKSAoKHN0YXRlKSAmIEZEX1NUQVRFX0ZPUk1B VCkNCiANCiBzdHJ1Y3QgZmRjdHJsX3Qgew0KLSAgICBmZGN0cmxfdCAqZmRjdHJsOw0KICAg ICAvKiBDb250cm9sbGVyJ3MgaWRlbnRpZmljYXRpb24gKi8NCiAgICAgdWludDhfdCB2ZXJz aW9uOw0KICAgICAvKiBIVyAqLw0KQEAgLTQ1OSwxNyArNDY5LDE3IEBADQogICAgIHVpbnQ4 X3QgZG9yOw0KICAgICB1aW50OF90IGRzcjsNCiAgICAgdWludDhfdCBtc3I7DQotICAgIHVp bnQ4X3Qgc3RhdGU7DQotICAgIHVpbnQ4X3QgZG1hX2VuOw0KICAgICB1aW50OF90IGN1cl9k cnY7DQogICAgIHVpbnQ4X3QgYm9vdHNlbDsNCisgICAgdWludDhfdCBzdGF0dXMwOw0KKyAg ICB1aW50OF90IHN0YXR1czE7DQorICAgIHVpbnQ4X3Qgc3RhdHVzMjsNCiAgICAgLyogQ29t bWFuZCBGSUZPICovDQogICAgIHVpbnQ4X3QgKmZpZm87DQogICAgIHVpbnQzMl90IGRhdGFf cG9zOw0KICAgICB1aW50MzJfdCBkYXRhX2xlbjsNCiAgICAgdWludDhfdCBkYXRhX3N0YXRl Ow0KICAgICB1aW50OF90IGRhdGFfZGlyOw0KLSAgICB1aW50OF90IGludF9zdGF0dXM7DQog ICAgIHVpbnQ4X3QgZW90OyAvKiBsYXN0IHdhbnRlZCBzZWN0b3IgKi8NCiAgICAgLyogU3Rh dGVzIGtlcHQgb25seSB0byBiZSByZXR1cm5lZCBiYWNrICovDQogICAgIC8qIFRpbWVycyBz dGF0ZSAqLw0KQEAgLTU4Nyw4ICs1OTcsNiBAQA0KICAgICBxZW11X3B1dF84cyhmLCAmZmQt PmhlYWQpOw0KICAgICBxZW11X3B1dF84cyhmLCAmZmQtPnRyYWNrKTsNCiAgICAgcWVtdV9w dXRfOHMoZiwgJmZkLT5zZWN0KTsNCi0gICAgcWVtdV9wdXRfOHMoZiwgJmZkLT5kaXIpOw0K LSAgICBxZW11X3B1dF84cyhmLCAmZmQtPnJ3KTsNCiB9DQogDQogc3RhdGljIHZvaWQgZmRj X3NhdmUgKFFFTVVGaWxlICpmLCB2b2lkICpvcGFxdWUpDQpAQCAtNTk4LDE3ICs2MDYsMjEg QEANCiAgICAgLyogQ29udHJvbGxlciBzdGF0ZSAqLw0KICAgICBxZW11X3B1dF84cyhmLCAm cy0+c3JhKTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPnNyYik7DQotICAgIHFlbXVfcHV0 XzhzKGYsICZzLT5zdGF0ZSk7DQotICAgIHFlbXVfcHV0XzhzKGYsICZzLT5kbWFfZW4pOw0K KyAgICBxZW11X3B1dF84cyhmLCAmcy0+ZHNyKTsNCisgICAgcWVtdV9wdXRfOHMoZiwgJnMt Pm1zcik7DQorICAgIHFlbXVfcHV0XzhzKGYsICZzLT5zdGF0dXMwKTsNCisgICAgcWVtdV9w dXRfOHMoZiwgJnMtPnN0YXR1czEpOw0KKyAgICBxZW11X3B1dF84cyhmLCAmcy0+c3RhdHVz Mik7DQogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5jdXJfZHJ2KTsNCiAgICAgcWVtdV9wdXRf OHMoZiwgJnMtPmJvb3RzZWwpOw0KKyAgICAvKiBDb21tYW5kIEZJRk8gKi8NCiAgICAgcWVt dV9wdXRfYnVmZmVyKGYsIHMtPmZpZm8sIEZEX1NFQ1RPUl9MRU4pOw0KICAgICBxZW11X3B1 dF9iZTMycyhmLCAmcy0+ZGF0YV9wb3MpOw0KICAgICBxZW11X3B1dF9iZTMycyhmLCAmcy0+ ZGF0YV9sZW4pOw0KICAgICBxZW11X3B1dF84cyhmLCAmcy0+ZGF0YV9zdGF0ZSk7DQogICAg IHFlbXVfcHV0XzhzKGYsICZzLT5kYXRhX2Rpcik7DQotICAgIHFlbXVfcHV0XzhzKGYsICZz LT5pbnRfc3RhdHVzKTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPmVvdCk7DQorICAgIC8q IFN0YXRlcyBrZXB0IG9ubHkgdG8gYmUgcmV0dXJuZWQgYmFjayAqLw0KICAgICBxZW11X3B1 dF84cyhmLCAmcy0+dGltZXIwKTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPnRpbWVyMSk7 DQogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5wcmVjb21wX3Ryayk7DQpAQCAtNjI0LDggKzYz Niw2IEBADQogICAgIHFlbXVfZ2V0XzhzKGYsICZmZC0+aGVhZCk7DQogICAgIHFlbXVfZ2V0 XzhzKGYsICZmZC0+dHJhY2spOw0KICAgICBxZW11X2dldF84cyhmLCAmZmQtPnNlY3QpOw0K LSAgICBxZW11X2dldF84cyhmLCAmZmQtPmRpcik7DQotICAgIHFlbXVfZ2V0XzhzKGYsICZm ZC0+cncpOw0KIA0KICAgICByZXR1cm4gMDsNCiB9DQpAQCAtNjM1LDIzICs2NDUsMjcgQEAN CiAgICAgZmRjdHJsX3QgKnMgPSBvcGFxdWU7DQogICAgIGludCByZXQ7DQogDQotICAgIGlm ICh2ZXJzaW9uX2lkICE9IDEpDQorICAgIGlmICh2ZXJzaW9uX2lkICE9IDIpDQogICAgICAg ICByZXR1cm4gLUVJTlZBTDsNCiANCiAgICAgLyogQ29udHJvbGxlciBzdGF0ZSAqLw0KICAg ICBxZW11X2dldF84cyhmLCAmcy0+c3JhKTsNCiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnNy Yik7DQotICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5zdGF0ZSk7DQotICAgIHFlbXVfZ2V0Xzhz KGYsICZzLT5kbWFfZW4pOw0KKyAgICBxZW11X2dldF84cyhmLCAmcy0+ZHNyKTsNCisgICAg cWVtdV9nZXRfOHMoZiwgJnMtPm1zcik7DQorICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5zdGF0 dXMwKTsNCisgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnN0YXR1czEpOw0KKyAgICBxZW11X2dl dF84cyhmLCAmcy0+c3RhdHVzMik7DQogICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5jdXJfZHJ2 KTsNCiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPmJvb3RzZWwpOw0KKyAgICAvKiBDb21tYW5k IEZJRk8gKi8NCiAgICAgcWVtdV9nZXRfYnVmZmVyKGYsIHMtPmZpZm8sIEZEX1NFQ1RPUl9M RU4pOw0KICAgICBxZW11X2dldF9iZTMycyhmLCAmcy0+ZGF0YV9wb3MpOw0KICAgICBxZW11 X2dldF9iZTMycyhmLCAmcy0+ZGF0YV9sZW4pOw0KICAgICBxZW11X2dldF84cyhmLCAmcy0+ ZGF0YV9zdGF0ZSk7DQogICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5kYXRhX2Rpcik7DQotICAg IHFlbXVfZ2V0XzhzKGYsICZzLT5pbnRfc3RhdHVzKTsNCiAgICAgcWVtdV9nZXRfOHMoZiwg JnMtPmVvdCk7DQorICAgIC8qIFN0YXRlcyBrZXB0IG9ubHkgdG8gYmUgcmV0dXJuZWQgYmFj ayAqLw0KICAgICBxZW11X2dldF84cyhmLCAmcy0+dGltZXIwKTsNCiAgICAgcWVtdV9nZXRf OHMoZiwgJnMtPnRpbWVyMSk7DQogICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5wcmVjb21wX3Ry ayk7DQpAQCAtNjk5LDIyICs3MTMsMjIgQEANCiAgICAgZmRjdHJsLT5zcmEgJj0gfkZEX1NS QV9JTlRQRU5EOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBmZGN0cmxfcmFpc2VfaXJxIChmZGN0 cmxfdCAqZmRjdHJsLCB1aW50OF90IHN0YXR1cykNCitzdGF0aWMgdm9pZCBmZGN0cmxfcmFp c2VfaXJxIChmZGN0cmxfdCAqZmRjdHJsLCB1aW50OF90IHN0YXR1czApDQogew0KICAgICAv KiBTcGFyYyBtdXRhdGlvbiAqLw0KICAgICBpZiAoZmRjdHJsLT5zdW40bSAmJiAoZmRjdHJs LT5tc3IgJiBGRF9NU1JfQ01EQlVTWSkpIHsNCiAgICAgICAgIC8qIFhYWDogbm90IHN1cmUg Ki8NCiAgICAgICAgIGZkY3RybC0+bXNyICY9IH5GRF9NU1JfQ01EQlVTWTsNCiAgICAgICAg IGZkY3RybC0+bXNyIHw9IEZEX01TUl9SUU0gfCBGRF9NU1JfRElPOw0KLSAgICAgICAgZmRj dHJsLT5pbnRfc3RhdHVzID0gc3RhdHVzOw0KKyAgICAgICAgZmRjdHJsLT5zdGF0dXMwID0g c3RhdHVzMDsNCiAgICAgICAgIHJldHVybjsNCiAgICAgfQ0KICAgICBpZiAoIShmZGN0cmwt PnNyYSAmIEZEX1NSQV9JTlRQRU5EKSkgew0KICAgICAgICAgcWVtdV9zZXRfaXJxKGZkY3Ry bC0+aXJxLCAxKTsNCiAgICAgICAgIGZkY3RybC0+c3JhIHw9IEZEX1NSQV9JTlRQRU5EOw0K ICAgICB9DQotICAgIEZMT1BQWV9EUFJJTlRGKCJTZXQgaW50ZXJydXB0IHN0YXR1cyB0byAw eCUwMnhcbiIsIHN0YXR1cyk7DQotICAgIGZkY3RybC0+aW50X3N0YXR1cyA9IHN0YXR1czsN CisgICAgZmRjdHJsLT5zdGF0dXMwID0gc3RhdHVzMDsNCisgICAgRkxPUFBZX0RQUklOVEYo IlNldCBpbnRlcnJ1cHQgc3RhdHVzIHRvIDB4JTAyeFxuIiwgZmRjdHJsLT5zdGF0dXMwKTsN CiB9DQogDQogLyogUmVzZXQgY29udHJvbGxlciAqLw0KQEAgLTc0MSw4ICs3NTUsOSBAQA0K ICAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX0ZEOyBpKyspDQogICAgICAgICBmZF9yZWNhbGli cmF0ZSgmZmRjdHJsLT5kcml2ZXNbaV0pOw0KICAgICBmZGN0cmxfcmVzZXRfZmlmbyhmZGN0 cmwpOw0KLSAgICBpZiAoZG9faXJxKQ0KKyAgICBpZiAoZG9faXJxKSB7DQogICAgICAgICBm ZGN0cmxfcmFpc2VfaXJxKGZkY3RybCwgRkRfU1IwX1JEWUNIRyk7DQorICAgIH0NCiB9DQog DQogc3RhdGljIGlubGluZSBmZHJpdmVfdCAqZHJ2MCAoZmRjdHJsX3QgKmZkY3RybCkNCkBA IC05MzksMTkgKzk1NCw5IEBADQogLyogU2V0IGFuIGVycm9yOiB1bmltcGxlbWVudGVkL3Vu a25vd24gY29tbWFuZCAqLw0KIHN0YXRpYyB2b2lkIGZkY3RybF91bmltcGxlbWVudGVkIChm ZGN0cmxfdCAqZmRjdHJsLCBpbnQgZGlyZWN0aW9uKQ0KIHsNCi0jaWYgMA0KLSAgICBmZHJp dmVfdCAqY3VyX2RydjsNCi0NCi0gICAgY3VyX2RydiA9IGdldF9jdXJfZHJ2KGZkY3RybCk7 DQotICAgIGZkY3RybC0+Zmlmb1swXSA9IEZEX1NSMF9BQk5URVJNIHwgRkRfU1IwX1NFRUsg fCAoY3VyX2Rydi0+aGVhZCA8PCAyKSB8IGZkY3RybC0+Y3VyX2RydjsNCi0gICAgZmRjdHJs LT5maWZvWzFdID0gMHgwMDsNCi0gICAgZmRjdHJsLT5maWZvWzJdID0gMHgwMDsNCi0gICAg ZmRjdHJsX3NldF9maWZvKGZkY3RybCwgMywgMSk7DQotI2Vsc2UNCi0gICAgLy8gICAgZmRj dHJsX3Jlc2V0X2ZpZm8oZmRjdHJsKTsNCisgICAgRkxPUFBZX0VSUk9SKCJ1bmltcGxlbWVu dGVkIGNvbW1hbmQgMHglMDJ4XG4iLCBmZGN0cmwtPmZpZm9bMF0pOw0KICAgICBmZGN0cmwt PmZpZm9bMF0gPSBGRF9TUjBfSU5WQ01EOw0KICAgICBmZGN0cmxfc2V0X2ZpZm8oZmRjdHJs LCAxLCAwKTsNCi0jZW5kaWYNCiB9DQogDQogLyogU2VlayB0byBuZXh0IHNlY3RvciAqLw0K QEAgLTEwMTksNyArMTAyNCw3IEBADQogew0KICAgICBmZHJpdmVfdCAqY3VyX2RydjsNCiAg ICAgdWludDhfdCBraCwga3QsIGtzOw0KLSAgICBpbnQgZGlkX3NlZWs7DQorICAgIGludCBk aWRfc2VlayA9IDA7DQogDQogICAgIGZkY3RybC0+Y3VyX2RydiA9IGZkY3RybC0+Zmlmb1sx XSAmIEZEX0RPUl9TRUxNQVNLOw0KICAgICBjdXJfZHJ2ID0gZ2V0X2N1cl9kcnYoZmRjdHJs KTsNCkBAIC0xMDI5LDggKzEwMzQsNyBAQA0KICAgICBGTE9QUFlfRFBSSU5URigiU3RhcnQg dHJhbnNmZXIgYXQgJWQgJWQgJTAyeCAlMDJ4ICglZClcbiIsDQogICAgICAgICAgICAgICAg ICAgIGZkY3RybC0+Y3VyX2Rydiwga2gsIGt0LCBrcywNCiAgICAgICAgICAgICAgICAgICAg X2ZkX3NlY3RvcihraCwga3QsIGtzLCBjdXJfZHJ2LT5sYXN0X3NlY3QpKTsNCi0gICAgZGlk X3NlZWsgPSAwOw0KLSAgICBzd2l0Y2ggKGZkX3NlZWsoY3VyX2Rydiwga2gsIGt0LCBrcywg ZmRjdHJsLT5jb25maWcgJiAweDQwKSkgew0KKyAgICBzd2l0Y2ggKGZkX3NlZWsoY3VyX2Ry diwga2gsIGt0LCBrcywgZmRjdHJsLT5jb25maWcgJiBGRF9DT05GSUdfRUlTKSkgew0KICAg ICBjYXNlIDI6DQogICAgICAgICAvKiBzZWN0IHRvbyBiaWcgKi8NCiAgICAgICAgIGZkY3Ry bF9zdG9wX3RyYW5zZmVyKGZkY3RybCwgRkRfU1IwX0FCTlRFUk0sIDB4MDAsIDB4MDApOw0K QEAgLTEwNDAsNyArMTA0NCw3IEBADQogICAgICAgICByZXR1cm47DQogICAgIGNhc2UgMzoN CiAgICAgICAgIC8qIHRyYWNrIHRvbyBiaWcgKi8NCi0gICAgICAgIGZkY3RybF9zdG9wX3Ry YW5zZmVyKGZkY3RybCwgRkRfU1IwX0FCTlRFUk0sIDB4ODAsIDB4MDApOw0KKyAgICAgICAg ZmRjdHJsX3N0b3BfdHJhbnNmZXIoZmRjdHJsLCBGRF9TUjBfQUJOVEVSTSwgRkRfU1IxX0VD LCAweDAwKTsNCiAgICAgICAgIGZkY3RybC0+Zmlmb1szXSA9IGt0Ow0KICAgICAgICAgZmRj dHJsLT5maWZvWzRdID0ga2g7DQogICAgICAgICBmZGN0cmwtPmZpZm9bNV0gPSBrczsNCkBA IC0xMTIwLDYgKzExMjQsOCBAQA0KIC8qIFByZXBhcmUgYSB0cmFuc2ZlciBvZiBkZWxldGVk IGRhdGEgKi8NCiBzdGF0aWMgdm9pZCBmZGN0cmxfc3RhcnRfdHJhbnNmZXJfZGVsIChmZGN0 cmxfdCAqZmRjdHJsLCBpbnQgZGlyZWN0aW9uKQ0KIHsNCisgICAgRkxPUFBZX0VSUk9SKCJm ZGN0cmxfc3RhcnRfdHJhbnNmZXJfZGVsKCkgdW5pbXBsZW1lbnRlZFxuIik7DQorDQogICAg IC8qIFdlIGRvbid0IGhhbmRsZSBkZWxldGVkIGRhdGEsDQogICAgICAqIHNvIHdlIGRvbid0 IHJldHVybiAqQU5ZVEhJTkcqDQogICAgICAqLw0KQEAgLTExNDMsNyArMTE0OSw3IEBADQog ICAgIGN1cl9kcnYgPSBnZXRfY3VyX2RydihmZGN0cmwpOw0KICAgICBpZiAoZmRjdHJsLT5k YXRhX2RpciA9PSBGRF9ESVJfU0NBTkUgfHwgZmRjdHJsLT5kYXRhX2RpciA9PSBGRF9ESVJf U0NBTkwgfHwNCiAgICAgICAgIGZkY3RybC0+ZGF0YV9kaXIgPT0gRkRfRElSX1NDQU5IKQ0K LSAgICAgICAgc3RhdHVzMiA9IDB4MDQ7DQorICAgICAgICBzdGF0dXMyID0gRkRfU1IyX1NO UzsNCiAgICAgaWYgKGRtYV9sZW4gPiBmZGN0cmwtPmRhdGFfbGVuKQ0KICAgICAgICAgZG1h X2xlbiA9IGZkY3RybC0+ZGF0YV9sZW47DQogICAgIGlmIChjdXJfZHJ2LT5icyA9PSBOVUxM KSB7DQpAQCAtMTE4Nyw3ICsxMTkzLDcgQEANCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZkY3RybC0+ZGF0YV9wb3MsIGxlbik7DQogICAgICAgICAgICAgaWYgKGJkcnZfd3Jp dGUoY3VyX2Rydi0+YnMsIGZkX3NlY3RvcihjdXJfZHJ2KSwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmZGN0cmwtPmZpZm8sIDEpIDwgMCkgew0KLSAgICAgICAgICAgICAgICBG TE9QUFlfRVJST1IoIndyaXR0aW5nIHNlY3RvciAlZFxuIiwgZmRfc2VjdG9yKGN1cl9kcnYp KTsNCisgICAgICAgICAgICAgICAgRkxPUFBZX0VSUk9SKCJ3cml0aW5nIHNlY3RvciAlZFxu IiwgZmRfc2VjdG9yKGN1cl9kcnYpKTsNCiAgICAgICAgICAgICAgICAgZmRjdHJsX3N0b3Bf dHJhbnNmZXIoZmRjdHJsLCBGRF9TUjBfQUJOVEVSTSB8IEZEX1NSMF9TRUVLLCAweDAwLCAw eDAwKTsNCiAgICAgICAgICAgICAgICAgZ290byB0cmFuc2Zlcl9lcnJvcjsNCiAgICAgICAg ICAgICB9DQpAQCAtMTIwMCw3ICsxMjA2LDcgQEANCiAgICAgICAgICAgICAgICAgRE1BX3Jl YWRfbWVtb3J5IChuY2hhbiwgdG1wYnVmLCBmZGN0cmwtPmRhdGFfcG9zLCBsZW4pOw0KICAg ICAgICAgICAgICAgICByZXQgPSBtZW1jbXAodG1wYnVmLCBmZGN0cmwtPmZpZm8gKyByZWxf cG9zLCBsZW4pOw0KICAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApIHsNCi0gICAgICAg ICAgICAgICAgICAgIHN0YXR1czIgPSAweDA4Ow0KKyAgICAgICAgICAgICAgICAgICAgc3Rh dHVzMiA9IEZEX1NSMl9TRUg7DQogICAgICAgICAgICAgICAgICAgICBnb3RvIGVuZF90cmFu c2ZlcjsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBpZiAoKHJldCA8 IDAgJiYgZmRjdHJsLT5kYXRhX2RpciA9PSBGRF9ESVJfU0NBTkwpIHx8DQpAQCAtMTIyNiwx MSArMTIzMiwxMCBAQA0KICAgICBpZiAoZmRjdHJsLT5kYXRhX2RpciA9PSBGRF9ESVJfU0NB TkUgfHwNCiAgICAgICAgIGZkY3RybC0+ZGF0YV9kaXIgPT0gRkRfRElSX1NDQU5MIHx8DQog ICAgICAgICBmZGN0cmwtPmRhdGFfZGlyID09IEZEX0RJUl9TQ0FOSCkNCi0gICAgICAgIHN0 YXR1czIgPSAweDA4Ow0KKyAgICAgICAgc3RhdHVzMiA9IEZEX1NSMl9TRUg7DQogICAgIGlm IChGRF9ESURfU0VFSyhmZGN0cmwtPmRhdGFfc3RhdGUpKQ0KICAgICAgICAgc3RhdHVzMCB8 PSBGRF9TUjBfU0VFSzsNCiAgICAgZmRjdHJsLT5kYXRhX2xlbiAtPSBsZW47DQotICAgIC8v ICAgIGlmIChmZGN0cmwtPmRhdGFfbGVuID09IDApDQogICAgIGZkY3RybF9zdG9wX3RyYW5z ZmVyKGZkY3RybCwgc3RhdHVzMCwgc3RhdHVzMSwgc3RhdHVzMik7DQogIHRyYW5zZmVyX2Vy cm9yOg0KIA0KQEAgLTEyNjAsNyArMTI2NSwxMiBAQA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmRfc2VjdG9yKGN1cl9kcnYpKTsNCiAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAwOw0KICAgICAgICAgICAgICAgICB9DQotICAgICAgICAgICAgYmRydl9y ZWFkKGN1cl9kcnYtPmJzLCBmZF9zZWN0b3IoY3VyX2RydiksIGZkY3RybC0+ZmlmbywgMSk7 DQorICAgICAgICAgICAgaWYgKGJkcnZfcmVhZChjdXJfZHJ2LT5icywgZmRfc2VjdG9yKGN1 cl9kcnYpLCBmZGN0cmwtPmZpZm8sIDEpIDwgMCkgew0KKyAgICAgICAgICAgICAgICBGTE9Q UFlfRFBSSU5URigiZXJyb3IgZ2V0dGluZyBzZWN0b3IgJWRcbiIsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZkX3NlY3RvcihjdXJfZHJ2KSk7DQorICAgICAgICAgICAg ICAgIC8qIFN1cmUsIGltYWdlIHNpemUgaXMgdG9vIHNtYWxsLi4uICovDQorICAgICAgICAg ICAgICAgIG1lbXNldChmZGN0cmwtPmZpZm8sIDAsIEZEX1NFQ1RPUl9MRU4pOw0KKyAgICAg ICAgICAgIH0NCiAgICAgICAgIH0NCiAgICAgfQ0KICAgICByZXR2YWwgPSBmZGN0cmwtPmZp Zm9bcG9zXTsNCkBAIC0xMjg1LDcgKzEyOTUsNiBAQA0KIHsNCiAgICAgZmRyaXZlX3QgKmN1 cl9kcnY7DQogICAgIHVpbnQ4X3Qga2gsIGt0LCBrczsNCi0gICAgaW50IGRpZF9zZWVrOw0K IA0KICAgICBmZGN0cmwtPmN1cl9kcnYgPSBmZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VM TUFTSzsNCiAgICAgY3VyX2RydiA9IGdldF9jdXJfZHJ2KGZkY3RybCk7DQpAQCAtMTI5NSw3 ICsxMzA0LDYgQEANCiAgICAgRkxPUFBZX0RQUklOVEYoImZvcm1hdCBzZWN0b3IgYXQgJWQg JWQgJTAyeCAlMDJ4ICglZClcbiIsDQogICAgICAgICAgICAgICAgICAgIGZkY3RybC0+Y3Vy X2Rydiwga2gsIGt0LCBrcywNCiAgICAgICAgICAgICAgICAgICAgX2ZkX3NlY3RvcihraCwg a3QsIGtzLCBjdXJfZHJ2LT5sYXN0X3NlY3QpKTsNCi0gICAgZGlkX3NlZWsgPSAwOw0KICAg ICBzd2l0Y2ggKGZkX3NlZWsoY3VyX2Rydiwga2gsIGt0LCBrcywgZmRjdHJsLT5jb25maWcg JiBGRF9DT05GSUdfRUlTKSkgew0KICAgICBjYXNlIDI6DQogICAgICAgICAvKiBzZWN0IHRv byBiaWcgKi8NCkBAIC0xMzA2LDcgKzEzMTQsNyBAQA0KICAgICAgICAgcmV0dXJuOw0KICAg ICBjYXNlIDM6DQogICAgICAgICAvKiB0cmFjayB0b28gYmlnICovDQotICAgICAgICBmZGN0 cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwsIEZEX1NSMF9BQk5URVJNLCAweDgwLCAweDAwKTsN CisgICAgICAgIGZkY3RybF9zdG9wX3RyYW5zZmVyKGZkY3RybCwgRkRfU1IwX0FCTlRFUk0s IEZEX1NSMV9FQywgMHgwMCk7DQogICAgICAgICBmZGN0cmwtPmZpZm9bM10gPSBrdDsNCiAg ICAgICAgIGZkY3RybC0+Zmlmb1s0XSA9IGtoOw0KICAgICAgICAgZmRjdHJsLT5maWZvWzVd ID0ga3M7DQpAQCAtMTMxOSw3ICsxMzI3LDYgQEANCiAgICAgICAgIGZkY3RybC0+Zmlmb1s1 XSA9IGtzOw0KICAgICAgICAgcmV0dXJuOw0KICAgICBjYXNlIDE6DQotICAgICAgICBkaWRf c2VlayA9IDE7DQogICAgICAgICBmZGN0cmwtPmRhdGFfc3RhdGUgfD0gRkRfU1RBVEVfU0VF SzsNCiAgICAgICAgIGJyZWFrOw0KICAgICBkZWZhdWx0Og0KQEAgLTE1MTUsMTggKzE1MjIs MTggQEANCiANCiAjaWYgMA0KICAgICBmZGN0cmwtPmZpZm9bMF0gPQ0KLSAgICAgICAgZmRj dHJsLT5pbnRfc3RhdHVzIHwgKGN1cl9kcnYtPmhlYWQgPDwgMikgfCBmZGN0cmwtPmN1cl9k cnY7DQorICAgICAgICBmZGN0cmwtPnN0YXR1czAgfCAoY3VyX2Rydi0+aGVhZCA8PCAyKSB8 IGZkY3RybC0+Y3VyX2RydjsNCiAjZWxzZQ0KLSAgICAvKiBYWFg6IGludF9zdGF0dXMgaGFu ZGxpbmcgaXMgYnJva2VuIGZvciByZWFkL3dyaXRlDQorICAgIC8qIFhYWDogc3RhdHVzMCBo YW5kbGluZyBpcyBicm9rZW4gZm9yIHJlYWQvd3JpdGUNCiAgICAgICAgY29tbWFuZHMsIHNv IHdlIGRvIHRoaXMgaGFjay4gSXQgc2hvdWxkIGJlIHN1cHByZXNzZWQNCiAgICAgICAgQVNB UCAqLw0KICAgICBmZGN0cmwtPmZpZm9bMF0gPQ0KLSAgICAgICAgMHgyMCB8IChjdXJfZHJ2 LT5oZWFkIDw8IDIpIHwgZmRjdHJsLT5jdXJfZHJ2Ow0KKyAgICAgICAgRkRfU1IwX1NFRUsg fCAoY3VyX2Rydi0+aGVhZCA8PCAyKSB8IGZkY3RybC0+Y3VyX2RydjsNCiAjZW5kaWYNCiAg ICAgZmRjdHJsLT5maWZvWzFdID0gY3VyX2Rydi0+dHJhY2s7DQogICAgIGZkY3RybF9zZXRf ZmlmbyhmZGN0cmwsIDIsIDApOw0KICAgICBmZGN0cmxfcmVzZXRfaXJxKGZkY3RybCk7DQot ICAgIGZkY3RybC0+aW50X3N0YXR1cyA9IEZEX1NSMF9SRFlDSEc7DQorICAgIGZkY3RybC0+ c3RhdHVzMCA9IEZEX1NSMF9SRFlDSEc7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGZkY3RybF9o YW5kbGVfc2VlayAoZmRjdHJsX3QgKmZkY3RybCwgaW50IGRpcmVjdGlvbikNCkBAIC0xNTM1 LDEwICsxNTQyLDYgQEANCiANCiAgICAgZmRjdHJsLT5jdXJfZHJ2ID0gZmRjdHJsLT5maWZv WzFdICYgRkRfRE9SX1NFTE1BU0s7DQogICAgIGN1cl9kcnYgPSBnZXRfY3VyX2RydihmZGN0 cmwpOw0KLSAgICBpZiAoZmRjdHJsLT5maWZvWzJdIDw9IGN1cl9kcnYtPnRyYWNrKQ0KLSAg ICAgICAgY3VyX2Rydi0+ZGlyID0gMTsNCi0gICAgZWxzZQ0KLSAgICAgICAgY3VyX2Rydi0+ ZGlyID0gMDsNCiAgICAgZmRjdHJsX3Jlc2V0X2ZpZm8oZmRjdHJsKTsNCiAgICAgaWYgKGZk Y3RybC0+Zmlmb1syXSA+IGN1cl9kcnYtPm1heF90cmFjaykgew0KICAgICAgICAgZmRjdHJs X3JhaXNlX2lycShmZGN0cmwsIEZEX1NSMF9BQk5URVJNIHwgRkRfU1IwX1NFRUspOw0KQEAg LTE2MDQsMjcgKzE2MDcsMjYgQEANCiANCiBzdGF0aWMgdm9pZCBmZGN0cmxfaGFuZGxlX3Jl bGF0aXZlX3NlZWtfb3V0IChmZGN0cmxfdCAqZmRjdHJsLCBpbnQgZGlyZWN0aW9uKQ0KIHsN Ci0gICAgZmRyaXZlX3QgKmN1cl9kcnYgPSBnZXRfY3VyX2RydihmZGN0cmwpOw0KKyAgICBm ZHJpdmVfdCAqY3VyX2RydjsNCiANCiAgICAgZmRjdHJsLT5jdXJfZHJ2ID0gZmRjdHJsLT5m aWZvWzFdICYgRkRfRE9SX1NFTE1BU0s7DQogICAgIGN1cl9kcnYgPSBnZXRfY3VyX2Rydihm ZGN0cmwpOw0KLSAgICBjdXJfZHJ2LT5kaXIgPSAwOw0KICAgICBpZiAoZmRjdHJsLT5maWZv WzJdICsgY3VyX2Rydi0+dHJhY2sgPj0gY3VyX2Rydi0+bWF4X3RyYWNrKSB7DQogICAgICAg ICBjdXJfZHJ2LT50cmFjayA9IGN1cl9kcnYtPm1heF90cmFjayAtIDE7DQogICAgIH0gZWxz ZSB7DQogICAgICAgICBjdXJfZHJ2LT50cmFjayArPSBmZGN0cmwtPmZpZm9bMl07DQogICAg IH0NCiAgICAgZmRjdHJsX3Jlc2V0X2ZpZm8oZmRjdHJsKTsNCisgICAgLyogUmFpc2UgSW50 ZXJydXB0ICovDQogICAgIGZkY3RybF9yYWlzZV9pcnEoZmRjdHJsLCBGRF9TUjBfU0VFSyk7 DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGZkY3RybF9oYW5kbGVfcmVsYXRpdmVfc2Vla19pbiAo ZmRjdHJsX3QgKmZkY3RybCwgaW50IGRpcmVjdGlvbikNCiB7DQotICAgIGZkcml2ZV90ICpj dXJfZHJ2ID0gZ2V0X2N1cl9kcnYoZmRjdHJsKTsNCisgICAgZmRyaXZlX3QgKmN1cl9kcnY7 DQogDQogICAgIGZkY3RybC0+Y3VyX2RydiA9IGZkY3RybC0+Zmlmb1sxXSAmIEZEX0RPUl9T RUxNQVNLOw0KICAgICBjdXJfZHJ2ID0gZ2V0X2N1cl9kcnYoZmRjdHJsKTsNCi0gICAgY3Vy X2Rydi0+ZGlyID0gMTsNCiAgICAgaWYgKGZkY3RybC0+Zmlmb1syXSA+IGN1cl9kcnYtPnRy YWNrKSB7DQogICAgICAgICBjdXJfZHJ2LT50cmFjayA9IDA7DQogICAgIH0gZWxzZSB7DQpA QCAtMTY4NCw3ICsxNjg2LDYgQEANCiAgICAgZmRyaXZlX3QgKmN1cl9kcnY7DQogICAgIGlu dCBwb3M7DQogDQotICAgIGN1cl9kcnYgPSBnZXRfY3VyX2RydihmZGN0cmwpOw0KICAgICAv KiBSZXNldCBtb2RlICovDQogICAgIGlmICghKGZkY3RybC0+ZG9yICYgRkRfRE9SX25SRVNF VCkpIHsNCiAgICAgICAgIEZMT1BQWV9EUFJJTlRGKCJGbG9wcHkgY29udHJvbGxlciBpbiBS RVNFVCBzdGF0ZSAhXG4iKTsNCkBAIC0xNzAxLDcgKzE3MDIsMTEgQEANCiAgICAgICAgIGZk Y3RybC0+Zmlmb1tmZGN0cmwtPmRhdGFfcG9zKytdID0gdmFsdWU7DQogICAgICAgICBpZiAo ZmRjdHJsLT5kYXRhX3BvcyAlIEZEX1NFQ1RPUl9MRU4gPT0gKEZEX1NFQ1RPUl9MRU4gLSAx KSB8fA0KICAgICAgICAgICAgIGZkY3RybC0+ZGF0YV9wb3MgPT0gZmRjdHJsLT5kYXRhX2xl bikgew0KLSAgICAgICAgICAgIGJkcnZfd3JpdGUoY3VyX2Rydi0+YnMsIGZkX3NlY3Rvcihj dXJfZHJ2KSwgZmRjdHJsLT5maWZvLCAxKTsNCisgICAgICAgICAgICBjdXJfZHJ2ID0gZ2V0 X2N1cl9kcnYoZmRjdHJsKTsNCisgICAgICAgICAgICBpZiAoYmRydl93cml0ZShjdXJfZHJ2 LT5icywgZmRfc2VjdG9yKGN1cl9kcnYpLCBmZGN0cmwtPmZpZm8sIDEpIDwgMCkgew0KKyAg ICAgICAgICAgICAgICBGTE9QUFlfRVJST1IoIndyaXRpbmcgc2VjdG9yICVkXG4iLCBmZF9z ZWN0b3IoY3VyX2RydikpOw0KKyAgICAgICAgICAgICAgICByZXR1cm47DQorICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgIGlmICghZmRjdHJsX3NlZWtfdG9fbmV4dF9zZWN0KGZkY3Ry bCwgY3VyX2RydikpIHsNCiAgICAgICAgICAgICAgICAgRkxPUFBZX0RQUklOVEYoImVycm9y IHNlZWtpbmcgdG8gbmV4dCBzZWN0b3IgJWRcbiIsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZkX3NlY3RvcihjdXJfZHJ2KSk7DQpAQCAtMTcyMyw4ICsxNzI4LDggQEAN CiAgICAgfQ0KIA0KICAgICBGTE9QUFlfRFBSSU5URigiJXM6ICUwMnhcbiIsIF9fZnVuY19f LCB2YWx1ZSk7DQotICAgIGZkY3RybC0+Zmlmb1tmZGN0cmwtPmRhdGFfcG9zXSA9IHZhbHVl Ow0KLSAgICBpZiAoKytmZGN0cmwtPmRhdGFfcG9zID09IGZkY3RybC0+ZGF0YV9sZW4pIHsN CisgICAgZmRjdHJsLT5maWZvW2ZkY3RybC0+ZGF0YV9wb3MrK10gPSB2YWx1ZTsNCisgICAg aWYgKGZkY3RybC0+ZGF0YV9wb3MgPT0gZmRjdHJsLT5kYXRhX2xlbikgew0KICAgICAgICAg LyogV2Ugbm93IGhhdmUgYWxsIHBhcmFtZXRlcnMNCiAgICAgICAgICAqIGFuZCB3aWxsIGJl IGFibGUgdG8gdHJlYXQgdGhlIGNvbW1hbmQNCiAgICAgICAgICAqLw0KQEAgLTE3OTMsOCAr MTc5OCw4IEBADQogICAgIGZvciAoaSA9IDA7IGkgPCBNQVhfRkQ7IGkrKykgew0KICAgICAg ICAgZmRfaW5pdCgmZmRjdHJsLT5kcml2ZXNbaV0sIGZkc1tpXSk7DQogICAgIH0NCi0gICAg ZmRjdHJsX3Jlc2V0KGZkY3RybCwgMCk7DQotICAgIHJlZ2lzdGVyX3NhdmV2bSgiZmRjIiwg aW9fYmFzZSwgMSwgZmRjX3NhdmUsIGZkY19sb2FkLCBmZGN0cmwpOw0KKyAgICBmZGN0cmxf ZXh0ZXJuYWxfcmVzZXQoZmRjdHJsKTsNCisgICAgcmVnaXN0ZXJfc2F2ZXZtKCJmZGMiLCBp b19iYXNlLCAyLCBmZGNfc2F2ZSwgZmRjX2xvYWQsIGZkY3RybCk7DQogICAgIHFlbXVfcmVn aXN0ZXJfcmVzZXQoZmRjdHJsX2V4dGVybmFsX3Jlc2V0LCBmZGN0cmwpOw0KICAgICBmb3Ig KGkgPSAwOyBpIDwgTUFYX0ZEOyBpKyspIHsNCiAgICAgICAgIGZkX3JldmFsaWRhdGUoJmZk Y3RybC0+ZHJpdmVzW2ldKTsNCg== --------------060308060501050407050601 Content-Type: text/plain; name="fdc_08_tdr_reg.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_08_tdr_reg.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC00NjcsMTAgKzQ2Nywx MCBAQA0KICAgICB1aW50OF90IHNyYTsNCiAgICAgdWludDhfdCBzcmI7DQogICAgIHVpbnQ4 X3QgZG9yOw0KKyAgICB1aW50OF90IHRkcjsNCiAgICAgdWludDhfdCBkc3I7DQogICAgIHVp bnQ4X3QgbXNyOw0KICAgICB1aW50OF90IGN1cl9kcnY7DQotICAgIHVpbnQ4X3QgYm9vdHNl bDsNCiAgICAgdWludDhfdCBzdGF0dXMwOw0KICAgICB1aW50OF90IHN0YXR1czE7DQogICAg IHVpbnQ4X3Qgc3RhdHVzMjsNCkBAIC02MDYsMTMgKzYwNiwxMyBAQA0KICAgICAvKiBDb250 cm9sbGVyIHN0YXRlICovDQogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5zcmEpOw0KICAgICBx ZW11X3B1dF84cyhmLCAmcy0+c3JiKTsNCisgICAgcWVtdV9wdXRfOHMoZiwgJnMtPnRkcik7 DQogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5kc3IpOw0KICAgICBxZW11X3B1dF84cyhmLCAm cy0+bXNyKTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPnN0YXR1czApOw0KICAgICBxZW11 X3B1dF84cyhmLCAmcy0+c3RhdHVzMSk7DQogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5zdGF0 dXMyKTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPmN1cl9kcnYpOw0KLSAgICBxZW11X3B1 dF84cyhmLCAmcy0+Ym9vdHNlbCk7DQogICAgIC8qIENvbW1hbmQgRklGTyAqLw0KICAgICBx ZW11X3B1dF9idWZmZXIoZiwgcy0+ZmlmbywgRkRfU0VDVE9SX0xFTik7DQogICAgIHFlbXVf cHV0X2JlMzJzKGYsICZzLT5kYXRhX3Bvcyk7DQpAQCAtNjUxLDEzICs2NTEsMTMgQEANCiAg ICAgLyogQ29udHJvbGxlciBzdGF0ZSAqLw0KICAgICBxZW11X2dldF84cyhmLCAmcy0+c3Jh KTsNCiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnNyYik7DQorICAgIHFlbXVfZ2V0XzhzKGYs ICZzLT50ZHIpOw0KICAgICBxZW11X2dldF84cyhmLCAmcy0+ZHNyKTsNCiAgICAgcWVtdV9n ZXRfOHMoZiwgJnMtPm1zcik7DQogICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5zdGF0dXMwKTsN CiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnN0YXR1czEpOw0KICAgICBxZW11X2dldF84cyhm LCAmcy0+c3RhdHVzMik7DQogICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5jdXJfZHJ2KTsNCi0g ICAgcWVtdV9nZXRfOHMoZiwgJnMtPmJvb3RzZWwpOw0KICAgICAvKiBDb21tYW5kIEZJRk8g Ki8NCiAgICAgcWVtdV9nZXRfYnVmZmVyKGYsIHMtPmZpZm8sIEZEX1NFQ1RPUl9MRU4pOw0K ICAgICBxZW11X2dldF9iZTMycyhmLCAmcy0+ZGF0YV9wb3MpOw0KQEAgLTc2MiwxMiArNzYy LDE1IEBADQogDQogc3RhdGljIGlubGluZSBmZHJpdmVfdCAqZHJ2MCAoZmRjdHJsX3QgKmZk Y3RybCkNCiB7DQotICAgIHJldHVybiAmZmRjdHJsLT5kcml2ZXNbZmRjdHJsLT5ib290c2Vs XTsNCisgICAgcmV0dXJuICZmZGN0cmwtPmRyaXZlc1soZmRjdHJsLT50ZHIgJiBGRF9URFJf Qk9PVFNFTCkgPj4gMl07DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgZmRyaXZlX3QgKmRydjEg KGZkY3RybF90ICpmZGN0cmwpDQogew0KLSAgICByZXR1cm4gJmZkY3RybC0+ZHJpdmVzWzEg LSBmZGN0cmwtPmJvb3RzZWxdOw0KKyAgICBpZiAoKGZkY3RybC0+dGRyICYgRkRfVERSX0JP T1RTRUwpIDwgKDEgPDwgMikpDQorICAgICAgICByZXR1cm4gJmZkY3RybC0+ZHJpdmVzWzFd Ow0KKyAgICBlbHNlDQorICAgICAgICByZXR1cm4gJmZkY3RybC0+ZHJpdmVzWzBdOw0KIH0N CiANCiBzdGF0aWMgZmRyaXZlX3QgKmdldF9jdXJfZHJ2IChmZGN0cmxfdCAqZmRjdHJsKQ0K QEAgLTg0OCwxMSArODUxLDggQEANCiAvKiBUYXBlIGRyaXZlIHJlZ2lzdGVyIDogMHgwMyAq Lw0KIHN0YXRpYyB1aW50MzJfdCBmZGN0cmxfcmVhZF90YXBlIChmZGN0cmxfdCAqZmRjdHJs KQ0KIHsNCi0gICAgdWludDMyX3QgcmV0dmFsID0gMDsNCisgICAgdWludDMyX3QgcmV0dmFs ID0gZmRjdHJsLT50ZHI7DQogDQotICAgIC8qIERpc2sgYm9vdCBzZWxlY3Rpb24gaW5kaWNh dG9yICovDQotICAgIHJldHZhbCB8PSBmZGN0cmwtPmJvb3RzZWwgPDwgMjsNCi0gICAgLyog VGFwZSBpbmRpY2F0b3JzOiBuZXZlciBhbGxvd2VkICovDQogICAgIEZMT1BQWV9EUFJJTlRG KCJ0YXBlIGRyaXZlIHJlZ2lzdGVyOiAweCUwMnhcbiIsIHJldHZhbCk7DQogDQogICAgIHJl dHVybiByZXR2YWw7DQpAQCAtODY3LDcgKzg2Nyw3IEBADQogICAgIH0NCiAgICAgRkxPUFBZ X0RQUklOVEYoInRhcGUgZHJpdmUgcmVnaXN0ZXIgc2V0IHRvIDB4JTAyeFxuIiwgdmFsdWUp Ow0KICAgICAvKiBEaXNrIGJvb3Qgc2VsZWN0aW9uIGluZGljYXRvciAqLw0KLSAgICBmZGN0 cmwtPmJvb3RzZWwgPSAodmFsdWUgJiBGRF9URFJfQk9PVFNFTCkgPj4gMjsNCisgICAgZmRj dHJsLT50ZHIgPSB2YWx1ZSAmIEZEX1REUl9CT09UU0VMOw0KICAgICAvKiBUYXBlIGluZGlj YXRvcnM6IG5ldmVyIGFsbG93ICovDQogfQ0KIA0K --------------060308060501050407050601 Content-Type: text/plain; name="fdc_09_4_fds.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_09_4_fds.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC00MTcsNyArNDE3LDEx IEBADQogfTsNCiANCiBlbnVtIHsNCisjaWYgTUFYX0ZEID09IDQNCisgICAgRkRfRE9SX1NF TE1BU0sgID0gMHgwMywNCisjZWxzZQ0KICAgICBGRF9ET1JfU0VMTUFTSyAgPSAweDAxLA0K KyNlbmRpZg0KICAgICBGRF9ET1JfblJFU0VUICAgPSAweDA0LA0KICAgICBGRF9ET1JfRE1B RU4gICAgPSAweDA4LA0KICAgICBGRF9ET1JfTU9URU4wICAgPSAweDEwLA0KQEAgLTQyNyw3 ICs0MzEsMTEgQEANCiB9Ow0KIA0KIGVudW0gew0KKyNpZiBNQVhfRkQgPT0gNA0KICAgICBG RF9URFJfQk9PVFNFTCAgPSAweDBjLA0KKyNlbHNlDQorICAgIEZEX1REUl9CT09UU0VMICA9 IDB4MDQsDQorI2VuZGlmDQogfTsNCiANCiBlbnVtIHsNCkBAIC00OTQsNyArNTAyLDcgQEAN CiAgICAgLyogU3VuNG0gcXVpcmtzPyAqLw0KICAgICBpbnQgc3VuNG07DQogICAgIC8qIEZs b3BweSBkcml2ZXMgKi8NCi0gICAgZmRyaXZlX3QgZHJpdmVzWzJdOw0KKyAgICBmZHJpdmVf dCBkcml2ZXNbTUFYX0ZEXTsNCiB9Ow0KIA0KIHN0YXRpYyB1aW50MzJfdCBmZGN0cmxfcmVh ZCAodm9pZCAqb3BhcXVlLCB1aW50MzJfdCByZWcpDQpAQCAtNjAyLDYgKzYxMCw4IEBADQog c3RhdGljIHZvaWQgZmRjX3NhdmUgKFFFTVVGaWxlICpmLCB2b2lkICpvcGFxdWUpDQogew0K ICAgICBmZGN0cmxfdCAqcyA9IG9wYXF1ZTsNCisgICAgdWludDhfdCB0bXA7DQorICAgIGlu dCBpOw0KIA0KICAgICAvKiBDb250cm9sbGVyIHN0YXRlICovDQogICAgIHFlbXVfcHV0Xzhz KGYsICZzLT5zcmEpOw0KQEAgLTYyNyw4ICs2MzcsMTEgQEANCiAgICAgcWVtdV9wdXRfOHMo ZiwgJnMtPmNvbmZpZyk7DQogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5sb2NrKTsNCiAgICAg cWVtdV9wdXRfOHMoZiwgJnMtPnB3cmQpOw0KLSAgICBmZF9zYXZlKGYsICZzLT5kcml2ZXNb MF0pOw0KLSAgICBmZF9zYXZlKGYsICZzLT5kcml2ZXNbMV0pOw0KKw0KKyAgICB0bXAgPSBN QVhfRkQ7DQorICAgIHFlbXVfcHV0XzhzKGYsICZ0bXApOw0KKyAgICBmb3IgKGkgPSAwOyBp IDwgTUFYX0ZEOyBpKyspDQorICAgICAgICBmZF9zYXZlKGYsICZzLT5kcml2ZXNbaV0pOw0K IH0NCiANCiBzdGF0aWMgaW50IGZkX2xvYWQgKFFFTVVGaWxlICpmLCBmZHJpdmVfdCAqZmQp DQpAQCAtNjQzLDcgKzY1Niw4IEBADQogc3RhdGljIGludCBmZGNfbG9hZCAoUUVNVUZpbGUg KmYsIHZvaWQgKm9wYXF1ZSwgaW50IHZlcnNpb25faWQpDQogew0KICAgICBmZGN0cmxfdCAq cyA9IG9wYXF1ZTsNCi0gICAgaW50IHJldDsNCisgICAgaW50IGksIHJldCA9IDA7DQorICAg IHVpbnQ4X3QgbjsNCiANCiAgICAgaWYgKHZlcnNpb25faWQgIT0gMikNCiAgICAgICAgIHJl dHVybiAtRUlOVkFMOw0KQEAgLTY3MiwxMCArNjg2LDE2IEBADQogICAgIHFlbXVfZ2V0Xzhz KGYsICZzLT5jb25maWcpOw0KICAgICBxZW11X2dldF84cyhmLCAmcy0+bG9jayk7DQogICAg IHFlbXVfZ2V0XzhzKGYsICZzLT5wd3JkKTsNCisgICAgcWVtdV9nZXRfOHMoZiwgJm4pOw0K IA0KLSAgICByZXQgPSBmZF9sb2FkKGYsICZzLT5kcml2ZXNbMF0pOw0KLSAgICBpZiAocmV0 ID09IDApDQotICAgICAgICByZXQgPSBmZF9sb2FkKGYsICZzLT5kcml2ZXNbMV0pOw0KKyAg ICBpZiAobiA+IE1BWF9GRCkNCisgICAgICAgIHJldHVybiAtRUlOVkFMOw0KKw0KKyAgICBm b3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7DQorICAgICAgICByZXQgPSBmZF9sb2FkKGYsICZz LT5kcml2ZXNbaV0pOw0KKyAgICAgICAgaWYgKHJldCAhPSAwKQ0KKyAgICAgICAgICAgIGJy ZWFrOw0KKyAgICB9DQogDQogICAgIHJldHVybiByZXQ7DQogfQ0KQEAgLTc3Myw5ICs3OTMs MzUgQEANCiAgICAgICAgIHJldHVybiAmZmRjdHJsLT5kcml2ZXNbMF07DQogfQ0KIA0KKyNp ZiBNQVhfRkQgPT0gNA0KK3N0YXRpYyBpbmxpbmUgZmRyaXZlX3QgKmRydjIgKGZkY3RybF90 ICpmZGN0cmwpDQorew0KKyAgICBpZiAoKGZkY3RybC0+dGRyICYgRkRfVERSX0JPT1RTRUwp IDwgKDIgPDwgMikpDQorICAgICAgICByZXR1cm4gJmZkY3RybC0+ZHJpdmVzWzJdOw0KKyAg ICBlbHNlDQorICAgICAgICByZXR1cm4gJmZkY3RybC0+ZHJpdmVzWzFdOw0KK30NCisNCitz dGF0aWMgaW5saW5lIGZkcml2ZV90ICpkcnYzIChmZGN0cmxfdCAqZmRjdHJsKQ0KK3sNCisg ICAgaWYgKChmZGN0cmwtPnRkciAmIEZEX1REUl9CT09UU0VMKSA8ICgzIDw8IDIpKQ0KKyAg ICAgICAgcmV0dXJuICZmZGN0cmwtPmRyaXZlc1szXTsNCisgICAgZWxzZQ0KKyAgICAgICAg cmV0dXJuICZmZGN0cmwtPmRyaXZlc1syXTsNCit9DQorI2VuZGlmDQorDQogc3RhdGljIGZk cml2ZV90ICpnZXRfY3VyX2RydiAoZmRjdHJsX3QgKmZkY3RybCkNCiB7DQotICAgIHJldHVy biBmZGN0cmwtPmN1cl9kcnYgPT0gMCA/IGRydjAoZmRjdHJsKSA6IGRydjEoZmRjdHJsKTsN CisgICAgc3dpdGNoIChmZGN0cmwtPmN1cl9kcnYpIHsNCisgICAgICAgIGNhc2UgMDogcmV0 dXJuIGRydjAoZmRjdHJsKTsNCisgICAgICAgIGNhc2UgMTogcmV0dXJuIGRydjEoZmRjdHJs KTsNCisjaWYgTUFYX0ZEID09IDQNCisgICAgICAgIGNhc2UgMjogcmV0dXJuIGRydjIoZmRj dHJsKTsNCisgICAgICAgIGNhc2UgMzogcmV0dXJuIGRydjMoZmRjdHJsKTsNCisjZW5kaWYN CisgICAgICAgIGRlZmF1bHQ6IHJldHVybiBOVUxMOw0KKyAgICB9DQogfQ0KIA0KIC8qIFN0 YXR1cyBBIHJlZ2lzdGVyIDogMHgwMCAocmVhZC1vbmx5KSAqLw0KQEAgLTkyMyw4ICs5Njks MTMgQEANCiB7DQogICAgIHVpbnQzMl90IHJldHZhbCA9IDA7DQogDQotICAgIGlmIChmZGN0 cmxfbWVkaWFfY2hhbmdlZChkcnYwKGZkY3RybCkpIHx8DQotICAgICAgICBmZGN0cmxfbWVk aWFfY2hhbmdlZChkcnYxKGZkY3RybCkpKQ0KKyAgICBpZiAoZmRjdHJsX21lZGlhX2NoYW5n ZWQoZHJ2MChmZGN0cmwpKQ0KKyAgICAgfHwgZmRjdHJsX21lZGlhX2NoYW5nZWQoZHJ2MShm ZGN0cmwpKQ0KKyNpZiBNQVhfRkQgPT0gNA0KKyAgICAgfHwgZmRjdHJsX21lZGlhX2NoYW5n ZWQoZHJ2MihmZGN0cmwpKQ0KKyAgICAgfHwgZmRjdHJsX21lZGlhX2NoYW5nZWQoZHJ2Myhm ZGN0cmwpKQ0KKyNlbmRpZg0KKyAgICAgICAgKQ0KICAgICAgICAgcmV0dmFsIHw9IEZEX0RJ Ul9EU0tDSEc7DQogICAgIGlmIChyZXR2YWwgIT0gMCkNCiAgICAgICAgIEZMT1BQWV9EUFJJ TlRGKCJGbG9wcHkgZGlnaXRhbCBpbnB1dCByZWdpc3RlcjogMHglMDJ4XG4iLCByZXR2YWwp Ow0KQEAgLTEzNjcsOCArMTQxOCwxMyBAQA0KICAgICAvKiBEcml2ZXMgcG9zaXRpb24gKi8N CiAgICAgZmRjdHJsLT5maWZvWzBdID0gZHJ2MChmZGN0cmwpLT50cmFjazsNCiAgICAgZmRj dHJsLT5maWZvWzFdID0gZHJ2MShmZGN0cmwpLT50cmFjazsNCisjaWYgTUFYX0ZEID09IDQN CisgICAgZmRjdHJsLT5maWZvWzJdID0gZHJ2MihmZGN0cmwpLT50cmFjazsNCisgICAgZmRj dHJsLT5maWZvWzNdID0gZHJ2MyhmZGN0cmwpLT50cmFjazsNCisjZWxzZQ0KICAgICBmZGN0 cmwtPmZpZm9bMl0gPSAwOw0KICAgICBmZGN0cmwtPmZpZm9bM10gPSAwOw0KKyNlbmRpZg0K ICAgICAvKiB0aW1lcnMgKi8NCiAgICAgZmRjdHJsLT5maWZvWzRdID0gZmRjdHJsLT50aW1l cjA7DQogICAgIGZkY3RybC0+Zmlmb1s1XSA9IChmZGN0cmwtPnRpbWVyMSA8PCAxKSB8IChm ZGN0cmwtPmRvciAmIEZEX0RPUl9ETUFFTiA/IDEgOiAwKTsNCkBAIC0xNDAwLDYgKzE0NTYs MTAgQEANCiAgICAgLyogRHJpdmVzIHBvc2l0aW9uICovDQogICAgIGRydjAoZmRjdHJsKS0+ dHJhY2sgPSBmZGN0cmwtPmZpZm9bM107DQogICAgIGRydjEoZmRjdHJsKS0+dHJhY2sgPSBm ZGN0cmwtPmZpZm9bNF07DQorI2lmIE1BWF9GRCA9PSA0DQorICAgIGRydjIoZmRjdHJsKS0+ dHJhY2sgPSBmZGN0cmwtPmZpZm9bNV07DQorICAgIGRydjMoZmRjdHJsKS0+dHJhY2sgPSBm ZGN0cmwtPmZpZm9bNl07DQorI2VuZGlmDQogICAgIC8qIHRpbWVycyAqLw0KICAgICBmZGN0 cmwtPnRpbWVyMCA9IGZkY3RybC0+Zmlmb1s3XTsNCiAgICAgZmRjdHJsLT50aW1lcjEgPSBm ZGN0cmwtPmZpZm9bOF07DQpAQCAtMTQyMSw4ICsxNDgxLDEzIEBADQogICAgIC8qIERyaXZl cyBwb3NpdGlvbiAqLw0KICAgICBmZGN0cmwtPmZpZm9bMl0gPSBkcnYwKGZkY3RybCktPnRy YWNrOw0KICAgICBmZGN0cmwtPmZpZm9bM10gPSBkcnYxKGZkY3RybCktPnRyYWNrOw0KKyNp ZiBNQVhfRkQgPT0gNA0KKyAgICBmZGN0cmwtPmZpZm9bNF0gPSBkcnYyKGZkY3RybCktPnRy YWNrOw0KKyAgICBmZGN0cmwtPmZpZm9bNV0gPSBkcnYzKGZkY3RybCktPnRyYWNrOw0KKyNl bHNlDQogICAgIGZkY3RybC0+Zmlmb1s0XSA9IDA7DQogICAgIGZkY3RybC0+Zmlmb1s1XSA9 IDA7DQorI2VuZGlmDQogICAgIC8qIHRpbWVycyAqLw0KICAgICBmZGN0cmwtPmZpZm9bNl0g PSBmZGN0cmwtPnRpbWVyMDsNCiAgICAgZmRjdHJsLT5maWZvWzddID0gZmRjdHJsLT50aW1l cjE7DQo= --------------060308060501050407050601 Content-Type: text/plain; name="fdc_10_cur_drv.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_10_cur_drv.diff" SW5kZXg6IGh3L2ZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvZmRjLmMJKHJldmlzaW9u IDQyMjApDQorKysgaHcvZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC00OSw2ICs0OSw5IEBA DQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLw0KIC8qIEZsb3BweSBkcml2ZSBlbXVsYXRpb24gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKi8NCiANCisjZGVmaW5lIEdFVF9DVVJfRFJWKGZkY3RybCkgKChmZGN0 cmwpLT5jdXJfZHJ2KQ0KKyNkZWZpbmUgU0VUX0NVUl9EUlYoZmRjdHJsLCBkcml2ZSkgKChm ZGN0cmwpLT5jdXJfZHJ2ID0gKGRyaXZlKSkNCisNCiAvKiBXaWxsIGFsd2F5cyBiZSBhIGZp eGVkIHBhcmFtZXRlciBmb3IgdXMgKi8NCiAjZGVmaW5lIEZEX1NFQ1RPUl9MRU4gNTEyDQog I2RlZmluZSBGRF9TRUNUT1JfU0MgIDIgICAvKiBTZWN0b3Igc2l6ZSBjb2RlICovDQpAQCAt NjEyLDE3ICs2MTUsMTggQEANCiAgICAgZmRjdHJsX3QgKnMgPSBvcGFxdWU7DQogICAgIHVp bnQ4X3QgdG1wOw0KICAgICBpbnQgaTsNCisgICAgdWludDhfdCBkb3IgPSBzLT5kb3IgfCBH RVRfQ1VSX0RSVihzKTsNCiANCiAgICAgLyogQ29udHJvbGxlciBzdGF0ZSAqLw0KICAgICBx ZW11X3B1dF84cyhmLCAmcy0+c3JhKTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPnNyYik7 DQorICAgIHFlbXVfcHV0XzhzKGYsICZkb3IpOw0KICAgICBxZW11X3B1dF84cyhmLCAmcy0+ dGRyKTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPmRzcik7DQogICAgIHFlbXVfcHV0Xzhz KGYsICZzLT5tc3IpOw0KICAgICBxZW11X3B1dF84cyhmLCAmcy0+c3RhdHVzMCk7DQogICAg IHFlbXVfcHV0XzhzKGYsICZzLT5zdGF0dXMxKTsNCiAgICAgcWVtdV9wdXRfOHMoZiwgJnMt PnN0YXR1czIpOw0KLSAgICBxZW11X3B1dF84cyhmLCAmcy0+Y3VyX2Rydik7DQogICAgIC8q IENvbW1hbmQgRklGTyAqLw0KICAgICBxZW11X3B1dF9idWZmZXIoZiwgcy0+ZmlmbywgRkRf U0VDVE9SX0xFTik7DQogICAgIHFlbXVfcHV0X2JlMzJzKGYsICZzLT5kYXRhX3Bvcyk7DQpA QCAtNjY1LDEzICs2NjksMTUgQEANCiAgICAgLyogQ29udHJvbGxlciBzdGF0ZSAqLw0KICAg ICBxZW11X2dldF84cyhmLCAmcy0+c3JhKTsNCiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnNy Yik7DQorICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5kb3IpOw0KKyAgICBTRVRfQ1VSX0RSVihz LCBzLT5kb3IgJiBGRF9ET1JfU0VMTUFTSyk7DQorICAgIHMtPmRvciAmPSB+RkRfRE9SX1NF TE1BU0s7DQogICAgIHFlbXVfZ2V0XzhzKGYsICZzLT50ZHIpOw0KICAgICBxZW11X2dldF84 cyhmLCAmcy0+ZHNyKTsNCiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPm1zcik7DQogICAgIHFl bXVfZ2V0XzhzKGYsICZzLT5zdGF0dXMwKTsNCiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnN0 YXR1czEpOw0KICAgICBxZW11X2dldF84cyhmLCAmcy0+c3RhdHVzMik7DQotICAgIHFlbXVf Z2V0XzhzKGYsICZzLT5jdXJfZHJ2KTsNCiAgICAgLyogQ29tbWFuZCBGSUZPICovDQogICAg IHFlbXVfZ2V0X2J1ZmZlcihmLCBzLT5maWZvLCBGRF9TRUNUT1JfTEVOKTsNCiAgICAgcWVt dV9nZXRfYmUzMnMoZiwgJnMtPmRhdGFfcG9zKTsNCkBAIC0xMDUzLDggKzEwNTksOCBAQA0K ICAgICBjdXJfZHJ2ID0gZ2V0X2N1cl9kcnYoZmRjdHJsKTsNCiAgICAgRkxPUFBZX0RQUklO VEYoInRyYW5zZmVyIHN0YXR1czogJTAyeCAlMDJ4ICUwMnggKCUwMngpXG4iLA0KICAgICAg ICAgICAgICAgICAgICBzdGF0dXMwLCBzdGF0dXMxLCBzdGF0dXMyLA0KLSAgICAgICAgICAg ICAgICAgICBzdGF0dXMwIHwgKGN1cl9kcnYtPmhlYWQgPDwgMikgfCBmZGN0cmwtPmN1cl9k cnYpOw0KLSAgICBmZGN0cmwtPmZpZm9bMF0gPSBzdGF0dXMwIHwgKGN1cl9kcnYtPmhlYWQg PDwgMikgfCBmZGN0cmwtPmN1cl9kcnY7DQorICAgICAgICAgICAgICAgICAgIHN0YXR1czAg fCAoY3VyX2Rydi0+aGVhZCA8PCAyKSB8IEdFVF9DVVJfRFJWKGZkY3RybCkpOw0KKyAgICBm ZGN0cmwtPmZpZm9bMF0gPSBzdGF0dXMwIHwgKGN1cl9kcnYtPmhlYWQgPDwgMikgfCBHRVRf Q1VSX0RSVihmZGN0cmwpOw0KICAgICBmZGN0cmwtPmZpZm9bMV0gPSBzdGF0dXMxOw0KICAg ICBmZGN0cmwtPmZpZm9bMl0gPSBzdGF0dXMyOw0KICAgICBmZGN0cmwtPmZpZm9bM10gPSBj dXJfZHJ2LT50cmFjazsNCkBAIC0xMDc3LDEzICsxMDgzLDEzIEBADQogICAgIHVpbnQ4X3Qg a2gsIGt0LCBrczsNCiAgICAgaW50IGRpZF9zZWVrID0gMDsNCiANCi0gICAgZmRjdHJsLT5j dXJfZHJ2ID0gZmRjdHJsLT5maWZvWzFdICYgRkRfRE9SX1NFTE1BU0s7DQorICAgIFNFVF9D VVJfRFJWKGZkY3RybCwgZmRjdHJsLT5maWZvWzFdICYgRkRfRE9SX1NFTE1BU0spOw0KICAg ICBjdXJfZHJ2ID0gZ2V0X2N1cl9kcnYoZmRjdHJsKTsNCiAgICAga3QgPSBmZGN0cmwtPmZp Zm9bMl07DQogICAgIGtoID0gZmRjdHJsLT5maWZvWzNdOw0KICAgICBrcyA9IGZkY3RybC0+ Zmlmb1s0XTsNCiAgICAgRkxPUFBZX0RQUklOVEYoIlN0YXJ0IHRyYW5zZmVyIGF0ICVkICVk ICUwMnggJTAyeCAoJWQpXG4iLA0KLSAgICAgICAgICAgICAgICAgICBmZGN0cmwtPmN1cl9k cnYsIGtoLCBrdCwga3MsDQorICAgICAgICAgICAgICAgICAgIEdFVF9DVVJfRFJWKGZkY3Ry bCksIGtoLCBrdCwga3MsDQogICAgICAgICAgICAgICAgICAgIF9mZF9zZWN0b3Ioa2gsIGt0 LCBrcywgY3VyX2Rydi0+bGFzdF9zZWN0KSk7DQogICAgIHN3aXRjaCAoZmRfc2VlayhjdXJf ZHJ2LCBraCwga3QsIGtzLCBmZGN0cmwtPmNvbmZpZyAmIEZEX0NPTkZJR19FSVMpKSB7DQog ICAgIGNhc2UgMjoNCkBAIC0xMjE4LDcgKzEyMjQsNyBAQA0KICAgICAgICAgICAgIGxlbiA9 IEZEX1NFQ1RPUl9MRU4gLSByZWxfcG9zOw0KICAgICAgICAgRkxPUFBZX0RQUklOVEYoImNv cHkgJWQgYnl0ZXMgKCVkICVkICVkKSAlZCBwb3MgJWQgJTAyeCAiDQogICAgICAgICAgICAg ICAgICAgICAgICAiKCVkLTB4JTA4eCAweCUwOHgpXG4iLCBsZW4sIGRtYV9sZW4sIGZkY3Ry bC0+ZGF0YV9wb3MsDQotICAgICAgICAgICAgICAgICAgICAgICBmZGN0cmwtPmRhdGFfbGVu LCBmZGN0cmwtPmN1cl9kcnYsIGN1cl9kcnYtPmhlYWQsDQorICAgICAgICAgICAgICAgICAg ICAgICBmZGN0cmwtPmRhdGFfbGVuLCBHRVRfQ1VSX0RSVihmZGN0cmwpLCBjdXJfZHJ2LT5o ZWFkLA0KICAgICAgICAgICAgICAgICAgICAgICAgY3VyX2Rydi0+dHJhY2ssIGN1cl9kcnYt PnNlY3QsIGZkX3NlY3RvcihjdXJfZHJ2KSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGZk X3NlY3RvcihjdXJfZHJ2KSAqIEZEX1NFQ1RPUl9MRU4pOw0KICAgICAgICAgaWYgKGZkY3Ry bC0+ZGF0YV9kaXIgIT0gRkRfRElSX1dSSVRFIHx8DQpAQCAtMTM0NywxMyArMTM1MywxMyBA QA0KICAgICBmZHJpdmVfdCAqY3VyX2RydjsNCiAgICAgdWludDhfdCBraCwga3QsIGtzOw0K IA0KLSAgICBmZGN0cmwtPmN1cl9kcnYgPSBmZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VM TUFTSzsNCisgICAgU0VUX0NVUl9EUlYoZmRjdHJsLCBmZGN0cmwtPmZpZm9bMV0gJiBGRF9E T1JfU0VMTUFTSyk7DQogICAgIGN1cl9kcnYgPSBnZXRfY3VyX2RydihmZGN0cmwpOw0KICAg ICBrdCA9IGZkY3RybC0+Zmlmb1s2XTsNCiAgICAga2ggPSBmZGN0cmwtPmZpZm9bN107DQog ICAgIGtzID0gZmRjdHJsLT5maWZvWzhdOw0KICAgICBGTE9QUFlfRFBSSU5URigiZm9ybWF0 IHNlY3RvciBhdCAlZCAlZCAlMDJ4ICUwMnggKCVkKVxuIiwNCi0gICAgICAgICAgICAgICAg ICAgZmRjdHJsLT5jdXJfZHJ2LCBraCwga3QsIGtzLA0KKyAgICAgICAgICAgICAgICAgICBH RVRfQ1VSX0RSVihmZGN0cmwpLCBraCwga3QsIGtzLA0KICAgICAgICAgICAgICAgICAgICBf ZmRfc2VjdG9yKGtoLCBrdCwga3MsIGN1cl9kcnYtPmxhc3Rfc2VjdCkpOw0KICAgICBzd2l0 Y2ggKGZkX3NlZWsoY3VyX2Rydiwga2gsIGt0LCBrcywgZmRjdHJsLT5jb25maWcgJiBGRF9D T05GSUdfRUlTKSkgew0KICAgICBjYXNlIDI6DQpAQCAtMTUxNiw3ICsxNTIyLDcgQEANCiB7 DQogICAgIGZkcml2ZV90ICpjdXJfZHJ2Ow0KIA0KLSAgICBmZGN0cmwtPmN1cl9kcnYgPSBm ZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VMTUFTSzsNCisgICAgU0VUX0NVUl9EUlYoZmRj dHJsLCBmZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VMTUFTSyk7DQogICAgIGN1cl9kcnYg PSBnZXRfY3VyX2RydihmZGN0cmwpOw0KICAgICBmZGN0cmwtPmRhdGFfc3RhdGUgfD0gRkRf U1RBVEVfRk9STUFUOw0KICAgICBpZiAoZmRjdHJsLT5maWZvWzBdICYgMHg4MCkNCkBAIC0x NTU3LDE0ICsxNTYzLDE0IEBADQogew0KICAgICBmZHJpdmVfdCAqY3VyX2RydjsNCiANCi0g ICAgZmRjdHJsLT5jdXJfZHJ2ID0gZmRjdHJsLT5maWZvWzFdICYgRkRfRE9SX1NFTE1BU0s7 DQorICAgIFNFVF9DVVJfRFJWKGZkY3RybCwgZmRjdHJsLT5maWZvWzFdICYgRkRfRE9SX1NF TE1BU0spOw0KICAgICBjdXJfZHJ2ID0gZ2V0X2N1cl9kcnYoZmRjdHJsKTsNCiAgICAgY3Vy X2Rydi0+aGVhZCA9IChmZGN0cmwtPmZpZm9bMV0gPj4gMikgJiAxOw0KICAgICAvKiAxIEJ5 dGUgc3RhdHVzIGJhY2sgKi8NCiAgICAgZmRjdHJsLT5maWZvWzBdID0gKGN1cl9kcnYtPnJv IDw8IDYpIHwNCiAgICAgICAgIChjdXJfZHJ2LT50cmFjayA9PSAwID8gMHgxMCA6IDB4MDAp IHwNCiAgICAgICAgIChjdXJfZHJ2LT5oZWFkIDw8IDIpIHwNCi0gICAgICAgIGZkY3RybC0+ Y3VyX2RydiB8DQorICAgICAgICBHRVRfQ1VSX0RSVihmZGN0cmwpIHwNCiAgICAgICAgIDB4 Mjg7DQogICAgIGZkY3RybF9zZXRfZmlmbyhmZGN0cmwsIDEsIDApOw0KIH0NCkBAIC0xNTcz LDcgKzE1NzksNyBAQA0KIHsNCiAgICAgZmRyaXZlX3QgKmN1cl9kcnY7DQogDQotICAgIGZk Y3RybC0+Y3VyX2RydiA9IGZkY3RybC0+Zmlmb1sxXSAmIEZEX0RPUl9TRUxNQVNLOw0KKyAg ICBTRVRfQ1VSX0RSVihmZGN0cmwsIGZkY3RybC0+Zmlmb1sxXSAmIEZEX0RPUl9TRUxNQVNL KTsNCiAgICAgY3VyX2RydiA9IGdldF9jdXJfZHJ2KGZkY3RybCk7DQogICAgIGZkX3JlY2Fs aWJyYXRlKGN1cl9kcnYpOw0KICAgICBmZGN0cmxfcmVzZXRfZmlmbyhmZGN0cmwpOw0KQEAg LTE1ODcsMTMgKzE1OTMsMTMgQEANCiANCiAjaWYgMA0KICAgICBmZGN0cmwtPmZpZm9bMF0g PQ0KLSAgICAgICAgZmRjdHJsLT5zdGF0dXMwIHwgKGN1cl9kcnYtPmhlYWQgPDwgMikgfCBm ZGN0cmwtPmN1cl9kcnY7DQorICAgICAgICBmZGN0cmwtPnN0YXR1czAgfCAoY3VyX2Rydi0+ aGVhZCA8PCAyKSB8IEdFVF9DVVJfRFJWKGZkY3RybCk7DQogI2Vsc2UNCiAgICAgLyogWFhY OiBzdGF0dXMwIGhhbmRsaW5nIGlzIGJyb2tlbiBmb3IgcmVhZC93cml0ZQ0KICAgICAgICBj b21tYW5kcywgc28gd2UgZG8gdGhpcyBoYWNrLiBJdCBzaG91bGQgYmUgc3VwcHJlc3NlZA0K ICAgICAgICBBU0FQICovDQogICAgIGZkY3RybC0+Zmlmb1swXSA9DQotICAgICAgICBGRF9T UjBfU0VFSyB8IChjdXJfZHJ2LT5oZWFkIDw8IDIpIHwgZmRjdHJsLT5jdXJfZHJ2Ow0KKyAg ICAgICAgRkRfU1IwX1NFRUsgfCAoY3VyX2Rydi0+aGVhZCA8PCAyKSB8IEdFVF9DVVJfRFJW KGZkY3RybCk7DQogI2VuZGlmDQogICAgIGZkY3RybC0+Zmlmb1sxXSA9IGN1cl9kcnYtPnRy YWNrOw0KICAgICBmZGN0cmxfc2V0X2ZpZm8oZmRjdHJsLCAyLCAwKTsNCkBAIC0xNjA1LDcg KzE2MTEsNyBAQA0KIHsNCiAgICAgZmRyaXZlX3QgKmN1cl9kcnY7DQogDQotICAgIGZkY3Ry bC0+Y3VyX2RydiA9IGZkY3RybC0+Zmlmb1sxXSAmIEZEX0RPUl9TRUxNQVNLOw0KKyAgICBT RVRfQ1VSX0RSVihmZGN0cmwsIGZkY3RybC0+Zmlmb1sxXSAmIEZEX0RPUl9TRUxNQVNLKTsN CiAgICAgY3VyX2RydiA9IGdldF9jdXJfZHJ2KGZkY3RybCk7DQogICAgIGZkY3RybF9yZXNl dF9maWZvKGZkY3RybCk7DQogICAgIGlmIChmZGN0cmwtPmZpZm9bMl0gPiBjdXJfZHJ2LT5t YXhfdHJhY2spIHsNCkBAIC0xNjY1LDcgKzE2NzEsNyBAQA0KICAgICB9IGVsc2UgaWYgKGZk Y3RybC0+ZGF0YV9sZW4gPiA3KSB7DQogICAgICAgICAvKiBFUlJPUiAqLw0KICAgICAgICAg ZmRjdHJsLT5maWZvWzBdID0gMHg4MCB8DQotICAgICAgICAgICAgKGN1cl9kcnYtPmhlYWQg PDwgMikgfCBmZGN0cmwtPmN1cl9kcnY7DQorICAgICAgICAgICAgKGN1cl9kcnYtPmhlYWQg PDwgMikgfCBHRVRfQ1VSX0RSVihmZGN0cmwpOw0KICAgICAgICAgZmRjdHJsX3NldF9maWZv KGZkY3RybCwgMSwgMSk7DQogICAgIH0NCiB9DQpAQCAtMTY3NCw3ICsxNjgwLDcgQEANCiB7 DQogICAgIGZkcml2ZV90ICpjdXJfZHJ2Ow0KIA0KLSAgICBmZGN0cmwtPmN1cl9kcnYgPSBm ZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VMTUFTSzsNCisgICAgU0VUX0NVUl9EUlYoZmRj dHJsLCBmZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VMTUFTSyk7DQogICAgIGN1cl9kcnYg PSBnZXRfY3VyX2RydihmZGN0cmwpOw0KICAgICBpZiAoZmRjdHJsLT5maWZvWzJdICsgY3Vy X2Rydi0+dHJhY2sgPj0gY3VyX2Rydi0+bWF4X3RyYWNrKSB7DQogICAgICAgICBjdXJfZHJ2 LT50cmFjayA9IGN1cl9kcnYtPm1heF90cmFjayAtIDE7DQpAQCAtMTY5MCw3ICsxNjk2LDcg QEANCiB7DQogICAgIGZkcml2ZV90ICpjdXJfZHJ2Ow0KIA0KLSAgICBmZGN0cmwtPmN1cl9k cnYgPSBmZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VMTUFTSzsNCisgICAgU0VUX0NVUl9E UlYoZmRjdHJsLCBmZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VMTUFTSyk7DQogICAgIGN1 cl9kcnYgPSBnZXRfY3VyX2RydihmZGN0cmwpOw0KICAgICBpZiAoZmRjdHJsLT5maWZvWzJd ID4gY3VyX2Rydi0+dHJhY2spIHsNCiAgICAgICAgIGN1cl9kcnYtPnRyYWNrID0gMDsNCg== --------------060308060501050407050601--