Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jun 2018 20:11:53 -0400
From:      Farhan Khan <khanzf@gmail.com>
To:        freebsd-wireless@freebsd.org
Subject:   RTL8188EE monitor mode patch
Message-ID:  <CAFd4kYBbewOa1ZOYer=R%2BJ%2BXHSzNbETJo_AQocyGcpi4JxzqRA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--000000000000b10597056e022282
Content-Type: text/plain; charset="UTF-8"

Hi all,

First ever patch submission, quite nervous. I have attached the diff
to this email. This is for the Realtek rtl8188ee PCI driver. Currently
only works in monitor mode and will receive wireless frames. I am very
interested in moving forward with getting read/write working.

Known bugs:
* Unloading the driver without bringing it down will result in a
kernel panic. This appears to be an issue with the firmware running
C2H code, and then attempting to write back to memory that was freed
by the kernel.
* Bringing the interface down, then back up will cause frames to
arrive in spurts or not at all. This behavior only seemed to start
after git commit 960c0f3d880f9767027c05614f2184ce4b93fa99. One
solution is to revert sys/dev/rtwn/pci/* to the previous state and the
issue appears to stop.

You will notice what appear to be a lot of hard-coded register values.
This is because I am basing this off of the Linux driver, and Realtek
does not provide any documentation on how their driver works.

My git repository is here: https://github.com/khanzf/freebsd

Please let me know if there are any bugs or problems that need to be remediated.
Thank you,
--
Farhan Khan
PGP Fingerprint: B28D 2726 E2BC A97E 3854 5ABE 9A9F 00BC D525 16EE

--000000000000b10597056e022282
Content-Type: text/x-patch; charset="US-ASCII"; name="patch_rtl8188ee.diff"
Content-Disposition: attachment; filename="patch_rtl8188ee.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ji3s12na0

ZGlmZiAtLWdpdCBhL3N5cy9jb250cmliL2Rldi9ydHduL3J0d24tcnRsODE4OGVlZncuZncudXUg
Yi9zeXMvY29udHJpYi9kZXYvcnR3bi9ydHduLXJ0bDgxODhlZWZ3LmZ3LnV1Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42OGRmNDNjYTk5ZAotLS0gL2Rldi9udWxsCisr
KyBiL3N5cy9jb250cmliL2Rldi9ydHduL3J0d24tcnRsODE4OGVlZncuZncudXUKQEAgLTAsMCAr
MSwyNTMgQEAKK2JlZ2luIDY0NCBydHduLXJ0bDgxODhlZWZ3LmZ3CitNWDhAMGBgQGBgYGAwKTIl
NkwiTGBgKigkYGBgYGBgYGBgYGBgYGBgYGBgYCIxMzRgYGBgYGBgYGBgYGBgCitNYGBgYGBgYGBQ
NThgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCitNYGBg
YGBgYGBgYGBgSDxUYGBgYGBgYCNBX2BgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg
CitNYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg
YGBgYGBgCitNYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg
YGBgYGBgYGBgYGBgCitNYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg
YGBgYGBgYGBgYGBgYGBgYGBgCitNYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg
YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCitNYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg
YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCitNYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg
YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCitNYGBgYGBgYGBgYGBgYGBgYGBg
YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCitNYGBgYGBgYGBgYGBg
YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCitNYGBgYGBg
YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgCitN
YGBgYGAsKk9AL1hSJEQoJEE9YCs9PWAoSk4jIkMuNiopJj9VQk42LC0nR1VDLSosWyIyKV4uOlxg
UClUCitNX1wuNUA7MWBgJCMuPjAxWEAhO0YiJ2ArUEpfRiwuJCMxIUNWVEpcKFY+V0pCXWBCWTBT
XyhSMiFeYFwoCitNIitcJCEnXGA+KCdGLC4zUmAuNCxQWV0wKGA0LD0oQEUjL0NGXzo6ISIuOk4j
K1gjYEczX1M/Q0g7NiNACitNIi47YFgoI1ZZMFMzR1RgR1kwUERCP0NGS0BSXmBQKVRfX1Q4WUxX
WFk4JU04YDswWC84OEAvN0UjIjIoCitNUi84NSMoIzNZMFBDKSgnWD9QMyJLXjhQWGAsMFhAUV9g
IyNBIVMjQyEnXCg1LzE0Pyw7MktVMmAwQDxCCitNPihCRkA3MCM4YDtfIic7X1dfTV8hLjFYQC84
KF1AQz9eR0IhPUMiMDE8NVRgOS9gWC4yM1AuISNCMCVVCitNQkYhVUMnRzJDLSpPKEAvT1RZMCMw
YC1fX1IpVEAyXE9eLjhAWT8zIkteOSQsLzsyS1pYLFtMLj80IiQuCitNPShATl4uO1kiLjg4T0As
Ij0vX11bNkVAIjBHRyYxR1ciMEZgXFE4NkAtS05UWV1gIWA2ISE4J05UWV1gCitNKEcyKCtPQChZ
T0dOTTBQIko4JDghQDtGXz5VSThgRDkmPjwpIj88OUAvLD5ALUdPKShDWFlAM1hbUlwkCitNRCQ3
JURfOChbUl4zXUdcYChOXzNFYC1gYFdfXyhOXEMpKCdYWUMjRV0sKk9ZRTIsXU0qT1kwUlUhUElU
CitNQiJfWFlPNiFgRCktNCJZVEIyX1hZS1wjYEczX18xQ0ZeNzIoK19DW1lPU0k7JmAoSmA3R11B
VDlALzJICitNYFo4JSdeNCxNMD9DP1BgQj0oRE9eLjtdJig4ISNXMigrX0JGYDBCJiEuNCxNMDwi
SygnTTsmYCgjMEZICitNIT47V0AvM0UjKzQnV0hGIT9QYEJbXS40YFRgIz9fXEJbUixEQD9DIkte
OFBZMDRQWGArMlktK0JRTSpPCitNP1BgUFhAJC9gRCksQ18jRF9fW0UjIixEQC9DIkozI1cjN1wo
WUZgKys/OUAsJWBOQGA8UFwwO01dRmBFCitNP0AoKCwvYDBQSl9GJC48QyNDI0IjLSpPP1AyYCRM
Kk9ZQSNHJFUzTDNPOzJLUCkiMzdcKCIuXSRAXzMiCitNS1U7JlRKXTRAJF9fKEw3UF4qL0AqLyMl
XC9DRUBBNiI8YCg1QF5gWFwiK082X19ONk9bTTY/V0w2L1BCCitNW1RPX1tES15bNEddWyRDXChO
I1xIXiNdSF4jXkheI18oTiNYSF4jWUheI1pIXiNbKEowRUBPNiJZP2BVCitNQF82IyhOI1tIXiNa
SF4jWShOT1BIXktQSF5HUChNIiNUKCtYWSktUCRHMCFEV2AtSFouM14nMCFEXzYiCitNQigvRDxX
MCJEVkFAW1ouQ0hYIz9gRDVTYEQrPVkpLkNeLjIzSFRgI11IYCFcQEM/XShgSVkpLkNeJTAnCitN
KWBTKFBTLyQ1YF0kKCxCIzBgM1Q1SGAhMU87P1koYCtgMCgkIiFgQDAoIjAxO0NEP0AmMzgrUkNf
VTBfCitNLC40KTUhX15ZKS5DOGAkLlNVM2ApPiFASiQiWFkpLkNeTjIzSF9DRERaLyhROCsoUkw2
I1JPIkNSLDYiCitNUixLJUBcSz9aPVtHQCtYYDA4JjdgJCYhRmAhIUA6MGA0MzE3MkU8VjYiR2BY
LCNQUCgvYEBMIzA9PWBgCitNUGAjYGA8YCJQYC9gISxgJVBgO2AhWWAhUSczLVwnMSVIXyMxJycz
LSEpYCFRLyFUMTovUFRgPzAhTWAlCitNVGAzMGBdYCJUYCcwYC0jMFQoKzBAXSNQVC5gUkRgITRY
JTRVXTNGQ1glNFZdM0pDWCU0V10zTkNYJTRYCitNXTNSTS43XTQkQyg+SzNJXzUxKFInSlRbP1U4
MixBWk0vJ103JEMoPjRZJ08oTCNAUC8jYEBcIiJQLSFVCitNVGAjYGAsYCFQYCtgYFxgJFBgN2Ah
TGAnRGAnJD0lO1A9JDpDXCEpQyhONSEsLjAkP1AqMSleNSMsLmAiCitNVD8zRTBTI0FgUSktTl41
IywuKCMkRFgqWTQsUFhQLDI4V19FMFMjRGBPJlBZNCxQWTArUVdONSMsLjgiCitNXDhPRTEjI0Fg
TSdKPSU4JERgJyRcJzEmSF8jMCFdYCZUYDcwIS1gI1RgKzBgPWBgVC0jMEBNIiNULyMwCitNWCMq
MEAuP0A4YCwyM0gwQkQoJCpYJmAvWS8iMCE1L0AxYCtQRGA3XFhgM1BZL14wQC4/QDgnRjBAKi9A
CitNOWAlUDw5ImBZTiMkNWBdQCkiM144YCwkPCFeMEAuW0AlLyNAX0ZgJkQoI1BYJmAvW0dgJkQo
I01YKi9QCitNP1AmYGBHXCFbVmBfRCgjS1gkMDBcKSJgXC4hQGBbMCEiPjNVJzkiYFwuImAjPjNV
JzkiYFwuIVVcYC5ECitNKS9bX0QoI09YIlwyM08uMGA1PVQhPyIwQC5LQCguKCMkREtgKEkiYEhe
IlRgMS4wQC4/QDhgVjBALk9ACitNNS9bUDVgPVBgTyZGKEkiYFo+I18/MCQiMkwyMEAqL0A5YCVQ
KTkiYFleIUAnWWAhNV4zUERgJFw9YCtQCitNRCgjRFglM1tcKSJgWl4hNF8/ITQhV2AiXDo4QkQo
IkNYKzAhJUkiYFleIUAkKSJgWU4hNCNWMCI4YCwiCitNOkRIMjNDVEJQLiNgXCwiI1AoK2BUJzcw
YCxgYFBgJ2BgTGAjUGAzYCE8YCZQYD4wYDwxVF8vIVQxWi9QCitNJEYtL1k0RFBYMCgxRS41KSwu
KCMkRi5BWTREUFhQLDI4XVdFMkMjQGBRKUQmPjUqLC4wIyRGMlhZNFBQCitNWDA1X2BRKSQpXjUs
LC4wIiQ5W0UzIyNFYFEpRFNONSwsLjgjJEY1RD0vUCREYCckXCcxJ0hfIzAhXWAmCitNVGA3MCEt
YCNUYCswYD1gYFQtIzBATSIjVC8jMFgjKjBALj9AOGAsMjpPTEJMMkowQC5XQCUpYCU8XyFdCitN
YEdcIjQ2LjBAMCdALC5gTUQoIkNYKzAhKUkiIUkuYCRcLiJUIkBOMEAwL0AhLyNERCgmRFwpIiFg
XiNfCitNRCgkIlgrNCchPjJDXCEnRChOM19DVS4wISFXQDghQjAhMitAXTU5VF9fI1FcO1whYEMl
PERgNEJZNTtQCitNQGAoUTcpYCQnVzBAXCdcIShHMD8rPzYiWSMzXF04L0A1I19QW1ZgPT0iJE1d
OCtELS9TVUBeISQkLyFUCitNJ1JXVUBOMFRfLzYjWCQyYFwiKVQoMldVQE4wVF8vNiNYJTNPXCcw
Pys/NiJZIzNcXTgvQDEkI1AoSSJgCitNIS4jXz8wJFFeOFk0Q1U2TTU6UTRLVSxRJDpdNUtFMjAh
KCNANWBfXUtgPVQkMlNVQE4wVF8vNiNYJDAhCitNXCcwMSsvNiJZIzNcXTgvQDUvT1BLYD1UJUJT
VUBOMFRfLzYjWCQzWlwnMDUrLzYiWSMzXF04L0AxIV9QCitNS2A9VCFCU1VATjBUXy82I1gkMC9c
KWAkNF4zUERgMTJcKWAkNDczX1wpYCQ0JzNdXCcwNCsvNiJZIzNcCitNXTgvQDUsIS1fNzA0K182
IlkjM1xdOC9NXCIrMyQqXCFQXCMwRCgmPFs/IjBAOU9PXC4zXV8hKUs2N1BgCitNSzA+MEA5T0BE
YDBFXCkiIUcuIUAjRzAvK182IlkjM1xdOC9AMSgjUEtQNVQiIl9VQE4wVF8vNiNZLyFUCitNIjJf
VUBOMFRfLzYjWCUzUFwnMEErPzYiWSMzXF04L0A1Lz9QS0AyTyE9IzBESlxCPSNUT14uOS1fTzlU
CitNLCJfVUBOMFRgPzYjW09gQkRgJFY9J0NQSFcwIlwnVVhfVSVDPzApX2BVJUNEYDgqWCQwJ1wp
ImBcSi9ACitNRGA1OFwpImBIXiJUYDEyMEAuN0A1L09QRCgjSlgiI0IjN1QhP1AyYCMpImBZPiEk
IS9gQj8wJV8hLSwwCitNS1AnI1AtIjBAOidNXCkiYFpOIjBAOitQRCgjRFgvWyQkUS00YFMjQGBI
JDZbTDAzJFEtNGAzI0BgSCQ2CitNRCgmQlgvWU88YCohJU5dUGBGJi0pL1lQYEYnJikvWUAyMjNc
PGAqIWAyM1w4YCohJU5aVCNAKjFFSSIhCitNSE4hUCEnXCFEO1owQDorQE1gOCJENyIwQDorQE1g
MC5EKCZBWC9dQCExKUlASGAiXDU+MEA6K0A5YEFACitNYEgkNiRGOidAMTowQDorQDxgMV9gOSZe
RCgmQlgrMCZgSSVQRCgmQlgrMC4hWSQ7T1AkIkQ5OjBAOitACitNOWBRQGBIJDZEMU9POWAlQGBI
JDZEPUIhJUkiIUhOIlQjQD4xJltcIWBJJjZEKCZCWCswJmBJJVBEKCZCCitNWCswLCFZJDtPUCQi
RD1CMEA6K0A5YDFQNyEpSFUuXURgNyE0TDBaYDQpIiFITiJUI0A+MSZbXCFgSSY2CitNRCgmQlgr
MCZgSSVQRCgmQlgrMCwhWSQ7T1AkIkQ9QjBAOitAPGAxX2A5Jl5EKCZCWCswJCZBKUlRKGA1CitN
RCgmQlgrMCwjSSJgWT4jXyRRLTQvUyNAYE8nR1QtIjJLUitROk5dRGA2YChEYCZYPWAnUEAjVjBA
LjNACitNX1EsMyRVMD8sLmAoRGAmWD1gK1BAIkNPUSUwLywuYChEYCZYPWAzUEAhRjBALkdAVFkw
JDBgQjBgO0FUCitNIi8iYCIpYCFOLjNQP1AkQkRgJlk9YCtQP1BgQkQoI0VYKWAmISIjQCMuISQw
LyIwQC5JVCEvImAiTiE0CitNP18iMEAuSVQjLyIwITIrRFwiKjBALjdAUFEsQFhgQjBALklUIy8i
YCQ5YCYhLiEkMC8jQDEoI1BEKCNKCitNPWAzUERgNEJZL2BCRCgmQ1tfYDI5QFIwQDovQDhgNjAh
MitEXCkiYFpHMCRcIiowQCovQDlgJVArOSJgCitNWT4hNF8/IjAhMilUO18hX2AxJ0ZPUCQuRCgj
RFgkMmBcKSJgWkcwLlwiKjBgO0VUYD8iMGA7QCRcIiowCitNITIpVF9fI1FcOWAhLVcwIlwvVV9g
VSVDJEY6MFkpImBaT2BCRCgjR1gmYE1EKCJDWCYwITwiNjBALltQCitNISZgPkQoI0tYJDAwXC4z
VSc5ImBbXSdSRGAlNz1gN1BEKCNKWCIjQmBFJ2AoTl1QLUdVWD9QKlFIV1QiCitNP1AuUUhXVyg/
UCgyOVZaMGA1P0RcKWAhLycwIlwnVCE/UFExUSkiYFkuITRdXyE0W18iMCFAS0A1L0NQCitNKEQl
WD8wKV9gSyZDPzAlX2BHMF0rX0NGX05XVDdPW1Y9I2BPXTgrRC1gJ1VAXltQKEkiYFleIUAxOSJg
CitNWT4jXyRRLDM1IVxQWCEqMGAzT0AsLjArTDlGMEAuV0AlKWAlPF8iMEA5R0Q9P2AhJEQySVBZ
IiFGTiI0CitNQCkiIUY+IURAKTJgMGBOMGA5Q0A1L1tQWCQwIVwvJlNgOl4wQC5LQDlgKUAqQSlK
OTkiYFk+YDMkUS00CitNJ1MjQCU5ImBbPiNfSF4hTzxgTDI5VEpRRjkiYFtOYDRcKWAhWU5gJFwi
KjBgNV9EXClgIS8nMChcLjNVCitNJzkiYF5OIyMkVTFfXTFbRF5fVV83J1ghVD9SMGA1XVQhPyIw
IUkpVGBPIjBALjNAMSEjUEQoI0pYJjAsCitNOGBLRF83XCw0PDNEX1EnRihJImBZXiFEYDchPkQo
I0ZYJTAvOCRaMEAuS0A8YC9fRDtaMEAuS0A5YFFACitNYE8lN0RgJTtZLyIwYDNRVCEvI1E6Tl1E
YDdgUV0xVjBAL0tAUFEtND9fND5ZL09dP1VBXmA9J1xEYCU7CitNPWA3UERgOjI9YCdQRCgjRFgk
MChcIiowQC5LQDxgKTFQIitQWS80PUQoI1lYLzQ+WS9PXT9VMV5gOFg5CitNQ1FLRSdFMCdRIy00
WCg0OUBYNDpATyNFJzUwJ1EjLTRYL19FJ0EsMyRVMD8zWi9QWlUwJ1EjLTRYL19FCitNJzEsMyRV
MD8zWDQ6QEg0OUBaLkNcK1QhIyg0OkBIWiNIWi5DPWAvUChINDpASDQ5QFouQ0hXMCFcIiowCitN
IUAzQDUnX1BEYDRCWS8iMEAuSVQjL2BCRGAwOlgvMUBgV1xgKElgJCZeITQhVjAnP1AlQGBHXGAo
SSIhCitNPiEpJSFBKUhESSJgWV4jX0w1WjBALj9AOCFGMEA3QDIxL1YwYGAkMidbVTQjX14wYGAo
MidbV10kRkJDCitNKEkiISEuYFBYIlIwQDA/QCEvI0BfWSIhIT4iVSFRVjAhSStANSFRUCJBJ0RE
KCQoWGAzUEBgOjAhSSlUCitNJy8jREQoJCdcIigyOUkiMEAuSVQiL2BCWSkiIUc/IkNcKWAlXi4h
UCNaL0A8YE5DWCdgJ0heIVBgV1whCitNKE0uMEA5W0BFLkIwQDlXQEVgLWAiSWAhUC4hJCgvIV9g
IilfLEdYYCRDKkpEKCY9WSc3UGAxKSRKOCJfCitNRGAjV1giI0ciPiFfYDIjRiMnXCIoSWBgXV5g
UFlAKV9gUigxLjkiYGA+X1AkNjYwYDYxVGA/YCIrOjwxCitNVFMkIyQ5KDFMPjNVLT80Vl0zP1Uu
KlRVP1VgMixBWk0tR10xJEMoPkszPV80QShSJ0pUWD9VLCIsQVlVCitNLzEjRF0zWVUvUD1VMGAq
MGAzI0UvPyJDWTNbUEheNF9cKi9FMC9gQj00NC49NDghMFQ4MD00PCM9NEFCCitNRGAkWFk0N1BI
XjUmXCovRTFfIkNZNENQKElgISwuM1BIXyJDXCovUERgJFhcKi9QSF8iQ1wvVV80IShSCitNJ04z
XT9VJDIsQVtEXzddMiRDKD5ZL1VfNFAoUidJYCEtJzNfXCovUEhfIkNcKWAhLy8iQ1wqL1BIXyNd
CitNP1UwMixBWV1fV101JEMoPj8/XV81QShSJ0dXXz9VPCIsQVowYCgjQDEoI10/WGAyLEFaMF8w
I0A1K19QCitNLDxgMixHPVE+UyZHP1AkMjBRNjBAMCFUYE8jXyRELDVEKCRgWGAzUD9QLDIwUTYw
QDAjQCEvYDE0UyYsCitNRGAiYFgkMWBfN15gJEMoPj0yI18sOyYxPD4zX2BELj4sOkxRTislIyw8
QjBAMDNANS9bUEhXMCNcKi9QCitNWSovUEhfYEJZLzUtKE4yMEAqL1AoRzdIYFc2SEEiK0REKCI9
XCovUChJYCFFLiEkYD9gQkQoJCFYJTNeCitNXCUxX1wqLVQiTyNESF9gQiw5MDInWjNfNWAnXkQo
JCRYJTNeM08jT1BRLFBYITIwYGAkMidbVjBAMDdQCitNRGBgIiRBXl1EKCQmXCIqMEA3NDIxMDtP
JEQ0LzRDKGA0Q0ghNEQoIjRESCM0RSgkNEVIQDRGKEE0RkhDCitNNEcoRTRHS2BgYCEyQEkiIT0x
KSRfOCRJRCglVSREM11AJEIwQDc0MjEvVUFKWSIhPTEpJF82JTtEKCVVCitNJEQzXUAoIjBANzQy
MS9WIVFZIiE9MSkkXzYnQ0QoJVUkRDNdODMmMEA3NDIxL1VBLjkiIT0xKSRfNiUpCitNRGAnYFgk
MCFcIiowQDdAMjEwOjBgYCQyJ1tXX19BKD9JL1cjJFMjQCRJIiE+ISkkXzlgYGBBKD9POSIhCitN
Py8iYCE5IiE/Ll9QRCglW1tPIjBAN1NAX0kiIT5eI19UWVkwLikiIT4hKSRfMSg/SSUwIV9HMkMr
XzYiCitNWSMyYF04L05cJzJDK182IlkjMmBdOC9APGAxUSwoYCdEKCVbWC9dUStZIiE+XmAkXCgi
WkQoIkNYJ2BFCitNRCgjSlgnYCRfUSksT0kiYFpOIUQjJmAjJERdN0QoI0RYJTNXXCUzT1wlMl9c
JTFfXCIoQihBKD9JKSJgCitNXD9gQiRBXkREKCNfXCkiYF9eIjBgPj9QKEEoP0kpIiEiPyIwYGAk
MidbVjBAMEtQKEEoP0kvXTRgP1owCitNQDAnQDUvWS5cLl8jJFMjQCJJYGBgMSg/TzkiIWBPYEJE
YCQhWCQwJFwpYCFHJzFeXCotVERPIkM9KiNQCitNSFcwRFwpYCFGVzEpXClgIUZHM0BcKWAhRj4z
UERgJjghL2BCVFEiT2A8L2BUISg/SS9eMEAuL1BPUCQyCitNRGBgISRBXl05YCVAJVlgJShHMU9c
KGAvRGBgISRBXl05YCVAITlgJShOM1BULSIyS1IqMGBgKDInW1dfCitNLC5gRiRBXkREKCNYXClg
YGAxKD9POSJgXj8jTzUvW19IXiE0YDRfUERgYCMkQV5dRCgjW1wiKjBAL0FUCitNYD8iQz1gP1BI
XiE0YDQwSFwqLVQhP2BCRGAoKVgvVDInWjNeS1A3TStJImBgTyIwYGAkMidbV19bMl4wCitNQGAv
UERgYCIkQV5dX15UT0QoYCRcKWBgYFEoP08/X00rWSJgIT8iMGBgMDInW1dfS0A3TStZImAhT2BC
CitNWSkiISQvIkNcKWAhRi4hX2AjI0RgR1whW1YwITgjWyNEKCQxWCkyKEQoJDBYKTAzMGBCMGA8
J0AxISNQCitNKEkiISQuMVVcYCQyMSpFXyUnWGAkQypKVFkiISQ+IjQsSSIhJC4iNGAkIllEYCcm
WCMjQ0xCKDInWjNfCitNNSdeMEAuP1BbXDAzJFEtNGA6L1BEYGAhJEFeXV9VM1BRJTAvX0kiYFlO
ITRcJFtQRGBgIyRBXl01YCRFCitNWC9aMEAuM0A1L1UuXC5dNCNcMTRcL14wQC47QDVgXS9cKWBg
ISEoP085ImBaP2AyM1guMGA7RVRgPyIwCitNYDtDUEQoI0dYKWAhTk8iMEAuR0BEYCZbXCkiYFlO
ITQjWWAhT09gQlkpImBZXyJDXCkiYFlOITQjXyE0CitNXC8iMEAuM0A1L1dQNS8/UDUuX1BEKCNN
PWAnUEhfIjBALjNANS9PUEheITReXyNERCgjUFwpImBbVzAnCitNXCkiYFxOM1BIVzAiXC4yMEAu
T1BEKCNEWCUzXlwpImBaNzAsXCkiYFkuITRXXyIwQC5JVCMvIjBALjNACitNNStfUDUnX1BIXiE0
X08hNF8/ITRdXyIwQC8wMigtSGBgYGBgRChgIVgrMCEiKSJgXDcyOVwoYDJEKGAhCitNWCkiYFw7
MCMhNzIwXChgIz0kI1BEKCNYPWAnUEhXMCdcKi9ANWAlJCovIkM9YDdQWSovUEhfIkNcKi9QCitN
KE0sMEtQJyNQLSIwYDxTQDVgXjBANk9QRCglS1gvVVBgTiRRRCgmN1gvXVRgN1hgSmA8KEBgNyMs
XFhTCitNU01DWV9eXT08YCtBKkkiIUVeIVVcYDIwYD1gMjEvJ0BEKCVMXCc0M2A3NDRANzQ1Oyc0
NmA3TCE+SCVZCitNOzEoS1s5IiFFXiFVXGAyMGA9JDIxLydARCglTlwpIiFFXiFVXGAyMGA9KDIx
LydARCglT1wpIiFFXiFVCitNXGAyMGA9LDIxLydARCglUFwpIiFFXiFVXGAyMGA/YDIxLydARCgl
UVwpIiFFXiFVXGAyMGA/JDIxLydACitNRCglUlwpIiFFXiFVXGAyMGA/KDIxLydARCglU1wpIiFF
XiFVXGAyMGA/LDIxLydARCglVFwpIiE6XiNfCitNRCgmN1gvWVRgOkAmIihgIlBTLzhfLzE/RCgl
S1wpIiFFXiNfPWAmSCFQQmBgTCxTVi9SMGA8U1BEKCVNCitNWC9dW2A3SiE+NlkxIUkiIUVeYCRc
LiE0YF8jISYpYCFQLiEkYE8jMFQpKk8oTjNbXk9VX2AxKSQzSSIhCitNOk5fUDgvIzEhWCNMWSki
ISRPIjBAMStAOWAnUCkkSjBgPDNQPSU+Q1wpImBaTiNfRCgjSVgmXUBgUSknCitNSUEpQl5bXCFg
TyYlJEMqPk9QJCMkRVkmJEQpLUAsSzMkKlwhUFwjMEQoI0RYIyNAYE8mOlQtIjJLUiowCitNQC5L
QDxgWDI6NTJfYDBDUUtZYCFZPmAkXCIrMyQqXCFQXCMwJEY8JFw8IzBUKSpPKEEpRl8pYGAiLiE0
CitNW19VXyIhKFInTjNfQ1UjREQoJDNcKi9QRGAkKVgnXGAsLjwiP1AnTzk1IUAvTC4wQDEzQEUo
QjBAMS9ACitNRSEtYCIpYCFQLiEkJC9gQkQoJDNZJzdQYDEpJEo3XDQ/QGAyLEpLM0QoJDRYKTBS
RCgkM1gpMGAwK0YwCitNYDw7QCwuIlIoTjNbXk9VX2AxKSQzSSIhPz5fUDgvYDEvOCNMVFEiT2A8
L2BULjNfRCgiPlgvWjBAKVdACitNXzs0JiEnWCFAYCleYC5ZRGA2YFJEYCZPWCdgM1s3N1AjWjBE
IV9FVEAjN1BeR0whJDk1X2A+XUAlSSJgCitNRz5gJFwuIV9gKzAqYEdcIVtWYCVZKSJgRz8jMFQp
Kk8oTSwwS1AnI1AtIjBAN1gyMTA6MEA5Q0BfUDNQCitNRGBgIVtRKD9fJ15PP0AkMV4uXUAuSSIh
P0EpJF84TDNCQTIpJTlgYCNBKD9PMjAiXTE5W2A3SCE+OmAyCitNKl5WMEA3WDIxL1YwYGBYMidb
VjBgOltQSFczX1wpYCFSXiFEQC8jMFQpKk8oTSwwS1AnI1AtIjBAOE9OCitNXCovT1wuMkNcKi9Q
RCgmK1gvWkNYLzYiQ0gvQDgiVyNEKCYuWCkzSEQoJi1YKTAjMGBOMGA8I0AxKCNQCitNP1AiYCU5
IiFDPjFVXGAkMjEqRV8iR1hgJEMqSkAsNV9gPSMwREpcQkQoJSVbXyJDWz8iQyRCIzpgYGBgCitN
YC4yMEA1L1A/UjFeIiEoTTcpIiEyUShAU0kiITE+I1s8YEIwQDRMMjEtRmAlTk1VXGBCRCkmK1VA
TjBUCitNQV82I1gvWkNYL1wyKzVSMEA0XDIoLFowQDQ7QF9eM1xfP1lYJVEoQE5aQCRKMDZKIUpM
J0QoJS8kRDM5CitNWzUxX18+UTRAL1AyMSxTTDEoI1xEKCUvJEIjLkQoJSskRDM5WyUxX18pIiVO
UShAU0dcRD9AQDIrSiowCitNQDQ3QD0/YChJIjFCXTgrRC0oP1VAXiNeSF4jX1BgO2AhWSIhM1Ep
JFY5IiVOUShAU01gJ1RgODIrSiowCitNQDRMMjEtR0wxKCNcRCg2WyRCIy4/UjFeIiEoTkhJIiEx
PiFQISdcQEBgRjBANDdATWAkNj9SQV4iIShNCitNNydAKCRCIkhbVTAhX14yMEA1L09cKSIhNF4i
MEA0NUAjTiFVXGBCRCkmO1VATjBUQVhgLFgnN1AiKjBECitNOS82IlkjMiddOC9AX0ovQF9RKE03
LlU0I19XRF8pIiExUShAU0kiITFQKSRWPSwwS1AnI1AtYFEzTSMwCitNREpcQkQoJEUkRDQmJEFe
REQoJElcKWBgYDEoP085IiEqLyIwYGAoMidbVjBAM09QRGBgIyRBXl1EKCRcCitNXCkiISkxKSRf
PkREIS9HRC5ITDNdMTIpJTc0NiEnTCE+SCVZLzEoS1s5IiEpMSkkXz5ERCIvR0QuSEwzCitNXTEy
KSU3NDYhJ0whPkglWTAxKEtbOSIhKj5gRF4mIVkpL1FAPTIwKDhgKiFXKSIhKi4iVGAwNDIqPDYh
CitNV1kiISouIlRgQDQyJDtWIVdZIiEqLiJUYFA0MiFOTiFXWSIhKi4iVCQhRjBAM1NAX0kiIS5e
I11bP14wCitNQDJLTlwqL09cIShSSkgnP0QoJEhYKzAxJjkiIS8uI15EKCRbWC9XTV9ZIiEqTltQ
SF5fUCRDKCZAPV4wCitNQDJDQF0mYCJAPV9fKEkiISo+IlQjYEIwQDNJVGA/ImAhPjIwQDNLUEQo
JEhYJjAnOGAqIUtZIiEuXiIwCitNQDNDUEQoJFxYKSIhLj8iMEAzW0BfXjNcXz9ZWCIhKEBOWkAk
SjA2SiFKTCdEKCRdWC9fRF8vV14kRDMsCitNUGAzYCE8YCZQYD4wQDNfQF9eM1xfP1lYJCEoQE5d
YCNUYCswYD1gYCREMyxEKCRMJEIjLkQoJFlYL14wCitNQDNDQF81Ji1EKCRQJEIjLkQoJFpYJ2Ai
QDk+MEA0K0BfXjNcXz9ZWCIhKEBOWkAkSjA2SiFKTCdEKCUhCitNWC9fRF8vV14kRDMsUGAzYCE8
YCZQYD4wQDQvQF9eM1xfP1lYJCEoQE5dYCNUYCswYD1gYCREMyxEKCRUCitNJEIjLkQoJFQkRDM5
JEIiO0QoJFAkRDNFJEQyX1BgM2AhPGAmUGA+MEAyUDIxLUYwQDMwMjEuNDIxK18wCitNYF1gIlRg
JzBgISkkUykiISshKEBTSSIhKyEpJFY5IiExUShAU0kiIS4uI11IXiNfRD4qYCwpIiEuXiNfCitN
SF4jXUQoJFpYKSIhMi8hW2A3SiE+M1ZDJEQ0Jj5IJVkwOSIhMyEpJSFJIiEqLiNbXDkuYGBXXCIo
R1whCitNKE0sMEtQJyNQLSNgIVxgJUQoJSckRDM5RCglLSRCIy5UYDcwIVskJFQtIjJLUiowQDRP
T1wqTCVEKCUxCitNJEIjOmBgYGBgKlwjWS9TXV9HQDQkQiJbSmAySSE6SCZKUD4wQDRUMjEtR001
YF9dWS9QMjEsU0w1YF9cCitNRCglMSRCIy5EKCUrWCc3UCIqMEQ4LzYiWSMyJ104L0BfSi9AX1xg
JlBgPjBANSQyMS1GMEE7TDIoLFswCitNIV1gJmBCWkJEYCgpWCkiISRfIkM9IiNQRCgkM1gvXFBY
YDZDWCIyYFwuXyMkWSNdJC8jREQoJERcKSIhCitNJS5gRGAvNiJZIzNcXTgvQEQoJDZcKSIhKS4h
RGA/YEQ7SWAhUS8hVDc6L1BEKCQ2WC9dRCEmYCpbVjAoCitNOGA3TzlgUVA+TjIwQDE3UEQoJDZY
L14wQDE3QF9MLj80I19AX1kiISUuI10rUjBgXTgrRC0vU1VAXiNcCitNPSE8T104K0QtKCdVQF5T
UFtPX00rX19ELF9bT10kWVAiWSNdJC5gJFwuMjBAMTNQRCgkNVhgM1BAKy1bCitNYDdKIT4xPTFG
WSIhKF5fUFBZMCI0ITowQDIvQDhgVjBAMTdAX1kiISUuYE9cKiYzP1AkQj9QYEIkQlZHCitNWS81
MiRDKj5bViFSOFUoIVk1KEQxSWAhUS8hVDdKL1BEYCIoWC81MF01JTQjViM/WTVgUFhgTEBZYCwy
CitNKjw1MzQ+WmAvTjUwLC4kNiguNC4kQSZdW1dgIzBVJEBEYCQmWS8hMzQ/VmAoXjUwLC4oKygu
OCMkQDtLCitNNFUnW0AhL0U0IyNDI0IjRyIrJU5bV2AjMFUmYDRVJ1dLNSVfQiEoUidIIigoSSIh
QD5fUEheV1BLMC5MCitNYE4yMEA4R1BIXyIwYDwxVFE/IVQ3Si9QWyUwX18pYCEwLldQS0AzTkhf
IjBAOCdAKSglQC0iMzo4IVBECitNLychIUQoJiJYLDBTLFMtNEApIiFBTyJDPSZHUEhXMmBcKGBM
RCgmIlglMCFEKCYmXCotVEk/IkM9YCdQCitNQCFCMEA4K0BRJTAwRCgmJlwqLVQ/XyJDPSEjUEBg
LV9gIiowQDg/QERgJCZcKSIhQU4hQCNJYCEwTyIwCitNQDg3QERgJSNcKGAtRGAlI1kvIjBAODtA
RGAlIlwpIiFCLiNfRGAlIlglX19EKCYmWCZdQFtHMyUhKWAhCitNUS8hVDdKL1BEYCUjWS8hX2Ay
KEJEKCUlW18iQ1s/IkNaXyIwQDREMjEvViskWEg0QjE1VSVAMVtgN0ohCitNPjYoMipeVjBANFAy
MS9WKyRYSDRCMTVVJUAxW2A3SiE+NjgyKl5WMEA0O0BfSSIhMT4jXVs/XjBANF9OCitNXCovT1wp
IiExXiNfTWAwKEQoJTI9YCdQQGBfT0QoJTJNYDQlPWArUEBgLVQhLyMzRCglMFgpM19EKCUvCitN
WCkwYDBgKCFETjIwQDUnUEQoJTJYL14wQDUnQF9MLj8wYCkhXScxQitPNiJZIzIhXTgvQEQoJTNc
LltfCitNRCglMFgiX19EKCUvWCMwYENYK1VAXiIwQDUzUEQoJShYJmBFRCglMVgiMUZdOCtELSgn
VUBeIjBANVdQCitNWC9fVF9JIiE1LiE+X0kiITReI11bVVUuXCkiITNaL0BfWi9AK19eMEA1L0Bf
MShSJ0kiITQ+YCRcKCIlCitNVFkiITQuIjRfWSIhM14iNCFVIVhZKSIhND8iMEA1K0BfWSIhND4j
XlBZXWBgRCdUPSYoTl04K0QtKCdVCitNQF4iMEA1L1BbT14wQDUjQCtfTjBANF9ALWAjWkJYK1VA
XiIwQDUzUEQoJShYJmBFRCglMVgiMUZdOCtECitNLSgnVUBeIjBANVdQWC9fVF9JIiE1LiE+X0ki
ITReI11bVVUuXCkiITReIitASEojXCkiITQ+YCRcKCItCitNWSkiITRfIjBANVgyKC1IYGBgYGBE
KCU1JEIjOmBgYGBgKSIhMi4hQCQ5IiEzXiNeSF4jXyRCVTxEKCU5CitNJEIjLlkpIiE0PyIwQDUr
QF9ZIiE0PiNeUFldYGBEJD89JihOXTgrRC0oJ1VAXiIwQDUvUEQoJShYJiFXCitNRCglMVgvTEQ5
TzYiWSMyIV04L0BEKCU9XCkiITYxKSRWPk1VXGBCRF4/QDIoKkIwQDVXQF9PMT9fWSIhCitNNF4j
XVtFVS9cKSIhN0EpJFk8YGBQYCdgYExgI0QoJT1YL11eYCkiITQ+IVVcYEJEXz5eSCEwQmAhPCxT
CitNU0MvLlYvR19bQy41WC9XXFRgLzBgTWAhVGBgMjEsUjBANVgyKCxaMEA1NDIxLjdgYCxgIUQo
JTNYL19ECitNXy9XXkQoJTFYJzdQIiozWV4hKEBOXWAhVGBgMjEsUjBANTQyKCxaMEA1J0AhL2BB
M0kiITIuIUAuSSIhCitNN0EpJFYxKEBGWSIhNjEpJFkxKSRPXGAkUGA3YCFMYCdEKCU1JEQzOUQo
JT4kRDNFJEQyX1RgLzBgTWAhCitNVGBgMjEsUjBANTQyKCxaMEA1NDIxLUYwQTtMMigsWjBANF9A
X0ovQF9RKE5ISSIhMV4iMGA6I1BEKCUyCitNWClgIUg/IjBANENARGAmQlwpIiEyMSkkXzEoP0kp
YCFJLyIwYGAkMidbVjBgOjdQRGBgIiRBXl1EYCZGCitNXClgYGBRKD9POWAhSV8iMEA1NDIxLUYw
YDpDT1wpIiE1MSkkVjdAKCRCIkhEYCZJW18iMEA1NDIxLUVYCitNJCEoQEopYCFKTl9QRCglNSRE
Mzk+IUAyKCpCMGA6T09cIiovIzIqLyNCKV9gSSIhYC4jXltcLj40IUNPCitNKT5gREA/Q0YsLjAr
RGAmWD1gQ1BIXyFfYCIoL0AtWV9gMiowYDMzQDUzV1UwOi9ANTNbVTBKL0A1M19VCitNMFovQDU0
I1UxKWAhLS41IVwqL0UwTyJDWTQvUEheNSRcIiowYDNTQDU0N1UyOi9ANTQ7VTJKL0A1ND9VCitN
MlovQDU0Q1UzKWAhLy41KVwqL0UyTyJDWTRPUEheNSxcJS4xV1IqMEAqL0A5YCVQJjkiYFleIUAk
WWAhCitNNV4zUERgJFw9YCgyM05OMGA1PVQhP2BCRCgjR1gmYFVEYDoyWCMjQCkuM1UnOSJgXk4j
IyRVMV9dMVtECitNXl9VXzYnWCEkRFtcRGAlOz1gN1BEYDoyPWAnUChJImBZLiE0XV9gMjFaOEJE
KCNHWCZgVURgOjJYIyNBCitNKS4zVSc5ImBeTiMjJFUxX10xW0ReX1VfNydYISREW1xEYCU/PWA3
UERgOjI9YCtQKEkiYFkuITRbX2AyCitNMVo4QkQ3JjBAMFNPXCkiYFkjI0AhTiEkYD8iYCEuITRf
TyIwQDBTQCwuODFEYCRPWCMjRyEuM1BAYDowCitNYDJdVEAvIjBALjNALC5gOkQoI1JZLyJDPWA/
UEQoI1JIXiIwITVDUERgM0xYJTM9XCIqMCEuU0AxIitQCitNKE4yMEAwV1BIXyJDXClgYEBeIjBA
MFdQRGAiI1gvWjBAMFdAX1s0JmAyKyNEKCQvWCkxREQoJC5YKTBgCitNMGBWMGA8I0AxJCNQRCgk
LVgvXEJEKCQuWSc3UGAxKSRKOCMiRCgkKVgmYC9ZLyIwITUvQDFgJ1BEYDddCitNWGAzUChJImBZ
LiNfUSEsMzVgLFBYIj9PNStfUERgM0BYKSJgWTMjQCFOISRgPyJgJC4hNF9PIjBgO0VUCitNYD8i
MGA7QVQhL2AyMVo7RF9ZIiEhLmBQWCRCMEAwQ0BfNiEhPWAlXmAqQCciKGAlUFMvLixcWzheP14w
CitNIS4jQF5eXTs4YDtERCgkKFwiKjBAMDtAVFlVMCQpYCFRVzAwXCslNEQoJCRYJTNeXCIoMjIu
MjBAMENACitNIS9gQkQoYCFYJjAiOGA+MCFJI0AxYCdQKEkiYFkuI19RISwzJFUwISwuYExbVTFf
XClgJFguIjBALjRQCitNWDA7QDFgK1BAYF9ANS9XUERgJlk9YCdQRGAmWCEvIjBALj9AOGAsMjFa
OV9gOiQkVFEiT2A8L2BUKWAkCitNJz4hQCZJYCUoTiE0RCZgJ0RgJ2BYJDAoXClgIVFOYFBYPjFf
YChgIj9QJzBUKSpPKEwvTkVgJWAiQFdNCitNJFkjXSQvI0QrX1xCUF5aNGA0YEREL1QxWCZVUCZJ
YCElXiJVITBWMGA+MVQ9XyIwXzEnRFwoYCZbMDIwCitNXzEnUFkiX18oTSwwS1AnI1AtIjBgMCdA
MWArUERgJGA9L19QRGA6Vz1gR1BEYDpUPSg7UD9XUV4iIShNCitNNy5RND9fUjBAOFwyKCxaMEA4
XDIxLUYwQTtMMigsWV8/J1goJEJaQkQoNlskQiM6UyxgYFAnXiw/QEAyCitNK0oqMEE7TDIoLUhg
UGBgND9XIV4jQShOSEkiJUVBKEBWQGAjL0YjRF8/XDIsNFcwVCkqTyhNJCxEKCNKCitNPWBTUChB
KS9cOSIlTlEoQFZMU1BgLCFfQydYKCRCWkJEKDZbJEIjOmBgYGAlJ11QP0BYMitKKjBBOTgyCitN
KC1IYGBgYGBZL1dfJEMlLT9XUV4iIShNNy5RJEAvUjBAOSwyKCxaMEA5LDIxLUYwQTtMMigsWV8/
J1goCitNJEJaQkRgJGA9I19QSF4hNF8/IjAhNS9AMSIjUChJYGBELmBAWC9EQkQoI1FYL1VfRFEo
UidJImBaLiFACitNJElgISteYFBZUDVUJC8iYCFJYCErVzIwXClgYCIuISQkL1VfIiEoUidHXCEk
RT8xRGAiMFgkMCFfN14wCitNJEMoPj9RMV5gYChSSk5cNERgNVNcKWAhL1cwMFwvVV9gVzElK19D
RjM/W1Y9I0BPXTgrRC1gJ1VAXltQCitNKEcxJStfQ0ZfTldUN09bVj0jQE9dOCtELWAnVUBeW1Ao
TSwwS1AnI1AtIjBAOiNNXCkiIUdeX1BUWTAnCitNNCcjQF9XMCFKYDwoQGArIyxdQ1xdL14wYCQ/
QDdfVV8xUShSJ0kiIUdeI189YCZIIVBCYGBMLFNWL1NfCitNRGAhJlgkX10/VDgyLEFaMEA6I0A4
IUIwQDlfQF9XMCFKYDwoQGArIyxdQ1xfWWBgMT4hL0AhPjBAOV9ACitNX1cwIUpgPChAYCsjLF1D
XF0vXjBgJDdAN19VXzE4IV5EKCY/WCIzWFwuYEQhL11UYDpAJyIoYCJQUy84CitNXy8zX0RgISNY
JV9dP1QsMixBWjBAOV9AX1cwIUpgPChAYCsjLF1DXF9ZYGAwXiEvXzddIyRDKD5EKCZACitNWCZg
PUQoJj9YIjAkX1cwIUpgPChAYCsjLF1DXF9ZYGAwTiEvXzddIkAhUjBAOV9AKWAzXz1gJkghUEJg
CitNYEwsU1YvU1RfWWBgME4hP183XSIkQyg+VC0iMktSKjBALjNANS9PUFkpImBcLyIwQC5PUChO
XERfRmAsCitNISdgSEQoI009YCdQSF9gQls3YCpEKCNbWCkiYFs/ImAhOSJgWz5XUEQoI01YKi9Q
RCgjRVgkMChcIigyCitNM1ZLTzlgJUAiKWAhTicwIVwoIUdEKCNLWC9dNGBWYChEYCZYPWArUEAl
OjBALkdAX04zI0dFYChEYCZYCitNPWAzUEAkM08sLigoRGAmWD1gQ1BAI0IwQC5PQCwuMChEYCZY
PSEjUEAiRjBALjdAJFEtNC9SI0AiKWAhCitNTicwQFwoYDZEKCNfWCZgKERgJlg9KCNQQGBCMGA7
Q0RcJ1whKElgIU43MCRcJ1xgKElgIkFeIUAiKWAhCitNTicwIVwoYDdEYComWCIjQSIpYCFOJzAk
XChgKERgJlhZLyFfYDIqMGA7RVQiLyFfYCIrTzgjWjBAKi9ACitNOWAlUC1JImBZPiE0X08iMCEy
KVQjXyIwIUAzQDUrX1BZL1wyMi46X2AwWjBALjNAMSQjUEQoI0o9YDtQCitNKElgIU43MCFcKWAh
TicwKFwiKjAhMilUO18iMCEyP0A1K19QRCgjSj1gK1AoTjIwQDBPUERgOklYKSIhCitNIl8jQDUs
IVAjOSJgWl4hNF9PITRfP2AiMVo6MEAwT0AsLjhCRCgjR1gmMCE8IiYwQC5PQDFgJ1BEKCNGCitN
WCUwLzlgKUAhJSUqQGBQMjNDVmAhWSJgWl4hNF9PIjBAME9ARCgjSywuPDRYJDAiJERbS0RgJTc9
YDdQCitNRCgjRFgkMCRcIitANS9XUChJYCQnPiFQJSkiYGBeI19ZL1QyMj9GLjNIXS9EYDA/PSIj
UChJImBIXiFECitNYDZgIjA/SjBALj9APGApIV5JImBZTiMkNWBdRGA3YEJEYDpLWCkiYFtPIjAh
SktARCgjTVwqL0BfV2AoCitNRCgjTVgvW19AYCIwQC5bT1wpImBZPiEkIS8jREQoI1BcKSJgXEov
QERgNThcKWAhNV4zUERgJFw9YCtQCitNRCgjS1glM11cJTNPXCkiYFlOI19RJTAvKS9VMGBIYCIs
PUIwQC43QCRRLDM1IVxQWCEiMEAuV0BfWi9ACitNTTA8JiRGPSokRFY/KEkiYFkuI18kUS00L1Mj
QCQ+XTReXyIwQC5PQDUvV1A1YD1QMEhgXUQoI1BYYDNQCitNRCgjS1glM09cKSJgXC4jX01gJCJA
YDNPTWAoJkRgNThYYDNQRCgjWFgvXjBALyNAVFldYCNZImBIXiJUCitNYDBOMEAuN0A1L09QKEEp
J0lCK0RfTl8jJF9XTywuYCRbQjJgX0kjXSQuV1BLUDhCSlA+SiFOVEteXjBaCitNXkwuMEAqI0BG
WSJgR14iOjQhLkNYIjAhX1kiYEdeYFRgL1sjWllfW1pJW1paSSNdJD8iT2BXMGArXzYiCisrWSMz
W104L0BfUihgLEBAYAorYAorZW5kCmRpZmYgLS1naXQgYS9zeXMvZGV2L3J0d24vcGNpL3J0d25f
cGNpX2F0dGFjaC5oIGIvc3lzL2Rldi9ydHduL3BjaS9ydHduX3BjaV9hdHRhY2guaAppbmRleCA2
ZGY1ODEyZTRjZC4uMzg5ZDUyZmZmOTUgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvcnR3bi9wY2kvcnR3
bl9wY2lfYXR0YWNoLmgKKysrIGIvc3lzL2Rldi9ydHduL3BjaS9ydHduX3BjaV9hdHRhY2guaApA
QCAtMTcsOSArMTcsMTEgQEAKICAqLwogCiB2b2lkCXI5MmNlX2F0dGFjaChzdHJ1Y3QgcnR3bl9w
Y2lfc29mdGMgKik7Cit2b2lkCXI4OGVlX2F0dGFjaChzdHJ1Y3QgcnR3bl9wY2lfc29mdGMgKik7
CiAKIGVudW0gewogCVJUV05fQ0hJUF9SVEw4MTkyQ0UsCisJUlRXTl9DSElQX1JUTDgxODhFRSwK
IAlSVFdOX0NISVBfTUFYX1BDSQogfTsKIApAQCAtMzIsMTMgKzM0LDE1IEBAIHN0cnVjdCBydHdu
X3BjaV9pZGVudCB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3bl9wY2lfaWRlbnQgcnR3bl9w
Y2lfaWRlbnRfdGFibGVbXSA9IHsKIAl7IDB4MTBlYywgMHg4MTc2LCAiUmVhbHRlayBSVEw4MTg4
Q0UiLCBSVFdOX0NISVBfUlRMODE5MkNFIH0sCisJeyAweDEwZWMsIDB4ODE3OSwgIlJlYWx0ZWsg
UlRMODE4OEVFIiwgUlRXTl9DSElQX1JUTDgxODhFRSB9LAogCXsgMCwgMCwgTlVMTCwgUlRXTl9D
SElQX01BWF9QQ0kgfQogfTsKIAogdHlwZWRlZiB2b2lkCSgqY2hpcF9wY2lfYXR0YWNoKShzdHJ1
Y3QgcnR3bl9wY2lfc29mdGMgKik7CiAKIHN0YXRpYyBjb25zdCBjaGlwX3BjaV9hdHRhY2ggcnR3
bl9jaGlwX3BjaV9hdHRhY2hbUlRXTl9DSElQX01BWF9QQ0ldID0gewotCVtSVFdOX0NISVBfUlRM
ODE5MkNFXSA9IHI5MmNlX2F0dGFjaAorCVtSVFdOX0NISVBfUlRMODE5MkNFXSA9IHI5MmNlX2F0
dGFjaCwKKwlbUlRXTl9DSElQX1JUTDgxODhFRV0gPSByODhlZV9hdHRhY2gKIH07CiAKIHN0YXRp
YyBfX2lubGluZSB2b2lkCmRpZmYgLS1naXQgYS9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4
OGVlLmggYi9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM1MzRjYjNhODZkCi0tLSAvZGV2L251bGwKKysrIGIv
c3lzL2Rldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZS5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qLQor
ICogQ29weXJpZ2h0IChjKSAyMDE4IEZhcmhhbiBLaGFuIDxraGFuemZAZ21haWwuY29tPgorICoK
KyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMg
c29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVi
eSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBh
bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBU
SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMg
QUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5H
IEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
Uy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SCisgKiBBTlkgU1BF
Q0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBE
QU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9S
IFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5D
RSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GCisgKiBPUiBJTiBDT05O
RUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorICog
CisgKiAkRnJlZUJTRCQKKyAqLworCisjaWZuZGVmIFJUTDgxODhFRV9ICisjZGVmaW5lIFJUTDgx
ODhFRV9ICisKKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTg4ZS9yODhlLmg+CisKKworLyoKKyAq
IEdsb2JhbCBkZWZpbml0aW9ucy4KKyAqLworI2RlZmluZSBSODhFRV9QVUJRX05QQUdFUwkxNzYK
KyNkZWZpbmUgUjg4RUVfSFBRX05QQUdFUwk0MQorI2RlZmluZSBSODhFRV9MUFFfTlBBR0VTCTI4
CisjZGVmaW5lIFI4OEVFX1RYX1BBR0VfQ09VTlQJXAorCShSODhFRV9QVUJRX05QQUdFUyArIFI4
OEVFX0hQUV9OUEFHRVMgKyBSODhFRV9MUFFfTlBBR0VTKQorCisKKy8qCisgKiBGdW5jdGlvbiBk
ZWNsYXJhdGlvbnMuCisgKi8KKy8qIHI4OGVlX2NhbGliLmMgKi8KK3ZvaWQJcjg4ZWVfaXFfY2Fs
aWIoc3RydWN0IHJ0d25fc29mdGMgKik7CisKKy8qIHI4OGVlX2Z3LmMgKi8KKyNpZm5kZWYgUlRX
Tl9XSVRIT1VUX1VDT0RFCit2b2lkCXI4OGVlX2Z3X3Jlc2V0KHN0cnVjdCBydHduX3NvZnRjICos
IGludCk7CisjZW5kaWYKKworLyogcjg4ZWVfaW5pdC5jICovCit2b2lkCXI4OGVlX2luaXRfaW50
cihzdHJ1Y3QgcnR3bl9zb2Z0YyAqKTsKK3ZvaWQJcjg4ZWVfaW5pdF9lZGNhKHN0cnVjdCBydHdu
X3NvZnRjICopOworaW50CXI4OGVlX3Bvd2VyX29uKHN0cnVjdCBydHduX3NvZnRjICopOwordm9p
ZAlyODhlZV9wb3dlcl9vZmYoc3RydWN0IHJ0d25fc29mdGMgKik7Cit2b2lkCXI4OGVlX2luaXRf
YW1wZHUoc3RydWN0IHJ0d25fc29mdGMgKik7Cit2b2lkCXI4OGVlX3Bvc3RfaW5pdChzdHJ1Y3Qg
cnR3bl9zb2Z0YyAqKTsKK3ZvaWQJcjg4ZWVfaW5pdF9yeF9hZ2coc3RydWN0IHJ0d25fc29mdGMg
Kik7Cit2b2lkCXI4OGVlX2luaXRfcmYoc3RydWN0IHJ0d25fc29mdGMgKik7CisKKy8qIHI4OGVl
X2xlZC5jICovCit2b2lkCXI4OGVlX3NldF9sZWQoc3RydWN0IHJ0d25fc29mdGMgKiwgaW50LCBp
bnQpOworCisvKiByODhlZV9yeC5jICovCitpbnQJcjg4ZWVfY2xhc3NpZnlfaW50cihzdHJ1Y3Qg
cnR3bl9zb2Z0YyAqLCB2b2lkICosIGludCk7Cit2b2lkCXI4OGVlX2VuYWJsZV9pbnRyKHN0cnVj
dCBydHduX3BjaV9zb2Z0YyAqKTsKK3ZvaWQJcjg4ZWVfc3RhcnRfeGZlcnMoc3RydWN0IHJ0d25f
c29mdGMgKik7CisKKy8qIHI4OGVlX3R4LmMgKi8KK3ZvaWQJcjg4ZWVfc2V0dXBfdHhfZGVzYyhz
dHJ1Y3QgcnR3bl9wY2lfc29mdGMgKiwgdm9pZCAqLCB1aW50MzJfdCk7Cit2b2lkCXI4OGVlX3R4
X3Bvc3RzZXR1cChzdHJ1Y3QgcnR3bl9wY2lfc29mdGMgKiwgdm9pZCAqLAorCSAgICBidXNfZG1h
X3NlZ21lbnRfdFtdKTsKK3ZvaWQJcjg4ZWVfY29weV90eF9kZXNjKHZvaWQgKiwgY29uc3Qgdm9p
ZCAqKTsKK3ZvaWQJcjg4ZWVfZHVtcF90eF9kZXNjKHN0cnVjdCBydHduX3NvZnRjICosIGNvbnN0
IHZvaWQgKik7CisKKy8qIHI4OGVlX3JmLmMgKi8KK3VpbnQzMl90CXI4OGVlX3JmX3JlYWQoc3Ry
dWN0IHJ0d25fc29mdGMgKiwgaW50LCB1aW50OF90KTsKK3ZvaWQJcjg4ZWVfcmZfd3JpdGUoc3Ry
dWN0IHJ0d25fc29mdGMgKiwgaW50LCB1aW50OF90LCB1aW50MzJfdCk7CisKKyNlbmRpZgkvKiBS
VEw4MTg4RUVfSCAqLwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9ydHduL3J0bDgxODhlL3BjaS9yODhl
ZV9hdHRhY2guYyBiL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWVfYXR0YWNoLmMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmEzZTMxMGU4ZmRiCi0tLSAvZGV2
L251bGwKKysrIGIvc3lzL2Rldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZV9hdHRhY2guYwpAQCAt
MCwwICsxLDI2NCBAQAorLyoJJE9wZW5CU0Q6IGlmX3J0d24uYyx2IDEuNiAyMDE1LzA4LzI4IDAw
OjAzOjUzIGRlcmFhZHQgRXhwICQJKi8KKworLyotCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAgRGFt
aWVuIEJlcmdhbWluaSA8ZGFtaWVuLmJlcmdhbWluaUBmcmVlLmZyPgorICogQ29weXJpZ2h0IChj
KSAyMDE1IFN0ZWZhbiBTcGVybGluZyA8c3RzcEBvcGVuYnNkLm9yZz4KKyAqIENvcHlyaWdodCAo
YykgMjAxNiBBbmRyaXkgVm9za29ib2lueWsgPGF2b3NARnJlZUJTRC5vcmc+CisgKiBDb3B5cmln
aHQgKGMpIDIwMTggRmFyaGFuIEtoYW4gPGtoYW56ZkBnbWFpbC5jb20+CisgKgorICogUGVybWlz
c2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBm
b3IgYW55CisgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQs
IHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl
cm1pc3Npb24gbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FS
RSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFO
VElFUworICogV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJ
RUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBTUEVDSUFMLCBESVJF
Q1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAq
IFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywg
V0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVS
IFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YKKyAqIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCisgKi8KKworI2luY2x1
ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVlQlNEJCIpOworCisjaW5jbHVkZSAib3B0
X3dsYW4uaCIKKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9sb2NrLmg+
CisjaW5jbHVkZSA8c3lzL211dGV4Lmg+CisjaW5jbHVkZSA8c3lzL21idWYuaD4KKyNpbmNsdWRl
IDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHN5cy9z
eXN0bS5oPgorI2luY2x1ZGUgPHN5cy9tYWxsb2MuaD4KKyNpbmNsdWRlIDxzeXMvcXVldWUuaD4K
KyNpbmNsdWRlIDxzeXMvdGFza3F1ZXVlLmg+CisjaW5jbHVkZSA8c3lzL2J1cy5oPgorI2luY2x1
ZGUgPHN5cy9lbmRpYW4uaD4KKyNpbmNsdWRlIDxzeXMvbGlua2VyLmg+CisKKyNpbmNsdWRlIDxt
YWNoaW5lL2J1cy5oPgorI2luY2x1ZGUgPG1hY2hpbmUvcmVzb3VyY2UuaD4KKyNpbmNsdWRlIDxz
eXMvcm1hbi5oPgorCisjaW5jbHVkZSA8bmV0L2lmLmg+CisjaW5jbHVkZSA8bmV0L2V0aGVybmV0
Lmg+CisjaW5jbHVkZSA8bmV0L2lmX21lZGlhLmg+CisKKyNpbmNsdWRlIDxuZXQ4MDIxMS9pZWVl
ODAyMTFfdmFyLmg+CisjaW5jbHVkZSA8bmV0ODAyMTEvaWVlZTgwMjExX3JhZGlvdGFwLmg+CisK
KyNpbmNsdWRlIDxkZXYvcnR3bi9pZl9ydHducmVnLmg+CisjaW5jbHVkZSA8ZGV2L3J0d24vaWZf
cnR3bnZhci5oPgorI2luY2x1ZGUgPGRldi9ydHduL2lmX3J0d25fbm9wLmg+CisKKyNpbmNsdWRl
IDxkZXYvcnR3bi9ydGw4MTg4ZS9yODhlX3ByaXYuaD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9wY2kv
cnR3bl9wY2lfdmFyLmg+CisjaW5jbHVkZSA8ZGV2L3J0d24vcnRsODE5MmMvcjkyYy5oPgorI2lu
Y2x1ZGUgPGRldi9ydHduL3J0bDgxOTJjL3I5MmNfdmFyLmg+CisjaW5jbHVkZSA8ZGV2L3J0d24v
cnRsODE5MmMvcGNpL3I5MmNlLmg+CisKKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTkyYy9yOTJj
X3Zhci5oPgorI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxOTJjL3BjaS9yOTJjZS5oPgorI2luY2x1
ZGUgPGRldi9ydHduL3J0bDgxOTJjL3BjaS9yOTJjZV9wcml2Lmg+CisjaW5jbHVkZSA8ZGV2L3J0
d24vcnRsODE5MmMvcGNpL3I5MmNlX3JlZy5oPgorI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxOTJj
L3BjaS9yOTJjZV90eF9kZXNjLmg+CisjaW5jbHVkZSA8ZGV2L3J0d24vcnRsODE5MmMvcjkyYy5o
PgorCisjaW5jbHVkZSA8ZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlLmg+CisjaW5jbHVkZSA8
ZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3ByaXYuaD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9y
dGw4MTg4ZS9wY2kvcjg4ZWVfcmVnLmg+CisjaW5jbHVkZSA8ZGV2L3J0d24vcnRsODE4OGUvcGNp
L3I4OGVlX3R4X2Rlc2MuaD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTg4ZS91c2Ivcjg4ZXUu
aD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTkyZS9yOTJlLmg+CisKK3N0YXRpYyBzdHJ1Y3Qg
cnR3bl9yOTJjX3R4cHdyIHI4OGVlX3R4cHdyOworCit2b2lkCXI4OGVlX2F0dGFjaChzdHJ1Y3Qg
cnR3bl9wY2lfc29mdGMgKik7CisKK3N0YXRpYyB2b2lkCityODhlZV9wb3N0YXR0YWNoKHN0cnVj
dCBydHduX3NvZnRjICpzYykKK3sKKwlzdHJ1Y3QgcjkyY19zb2Z0YyAqcnMgPSBzYy0+c2NfcHJp
djsKKwlzdHJ1Y3QgaWVlZTgwMjExY29tICppYyA9ICZzYy0+c2NfaWM7CisJc2MtPmZ3bmFtZSA9
ICJydHduLXJ0bDgxODhlZWZ3IjsKKwlzYy0+ZndzaWcgPSAweDg4RTsKKworCXJzLT5yc19zY2Fu
X3N0YXJ0ID0gaWMtPmljX3NjYW5fc3RhcnQ7CisJaWMtPmljX3NjYW5fc3RhcnQgPSByOTJjX3Nj
YW5fc3RhcnQ7CisJcnMtPnJzX3NjYW5fZW5kID0gaWMtPmljX3NjYW5fZW5kOworCWljLT5pY19z
Y2FuX2VuZCA9IHI5MmNfc2Nhbl9lbmQ7Cit9CisKK3N0YXRpYyB2b2lkCityODhlZV9zZXRfbmFt
ZShzdHJ1Y3QgcnR3bl9zb2Z0YyAqc2MpCit7CisJc2MtPm5hbWUgPSAiUlRMODE4OEVFIjsKK30K
Kworc3RhdGljIHZvaWQKK3I4OGVlX2F0dGFjaF9wcml2YXRlKHN0cnVjdCBydHduX3NvZnRjICpz
YykKK3sKKwlzdHJ1Y3QgcjkyY19zb2Z0YyAqcnM7CisKKwlycyA9IG1hbGxvYyhzaXplb2Yoc3Ry
dWN0IHI5MmNfc29mdGMpLCBNX1JUV05fUFJJViwgTV9XQUlUT0sgfCBNX1pFUk8pOworCisJcnMt
PnJzX3R4cHdyCQkJPSAmcjg4ZWVfdHhwd3I7CisKKwlycy0+cnNfc2V0X2J3MjAJCQk9IHI4OGVf
c2V0X2J3MjA7CisJcnMtPnJzX2dldF90eHBvd2VyCQk9IHI4OGVfZ2V0X3R4cG93ZXI7CisJcnMt
PnJzX3NldF9nYWluCQkJPSByODhlX3NldF9nYWluOworCXJzLT5yc190eF9lbmFibGVfYW1wZHUJ
CT0gcjg4ZV90eF9lbmFibGVfYW1wZHU7CisJcnMtPnJzX3R4X3NldHVwX2h3c2VxCQk9IHI4OGVf
dHhfc2V0dXBfaHdzZXE7CisJcnMtPnJzX3R4X3NldHVwX21hY2lkCQk9IHI4OGVfdHhfc2V0dXBf
bWFjaWQ7CisJcnMtPnJzX3NldF9uYW1lCQkJPSByODhlZV9zZXRfbmFtZTsKKworCS8qIFhYWCBU
T0RPOiB0ZXN0IHdpdGggbmV0ODAyMTEgcmF0ZWN0bCEgKi8KKyNpZm5kZWYgUlRXTl9XSVRIT1VU
X1VDT0RFCisJcnMtPnJzX2MyaF90aW1lb3V0CQk9IGh6OworCisJY2FsbG91dF9pbml0X210eCgm
cnMtPnJzX2MyaF9yZXBvcnQsICZzYy0+c2NfbXR4LCAwKTsKKyNlbmRpZgorCisJcnMtPnJmX3Jl
YWRfZGVsYXlbMF0JCT0gMTAwMDsKKwlycy0+cmZfcmVhZF9kZWxheVsxXQkJPSAxMDAwOworCXJz
LT5yZl9yZWFkX2RlbGF5WzJdCQk9IDEwMDA7CisKKwlzYy0+c2NfcHJpdiA9IHJzOworCit9CisK
K3N0YXRpYyB2b2lkCityODhlZV9hZGpfZGV2Y2FwcyhzdHJ1Y3QgcnR3bl9zb2Z0YyAqc2MpCit7
CisJc3RydWN0IGllZWU4MDIxMWNvbSAqaWMgPSAmc2MtPnNjX2ljOworCisJLyoKKwkgKiBYWFgg
ZG8gTk9UIGVuYWJsZSBQTUdUIHVudGlsIFJTVkRfUEFHRSBjb21tYW5kCisJICogd2lsbCBub3Qg
YmUgdGVzdGVkIC8gZml4ZWQgKyBIUlBXTSByZWdpc3RlciBtdXN0IGJlIHNldCB0b28uCisJICov
CisJaWMtPmljX2NhcHMgJj0gfklFRUU4MDIxMV9DX1BNR1Q7Cit9CisKK3ZvaWQKK3I4OGVlX2F0
dGFjaChzdHJ1Y3QgcnR3bl9wY2lfc29mdGMgKnBjKQoreworCXN0cnVjdCBydHduX3NvZnRjICpz
YwkJPSAmcGMtPnBjX3NjOworCisJLyogUENJZSBwYXJ0LiAqLworCXBjLT5wY19zZXR1cF90eF9k
ZXNjCQk9IHI4OGVlX3NldHVwX3R4X2Rlc2M7CisJcGMtPnBjX3R4X3Bvc3RzZXR1cAkJPSByOTJj
ZV90eF9wb3N0c2V0dXA7CisJcGMtPnBjX2NvcHlfdHhfZGVzYwkJPSByODhlZV9jb3B5X3R4X2Rl
c2M7CisJcGMtPnBjX2VuYWJsZV9pbnRyCQk9IHI4OGVlX2VuYWJsZV9pbnRyOworCisJcGMtPnBj
X3FtYXAJCQk9IDB4ZTc3MTsKKwlwYy0+dGNyCQkJCT0gMHg4MjAwOworCisJLyogQ29tbW9uIHBh
cnQuICovCisJLyogUlRMODE5MkMqIGNhbm5vdCB1c2UgcGFpcndpc2Uga2V5cyBmcm9tIGZpcnN0
IDQgc2xvdHMgKi8KKwlzYy0+c2NfZmxhZ3MJCQk9IFJUV05fRkxBR19FWFRfSERSOyAvL1JUV05f
RkxBR19DQU1fRklYRUQ7CisKKwlzYy0+c2Nfc3RhcnRfeGZlcnMJCT0gcjg4ZWVfc3RhcnRfeGZl
cnM7CisJc2MtPnNjX3NldF9jaGFuCQkJPSByOTJjX3NldF9jaGFuOworCXNjLT5zY19maWxsX3R4
X2Rlc2MJCT0gcjkyY19maWxsX3R4X2Rlc2M7CisJc2MtPnNjX2ZpbGxfdHhfZGVzY19yYXcJCT0g
cjkyY19maWxsX3R4X2Rlc2NfcmF3OworCXNjLT5zY19maWxsX3R4X2Rlc2NfbnVsbAk9IHI5MmNf
ZmlsbF90eF9kZXNjX251bGw7IC8qIFhYWCByZWNoZWNrICovCisJc2MtPnNjX2R1bXBfdHhfZGVz
YwkJPSByODhlZV9kdW1wX3R4X2Rlc2M7CisJc2MtPnNjX3R4X3JhZGlvdGFwX2ZsYWdzCT0gcjky
Y190eF9yYWRpb3RhcF9mbGFnczsKKwlzYy0+c2NfcnhfcmFkaW90YXBfZmxhZ3MJPSByOTJjX3J4
X3JhZGlvdGFwX2ZsYWdzOworCXNjLT5zY19nZXRfcnNzaV9jY2sJCT0gcjg4ZV9nZXRfcnNzaV9j
Y2s7CisJc2MtPnNjX2dldF9yc3NpX29mZG0JCT0gcjg4ZV9nZXRfcnNzaV9vZmRtOworCXNjLT5z
Y19jbGFzc2lmeV9pbnRyCQk9IHI4OGVlX2NsYXNzaWZ5X2ludHI7CisJc2MtPnNjX2hhbmRsZV90
eF9yZXBvcnQJCT0gcnR3bl9ub3Bfc29mdGNfdWludDhfaW50OworCXNjLT5zY19oYW5kbGVfYzJo
X3JlcG9ydAk9IHJ0d25fbm9wX3NvZnRjX3VpbnQ4X2ludDsKKwlzYy0+c2NfY2hlY2tfZnJhbWUJ
CT0gcnR3bl9ub3BfaW50X3NvZnRjX21idWY7CisJc2MtPnNjX3JmX3JlYWQJCQk9IHI5MmNfcmZf
cmVhZDsKKwlzYy0+c2NfcmZfd3JpdGUJCQk9IHI4OGVfcmZfd3JpdGU7CisJc2MtPnNjX2NoZWNr
X2NvbmRpdGlvbgkJPSByOTJjX2NoZWNrX2NvbmRpdGlvbjsKKwlzYy0+c2NfZWZ1c2VfcG9zdHJl
YWQJCT0gcjkyY19lZnVzZV9wb3N0cmVhZDsKKwlzYy0+c2NfcGFyc2Vfcm9tCQk9IHI4OGVlX3Bh
cnNlX3JvbTsKKwlzYy0+c2Nfc2V0X2xlZAkJCT0gcjg4ZV9zZXRfbGVkOworCXNjLT5zY19wb3dl
cl9vbgkJCT0gcjg4ZWVfcG93ZXJfb247CisJc2MtPnNjX3Bvd2VyX29mZgkJPSByODhlZV9wb3dl
cl9vZmY7CisjaWZuZGVmIFJUV05fV0lUSE9VVF9VQ09ERQorCXNjLT5zY19md19yZXNldAkJCT0g
cjg4ZV9md19yZXNldDsKKwlzYy0+c2NfZndfZG93bmxvYWRfZW5hYmxlCT0gcjg4ZWVfZndfZG93
bmxvYWRfZW5hYmxlOworI2VuZGlmCisJc2MtPnNjX3NldF9wYWdlX3NpemUJCT0gcjkyY19zZXRf
cGFnZV9zaXplOworCXNjLT5zY19sY19jYWxpYgkJCT0gcjkyY19sY19jYWxpYjsKKwlzYy0+c2Nf
aXFfY2FsaWIJCQk9IHI4OGVfaXFfY2FsaWI7CisJc2MtPnNjX3JlYWRfY2hpcGlkX3ZlbmRvcgk9
IHJ0d25fbm9wX3NvZnRjX3VpbnQzMjsKKwlzYy0+c2NfYWRqX2RldmNhcHMJCT0gcjg4ZWVfYWRq
X2RldmNhcHM7CisJc2MtPnNjX3ZhcF9wcmVhdHRhY2gJCT0gcnR3bl9ub3Bfc29mdGNfdmFwOwor
CXNjLT5zY19wb3N0YXR0YWNoCQk9IHI4OGVlX3Bvc3RhdHRhY2g7CisJc2MtPnNjX2RldGFjaF9w
cml2YXRlCQk9IHI5MmNfZGV0YWNoX3ByaXZhdGU7CisJc2MtPnNjX3NldF9tZWRpYV9zdGF0dXMJ
CT0gcjg4ZV9zZXRfbWVkaWFfc3RhdHVzOworI2lmbmRlZiBSVFdOX1dJVEhPVVRfVUNPREUKKwlz
Yy0+c2Nfc2V0X3JzdmRfcGFnZQkJPSByODhlX3NldF9yc3ZkX3BhZ2U7CisJc2MtPnNjX3NldF9w
d3Jtb2RlCQk9IHI4OGVfc2V0X3B3cm1vZGU7CisJc2MtPnNjX3NldF9yc3NpCQkJPSByOTJjX3Nl
dF9yc3NpOworI2VuZGlmCisJc2MtPnNjX2JlYWNvbl9pbml0CQk9IHI5MmNfYmVhY29uX2luaXQ7
CisJc2MtPnNjX2JlYWNvbl9lbmFibGUJCT0gcjg4ZV9iZWFjb25fZW5hYmxlOworCXNjLT5zY19i
ZWFjb25fc2V0X3JhdGUJCT0gcnR3bl9ub3Bfdm9pZF9pbnQ7CisJc2MtPnNjX2JlYWNvbl9zZWxl
Y3QJCT0gcnR3bl9ub3Bfc29mdGNfaW50OworCXNjLT5zY190ZW1wX21lYXN1cmUJCT0gcjg4ZV90
ZW1wX21lYXN1cmU7CisJc2MtPnNjX3RlbXBfcmVhZAkJPSByODhlX3RlbXBfcmVhZDsKKwlzYy0+
c2NfaW5pdF90eF9hZ2cJCT0gcnR3bl9ub3Bfc29mdGM7CisJc2MtPnNjX2luaXRfcnhfYWdnCQk9
IHJ0d25fbm9wX3NvZnRjOworCXNjLT5zY19pbml0X2FtcGR1CQk9IHI5MmNlX2luaXRfYW1wZHU7
CisJc2MtPnNjX2luaXRfaW50cgkJPSByODhlZV9pbml0X2ludHI7CisJc2MtPnNjX2luaXRfZWRj
YQkJPSByOTJjZV9pbml0X2VkY2E7CisJc2MtPnNjX2luaXRfYmIJCQk9IHI4OGVlX2luaXRfYmI7
CisJc2MtPnNjX2luaXRfcmYJCQk9IHI5MmNfaW5pdF9yZjsKKwlzYy0+c2NfaW5pdF9hbnRzZWwJ
CT0gcnR3bl9ub3Bfc29mdGM7CisJc2MtPnNjX3Bvc3RfaW5pdAkJPSByODhlZV9wb3N0X2luaXQ7
CisJc2MtPnNjX2luaXRfYmNucTFfYm91bmRhcnkJPSBydHduX25vcF9pbnRfc29mdGM7CisKKwlz
Yy0+bWFjX3Byb2cJCQk9ICZydGw4MTg4ZWVfbWFjWzBdOworCXNjLT5tYWNfc2l6ZQkJCT0gbml0
ZW1zKHJ0bDgxODhlZV9tYWMpOworCXNjLT5iYl9wcm9nCQkJPSAmcnRsODE4OGVlX2JiWzBdOwor
CXNjLT5iYl9zaXplCQkJPSBuaXRlbXMocnRsODE4OGVlX2JiKTsKKwlzYy0+YWdjX3Byb2cJCQk9
ICZydGw4MTg4ZWVfYWdjWzBdOworCXNjLT5hZ2Nfc2l6ZQkJCT0gbml0ZW1zKHJ0bDgxODhlZV9h
Z2MpOworCXNjLT5yZl9wcm9nCQkJPSAmcnRsODE4OGVlX3JmWzBdOworCisJc2MtPnBhZ2VfY291
bnQJCQk9IDB4QUY7CisJc2MtPnBrdGJ1Zl9jb3VudAkJPSAweEFCOworCisJc2MtPmFja3RvCQkJ
PSAweDQwOworCXNjLT5ucHVicXBhZ2VzCQkJPSAxMTU7CisJc2MtPm5ocXBhZ2VzCQkJPSBSOTJD
RV9IUFFfTlBBR0VTOworCXNjLT5ubnFwYWdlcwkJCT0gMTsKKwlzYy0+bmxxcGFnZXMJCQk9IDEz
OworCXNjLT5wYWdlX3NpemUJCQk9IFI5MkNfVFhfUEFHRV9TSVpFOworCisJc2MtPnR4ZGVzY19s
ZW4JCQk9IHNpemVvZihzdHJ1Y3Qgcjg4ZWVfdHhfZGVzYyk7CisJc2MtPmVmdXNlX21heGxlbgkJ
PSBSODhFX0VGVVNFX01BWF9MRU47CisJc2MtPmVmdXNlX21hcGxlbgkJPSBSODhFX0VGVVNFX01B
UF9MRU47CisJc2MtPnJ4X2RtYV9zaXplCQkJPSBSODhFX1JYX0RNQV9CVUZGRVJfU0laRTsKKwor
CXNjLT5tYWNpZF9saW1pdAkJCT0gUjg4RV9NQUNJRF9NQVggKyAxOworCXNjLT5jYW1fZW50cnlf
bGltaXQJCT0gUjkyQ19DQU1fRU5UUllfQ09VTlQ7CisJc2MtPmZ3c2l6ZV9saW1pdAkJPSA3Nzg5
NTsKKwlzYy0+dGVtcF9kZWx0YQkJCT0gUjg4RV9DQUxJQl9USFJFU0hPTEQ7CisKKwlzYy0+YmNu
X3N0YXR1c19yZWdbMF0JCT0gUjkyQ19UREVDVFJMOworCS8qCisJICogVE9ETzogc29tZSBhZGRp
dGlvbmFsIHNldHVwIGlzIHJlcXVpcmVkCisJICogdG8gbWFpbnRhaW4gZmV3IGJlYWNvbnMgYXQg
dGhlIHNhbWUgdGltZS4KKwkgKgorCSAqIFhYWCBCQ05RMSBtZWNoYW5pc20gaXMgbm90IG5lZWRl
ZCBoZXJlOyBtb3ZlIGl0IHRvIHRoZSBVU0IgbW9kdWxlLgorCSAqLworCXNjLT5iY25fc3RhdHVz
X3JlZ1sxXQkJPSBSOTJDX1RERUNUUkw7CisJc2MtPnJjcgkJCQk9IDB4ZjAwMDc4MGU7CisKKwlz
Yy0+c2NfbGx0X2luaXQJCQk9IHI4OGVlX2xsdF9pbml0OworCXNjLT5zY19nZXRfcnhfc3RhdHMJ
CT0gcjg4ZV9nZXRfcnhfc3RhdHM7CisKKwlzYy0+bnR4Y2hhaW5zCQkJPSAxOworCXNjLT5ucnhj
aGFpbnMJCQk9IDE7CisKKwlyODhlZV9hdHRhY2hfcHJpdmF0ZShzYyk7Cit9CmRpZmYgLS1naXQg
YS9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX2NhbGliLmMgYi9zeXMvZGV2L3J0d24v
cnRsODE4OGUvcGNpL3I4OGVlX2NhbGliLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjNjZDc1ZDFjMjE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2Rldi9ydHduL3J0
bDgxODhlL3BjaS9yODhlZV9jYWxpYi5jCkBAIC0wLDAgKzEsNjUgQEAKKy8qCSRPcGVuQlNEOiBp
Zl9ydHduLmMsdiAxLjYgMjAxNS8wOC8yOCAwMDowMzo1MyBkZXJhYWR0IEV4cCAkCSovCisKKy8q
LQorICogQ29weXJpZ2h0IChjKSAyMDE4IEZhcmhhbiBLaGFuIDxraGFuemZAZ21haWwuY29tPgor
ICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRo
aXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhl
cmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisg
KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJ
TVMgQUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVE
SU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SCisgKiBBTlkg
U1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFO
WSBEQU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRB
IE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElH
RU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GCisgKiBPUiBJTiBD
T05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgor
ICovCisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRCQiKTsKKwor
I2luY2x1ZGUgIm9wdF93bGFuLmgiCisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRl
IDxzeXMvbG9jay5oPgorI2luY2x1ZGUgPHN5cy9tdXRleC5oPgorI2luY2x1ZGUgPHN5cy9tYnVm
Lmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNp
bmNsdWRlIDxzeXMvc3lzdG0uaD4KKyNpbmNsdWRlIDxzeXMvbWFsbG9jLmg+CisjaW5jbHVkZSA8
c3lzL3F1ZXVlLmg+CisjaW5jbHVkZSA8c3lzL3Rhc2txdWV1ZS5oPgorI2luY2x1ZGUgPHN5cy9i
dXMuaD4KKyNpbmNsdWRlIDxzeXMvZW5kaWFuLmg+CisjaW5jbHVkZSA8c3lzL2xpbmtlci5oPgor
CisjaW5jbHVkZSA8bWFjaGluZS9idXMuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL3Jlc291cmNlLmg+
CisjaW5jbHVkZSA8c3lzL3JtYW4uaD4KKworI2luY2x1ZGUgPG5ldC9pZi5oPgorI2luY2x1ZGUg
PG5ldC9ldGhlcm5ldC5oPgorI2luY2x1ZGUgPG5ldC9pZl9tZWRpYS5oPgorCisjaW5jbHVkZSA8
bmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oPgorI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV9y
YWRpb3RhcC5oPgorCisjaW5jbHVkZSA8ZGV2L3J0d24vaWZfcnR3bnJlZy5oPgorI2luY2x1ZGUg
PGRldi9ydHduL2lmX3J0d252YXIuaD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9pZl9ydHduX2RlYnVn
Lmg+CisKKyNpbmNsdWRlIDxkZXYvcnR3bi9wY2kvcnR3bl9wY2lfdmFyLmg+CisKKyNpbmNsdWRl
IDxkZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWUuaD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4
MTg4ZS9wY2kvcjg4ZWVfcmVnLmg+CisKKworI2RlZmluZSBSVFdOX0lRX0NBTF9OUlVOCTMKK3Zv
aWQKK3I4OGVlX2lxX2NhbGliKHN0cnVjdCBydHduX3NvZnRjICpzYykKK3sKKwkvKiBDdXJyZW50
bHkgdW5pbXBsZW1lbnRlZCAqLworfQorI3VuZGVmIFJUV05fSVFfQ0FMX05SVU4KZGlmZiAtLWdp
dCBhL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWVfaW5pdC5jIGIvc3lzL2Rldi9ydHdu
L3J0bDgxODhlL3BjaS9yODhlZV9pbml0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjQxMmE3MTQ5NTU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2Rldi9ydHduL3J0
bDgxODhlL3BjaS9yODhlZV9pbml0LmMKQEAgLTAsMCArMSwyNTYgQEAKKy8qLQorICogQ29weXJp
Z2h0IChjKSAyMDE3IEZhcmhhbiBLaGFuIDxraGFuemZAZ21haWwuY29tPgorICoKKyAqIFBlcm1p
c3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUg
Zm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVk
LCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw
ZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSEUgU09GVFdB
UkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJB
TlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SCisgKiBBTlkgU1BFQ0lBTCwgRElS
RUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisg
KiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMs
IFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhF
UiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GCisgKiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorICovCisKKyNpbmNs
dWRlIDxzeXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRCQiKTsKKworI2luY2x1ZGUgIm9w
dF93bGFuLmgiCisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvbG9jay5o
PgorI2luY2x1ZGUgPHN5cy9tdXRleC5oPgorI2luY2x1ZGUgPHN5cy9tYnVmLmg+CisjaW5jbHVk
ZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxzeXMv
c3lzdG0uaD4KKyNpbmNsdWRlIDxzeXMvbWFsbG9jLmg+CisjaW5jbHVkZSA8c3lzL3F1ZXVlLmg+
CisjaW5jbHVkZSA8c3lzL3Rhc2txdWV1ZS5oPgorI2luY2x1ZGUgPHN5cy9idXMuaD4KKyNpbmNs
dWRlIDxzeXMvZW5kaWFuLmg+CisjaW5jbHVkZSA8c3lzL2xpbmtlci5oPgorCisjaW5jbHVkZSA8
bWFjaGluZS9idXMuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL3Jlc291cmNlLmg+CisjaW5jbHVkZSA8
c3lzL3JtYW4uaD4KKworI2luY2x1ZGUgPG5ldC9pZi5oPgorI2luY2x1ZGUgPG5ldC9ldGhlcm5l
dC5oPgorI2luY2x1ZGUgPG5ldC9pZl9tZWRpYS5oPgorCisjaW5jbHVkZSA8bmV0ODAyMTEvaWVl
ZTgwMjExX3Zhci5oPgorI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV9yYWRpb3RhcC5oPgor
CisjaW5jbHVkZSA8ZGV2L3J0d24vaWZfcnR3bnZhci5oPgorCisjaW5jbHVkZSA8ZGV2L3J0d24v
cGNpL3J0d25fcGNpX3Zhci5oPgorI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxODhlL3I4OGVfcmVn
Lmg+CisjaW5jbHVkZSA8ZGV2L3J0d24vcnRsODE5MmMvcjkyYy5oPgorI2luY2x1ZGUgPGRldi9y
dHduL3J0bDgxOTJjL3BjaS9yOTJjZV9yZWcuaD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTky
Yy9wY2kvcjkyY2UuaD4KKworI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZS5o
PgorI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZV9yZWcuaD4KKyNpbmNsdWRl
IDxkZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWVfcHdyc2VxLmg+CisjaW5jbHVkZSA8ZGV2L3J0
d24vcnRsODE5MmMvcjkyY192YXIuaD4KKwordm9pZAorcjg4ZWVfaW5pdF9pbnRyKHN0cnVjdCBy
dHduX3NvZnRjICpzYykKK3sKKwkvKiBEaXNhYmxlIGludGVycnVwdHMuICovCisJcnR3bl93cml0
ZV80KHNjLCAweGIwLCAweDIwMDA4NGZmKTsKKwlydHduX3dyaXRlXzQoc2MsIDB4YjgsIDB4MTAw
KTsKKwlydHduX3dyaXRlXzEoc2MsIDB4MDFBRiwgMHgwKTsKKwlydHduX3dyaXRlXzQoc2MsIDB4
MDA1OCwgMHhjMCk7IAorfQorCit2b2lkCityODhlZV9pbml0X2VkY2Eoc3RydWN0IHJ0d25fc29m
dGMgKnNjKQoreworCXJ0d25fd3JpdGVfMShzYywgUjg4RUVfU0lGU19UUlggKyAxLCAweDBhKTsK
KwlydHduX3dyaXRlXzEoc2MsIFI4OEVFX1NJRlNfU1BFQyArIDEsIDB4MGEpOworCXJ0d25fd3Jp
dGVfMShzYywgUjg4RUVfU0lGU19TUEVDX01BQyArIDEsIDB4MGEpOworCXJ0d25fd3JpdGVfMihz
YywgUjg4RUVfU0lGU19SRVNQX09GRE0sIDB4MGUwZSk7Cit9CisKK2ludAorcjg4ZWVfcG93ZXJf
b24oc3RydWN0IHJ0d25fc29mdGMgKnNjKQoreworCXVpbnQ4X3QgYnl0ZXRtcDsKKworCWJ5dGV0
bXAgPSBydHduX3JlYWRfMShzYywgUjkyQ19BUFNfRlNNQ08gKyAxKSAmICh+MHg4MCk7CisJcnR3
bl93cml0ZV8xKHNjLCBSOTJDX0FQU19GU01DTyArIDEsIGJ5dGV0bXApOworCisJcnR3bl93cml0
ZV8xKHNjLCBSOTJDX1JTVl9DVFJMLCAweDAwKTsKKworCS8qIFBvd2VyIHNlcXVlbmNlOiBOSUMg
ZW5hYmxlIGZsb3cgKi8KKwlydHduX3NldGJpdHNfMShzYywgMHg1LCAweDE4LCAweDApOworCWlm
ICghcjg4ZWVfcHdyc2VxX3BvbGxpbmcoc2MsIDB4NiwgMHgyLCAweDIpKQorCQlyZXR1cm4gZmFs
c2U7CisJcnR3bl9zZXRiaXRzXzEoc2MsIDB4MiwgMHgzLCAweDApOworCXJ0d25fc2V0Yml0c18x
KHNjLCAweDI2LCAweDgwLCAweDgwKTsKKwlydHduX3NldGJpdHNfMShzYywgMHg1LCAweDgwLCAw
eDApOworCXJ0d25fc2V0Yml0c18xKHNjLCAweDUsIDB4MTgsIDB4MCk7CisJcnR3bl9zZXRiaXRz
XzEoc2MsIDB4NSwgMHgxLCAweDEpOworCWlmICghcjg4ZWVfcHdyc2VxX3BvbGxpbmcoc2MsIDB4
NSwgMHgxLCAweDApKQorCQlyZXR1cm4gZmFsc2U7CisJLyogRW5kIG9mIHBvd2VyIHNlcXVlbmNl
ICovCisKKwlieXRldG1wID0gcnR3bl9yZWFkXzEoc2MsIFI5MkNfU1lTX0NMS1IpOworCisJcnR3
bl93cml0ZV8xKHNjLCBSOTJDX1NZU19DTEtSLCBieXRldG1wIHwgMHgwOCk7CisJYnl0ZXRtcCA9
IHJ0d25fcmVhZF8xKHNjLCBSOTJDX0dQSU9fTVVYQ0ZHKzEpOworCXJ0d25fd3JpdGVfMShzYywg
UjkyQ19HUElPX01VWENGRysxLCAoYnl0ZXRtcCAmICh+MHgxMCkpKTsKKwlydHduX3dyaXRlXzEo
c2MsIDB4MzY3LCAweDgwKTsKKworCXJ0d25fd3JpdGVfMihzYywgUjkyQ19DUiwgMHgyZmYpOwor
CXJ0d25fd3JpdGVfMShzYywgUjkyQ19DUisxLCAweDA2KTsKKwlydHduX3dyaXRlXzEoc2MsIFI5
MkNfTVNSLCAweDAwKTsKKworCXJ0d25fd3JpdGVfNChzYywgUjkyQ19JTlRfTUlHLCAwKTsKKwor
CXJ0d25fd3JpdGVfMShzYywgUjkyQ19QQ0lFX0NUUkxfUkVHKzEsIDApOyAvKiBFbmFibGUgUlgg
RE1BICovCisKKwlydHduX3dyaXRlXzEoc2MsIDB4MDRDQSwgMHgwQik7CisJcnR3bl93cml0ZV80
KHNjLCBSOTJDX1JDUiwgc2MtPnJjcik7CisKKwlydHduX3dyaXRlXzQoc2MsIFI5MkNfTUNVVFNU
XzEsIDB4MCk7CisKKwlyZXR1cm4oMCk7CisKK30KKwordm9pZAorcjg4ZWVfcG93ZXJfb2ZmKHN0
cnVjdCBydHduX3NvZnRjICpzYykKK3sKKwl1aW50MzJfdCBjb3VudCA9IDA7CisJdWludDhfdCB0
bXA7CisKKwl0bXAgPSBydHduX3JlYWRfMShzYywgUjg4RV9UWF9SUFRfQ1RSTCk7CisJcnR3bl93
cml0ZV8xKHNjLCBSODhFX1RYX1JQVF9DVFJMLCB0bXAgJiAofjB4MDIpKTsKKworCXRtcCA9IHJ0
d25fcmVhZF8xKHNjLCBSODhFRV9SWERNQV9DT05UUk9MKTsKKworCXdoaWxlICghKHRtcCAmIDB4
MDIpICYmIChjb3VudCsrIDwgMTAwKSkgeworCQlydHduX2RlbGF5KHNjLCAxMCk7CisJCXRtcCA9
IHJ0d25fcmVhZF8xKHNjLCBSODhFRV9SWERNQV9DT05UUk9MKTsKKwkJY291bnQrKzsKKwl9CisK
KwlydHduX3dyaXRlXzEoc2MsIFI5MkNfUENJRV9DVFJMX1JFRysxLCAweEZGKTsKKworCS8qIFBv
d2VyIHNlcXVlbmNlOiBEaXNhYmxlIE5JQyBMUFMgZW5hYmxlIEZsb3cgKi8KKwlydHduX3NldGJp
dHNfMShzYywgMHg1MjIsIDB4ZmYsIDB4N2YpOworCXI4OGVlX3B3cnNlcV9wb2xsaW5nKHNjLCAw
eDVmOCwgMHhmZiwgMHgwKTsKKwlyODhlZV9wd3JzZXFfcG9sbGluZyhzYywgMHg1ZjksIDB4ZmYs
IDB4MCk7CisJcjg4ZWVfcHdyc2VxX3BvbGxpbmcoc2MsIDB4NWZhLCAweGZmLCAweDApOworCXI4
OGVlX3B3cnNlcV9wb2xsaW5nKHNjLCAweDVmYiwgMHhmZiwgMHgwKTsKKwlydHduX3NldGJpdHNf
MShzYywgMHgyLCAweDEsIDB4MCk7CisJcnR3bl9zZXRiaXRzXzEoc2MsIDB4MTAwLCAweGZmLCAw
eDNmKTsKKwlydHduX3NldGJpdHNfMShzYywgMHgxMDEsIDB4MiwgMHgwKTsKKwlydHduX3NldGJp
dHNfMShzYywgMHg1NTMsIDB4MjAsIDB4MjApOworCS8qIEVuZCBvZiBwb3dlciBzZXF1ZW5jZSAq
LworCisJcnR3bl93cml0ZV8xKHNjLCBSOTJDX1JGX0NUUkwsIDB4MDApOworCisJdG1wID0gcnR3
bl9yZWFkXzEoc2MsIFI5MkNfU1lTX0ZVTkNfRU4rMSk7CisJcnR3bl93cml0ZV8xKHNjLCBSOTJD
X1NZU19GVU5DX0VOKzEsICh0bXAgJiAofjB4MDQpKSk7CisJcnR3bl93cml0ZV8xKHNjLCBSOTJD
X1NZU19GVU5DX0VOKzEsICh0bXAgfCAweDA0KSk7CisKKwl0bXAgPSBydHduX3JlYWRfMShzYywg
UjkyQ19TWVNfRlVOQ19FTisxKTsKKwlydHduX3dyaXRlXzEoc2MsIFI5MkNfU1lTX0ZVTkNfRU4g
KyAxLCAodG1wICYgKH4weDA0KSkpOworCXJ0d25fd3JpdGVfMShzYywgUjkyQ19NQ1VGV0RMLCAw
eDAwKTsKKworCXRtcCA9IHJ0d25fcmVhZF8xKHNjLCBSODhFXzMyS19DVFJMKTsKKwlydHduX3dy
aXRlXzEoc2MsIFI4OEVfMzJLX0NUUkwsICh0bXAgJiAofjB4MDEpKSk7CisKKwkvKiBQb3dlciBz
ZXF1ZW5jZTogTklDIERpc2FibGUgZmxvdyAqLworCXJ0d25fc2V0Yml0c18xKHNjLCAweDFmLCAw
eGZmLCAweDApOworCXJ0d25fc2V0Yml0c18xKHNjLCAweDIzLCAweDEwLCAweDEwKTsKKwlydHdu
X3NldGJpdHNfMShzYywgMHg1LCAweDIsIDB4Mik7CisJcjg4ZWVfcHdyc2VxX3BvbGxpbmcoc2Ms
IDB4NSwgMHgyLCAweDApOworCXJ0d25fc2V0Yml0c18xKHNjLCAweDI2LCAweDgwLCAweDgwKTsK
KwkvKiBFbmQgb2YgcG93ZXIgc2VxdWVuY2UgKi8KKworCXRtcCA9IHJ0d25fcmVhZF8xKHNjLCBS
OTJDX1JTVl9DVFJMKzEpOworCXJ0d25fd3JpdGVfMShzYywgUjkyQ19SU1ZfQ1RSTCsxLCAodG1w
ICYgKH4weDA4KSkpOworCXRtcCA9IHJ0d25fcmVhZF8xKHNjLCBSOTJDX1JTVl9DVFJMKzEpOwor
CXJ0d25fd3JpdGVfMShzYywgUjkyQ19SU1ZfQ1RSTCsxLCAodG1wIHwgMHgwOCkpOworCisJcnR3
bl93cml0ZV8xKHNjLCBSOTJDX1JTVl9DVFJMLCAweDBFKTsKKworCXRtcCA9IHJ0d25fcmVhZF8x
KHNjLCBSOTJDX0dQSU9fSU4pOworCXJ0d25fd3JpdGVfMShzYywgUjkyQ19HUElPX09VVCwgdG1w
KTsKKwlydHduX3dyaXRlXzEoc2MsIFI5MkNfR1BJT19JT19TRUwsIDB4N0YpOworCisJdG1wID0g
cnR3bl9yZWFkXzEoc2MsIFI5MkNfR1BJT19JT19TRUwpOworCXJ0d25fd3JpdGVfMShzYywgUjky
Q19HUElPX0lPX1NFTCwgKHRtcCA8PCA0KSB8IHRtcCk7CisJdG1wID0gcnR3bl9yZWFkXzEoc2Ms
IFI5MkNfR1BJT19JT19TRUwrMSk7CisJcnR3bl93cml0ZV8xKHNjLCBSOTJDX0dQSU9fSU9fU0VM
KzEsIHRtcCB8IDB4MEYpOworCisJcnR3bl93cml0ZV80KHNjLCBSODhFRV9HUElPX0lPX1NFTF8y
KzIsIDB4MDAwODA4MDgpOworfQorCit2b2lkCityODhlZV9pbml0X2FtcGR1KHN0cnVjdCBydHdu
X3NvZnRjICpzYykKK3sKKwkvKiBOb3QgaW1wbGVtZW50ZWQgKi8KK30KKwordm9pZAorcjg4ZWVf
cG9zdF9pbml0KHN0cnVjdCBydHduX3NvZnRjICpzYykKK3sKKyAgICAgcnR3bl93cml0ZV8yKHNj
LCBSOTJDX0ZXSFdfVFhRX0NUUkwsCisgICAgICAgICAweDFmMDAgfCBSOTJDX0ZXSFdfVFhRX0NU
UkxfQU1QRFVfUlRZX05FVyk7CisKKyAgICAgcnR3bl93cml0ZV8xKHNjLCBSOTJDX0JDTl9NQVhf
RVJSLCAweGZmKTsKKworICAgICAvKiBQZXJmb3JtIExPIGFuZCBJUSBjYWxpYnJhdGlvbnMuICov
CisgICAgIHJ0d25faXFfY2FsaWIoc2MpOworICAgICAvKiBQZXJmb3JtIExDIGNhbGlicmF0aW9u
LiAqLworICAgICBydHduX2xjX2NhbGliKHNjKTsKKworICAgICByOTJjX3BhX2JpYXNfaW5pdChz
Yyk7CisKKyAgICAgLyogRml4IGZvciBsb3dlciB0ZW1wZXJhdHVyZS4gKi8KKyAgICAgcnR3bl93
cml0ZV8xKHNjLCAweDE1LCAweGU5KTsKKworI2lmbmRlZiBSVFdOX1dJVEhPVVRfVUNPREUKKyAg
ICAgaWYgKHNjLT5zY19mbGFncyAmIFJUV05fRldfTE9BREVEKSB7CisgICAgICAgICAgc3RydWN0
IHI5MmNfc29mdGMgKnJzID0gc2MtPnNjX3ByaXY7CisKKyAgICAgICAgICBpZiAoc2MtPnNjX3Jh
dGVjdGxfc3lzY3RsID09IFJUV05fUkFURUNUTF9GVykgeworICAgICAgICAgICAgICAgLyogWFhY
IFRPRE86IGZpeCAoc2VlIGNvbW1lbnQgaW4gcjkyY3VfaW5pdC5jKSAqLworICAgICAgICAgICAg
ICAgc2MtPnNjX3JhdGVjdGwgPSBSVFdOX1JBVEVDVExfTkVUODAyMTE7CisgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICBzYy0+c2NfcmF0ZWN0bCA9IHNjLT5zY19yYXRlY3RsX3N5c2N0
bDsKKworICAgICAgICAgIC8qIFN0YXJ0IEMySCBldmVudCBoYW5kbGluZy4gKi8KKyAgICAgICAg
ICBjYWxsb3V0X3Jlc2V0KCZycy0+cnNfYzJoX3JlcG9ydCwgcnMtPnJzX2MyaF90aW1lb3V0LAor
ICAgICAgICAgICAgICByOTJjX2hhbmRsZV9jMmhfcmVwb3J0LCBzYyk7CisgICAgIH0gZWxzZQor
I2VuZGlmCisgICAgICAgICAgc2MtPnNjX3JhdGVjdGwgPSBSVFdOX1JBVEVDVExfTk9ORTsKK30K
Kwordm9pZAorcjg4ZWVfaW5pdF9yeF9hZ2coc3RydWN0IHJ0d25fc29mdGMgKnNjKSB7CisJc3Ry
dWN0IHJ0d25fcGNpX3NvZnRjICpwYyA9IHNjLT5zY19wcml2OworCisJdWludDE2X3QgdG1wOwor
CisJdG1wID0gcnR3bl9yZWFkXzIoc2MsIFI4OEVFX1RSWERNQV9DVFJMKTsKKwl0bXAgJj0gMHhm
OworCXRtcCB8PSAweEU3NzE7CisJcnR3bl93cml0ZV8yKHNjLCBSODhFRV9UUlhETUFfQ1RSTCwg
dG1wKTsKKworCXJ0d25fd3JpdGVfNChzYywgUjkyQ19SQ1IsIHNjLT5yY3IpOworCXJ0d25fd3Jp
dGVfMihzYywgUjkyQ19SWEZMVE1BUDIsIDB4ZmZmZik7CisJcnR3bl93cml0ZV80KHNjLCBSOTJD
X1RDUiwgcGMtPnRjcik7CisKKwlydHduX3dyaXRlXzEoc2MsIFI5MkNfUENJRV9DVFJMX1JFRysx
LCAwKTsKKworfQpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZV9w
cml2LmggYi9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3ByaXYuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjk0MTUwNjU4YTQKLS0tIC9kZXYvbnVsbAor
KysgYi9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3ByaXYuaApAQCAtMCwwICsxLDIz
NiBAQAorLyoJJE9wZW5CU0Q6IGlmX3J0d25yZWcuaCx2IDEuMyAyMDE1LzA2LzE0IDA4OjAyOjQ3
IHN0c3AgRXhwICQJKi8KKworLyotCisgKiBDb3B5cmlnaHQgKGMpIDIwMTggRmFyaGFuIEtoYW4g
PGtoYW56ZkBnbWFpbC5jb20+CisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlm
eSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CisgKiBwdXJwb3NlIHdpdGgg
b3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBp
biBhbGwgY29waWVzLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFO
RCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworICogV0lUSCBSRUdBUkQgVE8g
VEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJF
IExJQUJMRSBGT1IKKyAqIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKKyAqIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZS
T00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTgorICogQUNUSU9O
IE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lO
RyBPVVQgT0YKKyAqIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNF
IE9GIFRISVMgU09GVFdBUkUuCisgKiAKKyAqICRGcmVlQlNEJAorICovCisKKyNpZm5kZWYgUjg4
RUVfUFJJVl9ICisjZGVmaW5lIFI4OEVFX1BSSVZfSAorCisjaW5jbHVkZSA8ZGV2L3J0d24vcnRs
ODE4OGUvcjg4ZV9wcml2Lmg+CisKKy8qCisgKiBSRiBpbml0aWFsaXphdGlvbiB2YWx1ZXMuCisg
Ki8KK3N0YXRpYyBjb25zdCB1aW50OF90IHJ0bDgxODhlZV9yZl9yZWdzMFtdID0geworCTB4MDAw
LCAweDAwOCwgMHgwMTgsIDB4MDE5LCAweDAxRSwKKwkweDAxRiwgMHgwMkYsIDB4MDNGLCAweDA0
MiwgMHgwNTcsCisJMHgwNTgsIDB4MDY3LCAweDA4MywgMHgwQjAsIDB4MEIxLAorCTB4MEIyLCAw
eDBCNCwgMHgwQjYsIDB4MEI3LCAweDBCOCwKKwkweDBCOSwgMHgwQkEsIDB4MEJCLCAweDBCRiwg
MHgwQzIsCisJMHgwQzMsIDB4MEM0LCAweDBDNSwgMHgwQzYsIDB4MEM3LAorCTB4MEM4LCAweDBD
OSwgMHgwQ0EsIDB4MERGLCAweDBFRiwKKwkweDA1MSwgMHgwNTIsIDB4MDUzLCAweDA1NiwgMHgw
MzUsCisJMHgwMzUsIDB4MDM1LCAweDAzNiwgMHgwMzYsIDB4MDM2LAorCTB4MDM2LCAweDBCNiwg
MHgwMTgsIDB4MDVBLCAweDAxOSwKKwkweDAzNCwgMHgwMzQsIDB4MDM0LCAweDAzNCwgMHgwMzQs
CisJMHgwMzQsIDB4MDM0LCAweDAzNCwgMHgwMzQsIDB4MDM0LAorCTB4MDM0LCAweDAwMCwgMHgw
ODQsIDB4MDg2LCAweDA4NywKKwkweDA4RSwgMHgwOEYsIDB4MEVGLCAweDAzQiwgMHgwM0IsCisJ
MHgwM0IsIDB4MDNCLCAweDAzQiwgMHgwM0IsIDB4MDNCLAorCTB4MDNCLCAweDAzQiwgMHgwM0Is
IDB4MDNCLCAweDAzQiwKKworCTB4MDNCLCAweDAzQiwgMHgwM0IsIDB4MDNCLCAweDBFRiwKKwkw
eDAwMCwgMHgwMTgsIDB4MEY5LCAweDBGOSwgMHgwMUUsCisJMHgwRjksIDB4MEY5LCAweDAxRSwg
MHgwMUYsIDB4MDAwCisKK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBydGw4MTg4ZWVfcmZf
dmFsczBbXSA9IHsKKwkweDAwMDMwMDAwLCAweDAwMDg0MDAwLCAweDAwMDAwNDA3LCAweDAwMDAw
MDEyLCAweDAwMDgwMDA5LAorCTB4MDAwMDA4ODAsIDB4MDAwMUEwNjAsIDB4MDAwMDAwMDAsIDB4
MDAwMDYwQzAsIDB4MDAwRDAwMDAsCisJMHgwMDBCRTE4MCwgMHgwMDAwMTU1MiwgMHgwMDAwMDAw
MCwgMHgwMDBGRjhGQywgMHgwMDA1NDQwMCwKKwkweDAwMENDQzE5LCAweDAwMDQzMDAzLCAweDAw
MDQ5NTNFLCAweDAwMDFDNzE4LCAweDAwMDA2MEZGLAorCTB4MDAwODAwMDEsIDB4MDAwNDAwMDAs
IDB4MDAwMDA0MDAsIDB4MDAwQzAwMDAsIDB4MDAwMDI0MDAsCisJMHgwMDAwMDAwOSwgMHgwMDA0
MEM5MSwgMHgwMDA5OTk5OSwgMHgwMDAwMDBBMywgMHgwMDA4ODgyMCwKKwkweDAwMDc2QzA2LCAw
eDAwMDAwMDAwLCAweDAwMDgwMDAwLCAweDAwMDAwMTgwLCAweDAwMDAwMUEwLAorCTB4MDAwNkIy
N0QsIDB4MDAwN0U0OUQsIDB4MDAwMDAwNzMsIDB4MDAwNTFGRjMsIDB4MDAwMDAwODYsCisJMHgw
MDAwMDE4NiwgMHgwMDAwMDI4NiwgMHgwMDAwMUMyNSwgMHgwMDAwOUMyNSwgMHgwMDAxMUMyNSwK
KwkweDAwMDE5QzI1LCAweDAwMDQ4NTM4LCAweDAwMDAwQzA3LCAweDAwMDRCRDAwLCAweDAwMDcz
OUQwLAorCTB4MDAwMEFERjMsIDB4MDAwMDlERjAsIDB4MDAwMDhERUQsIDB4MDAwMDdERUEsIDB4
MDAwMDZERTcsCisJMHgwMDAwNTRFRSwgMHgwMDAwNDRFQiwgMHgwMDAwMzRFOCwgMHgwMDAwMjQ2
QiwgMHgwMDAwMTQ2OCwKKwkweDAwMDAwMDZELCAweDAwMDMwMTU5LCAweDAwMDY4MjAwLCAweDAw
MDAwMENFLCAweDAwMDQ4QTAwLAorCTB4MDAwNjU1NDAsIDB4MDAwODgwMDAsIDB4MDAwMDIwQTAs
IDB4MDAwRjAyQjAsIDB4MDAwRUY3QjAsCisJMHgwMDBENEZCMCwgMHgwMDBDRjA2MCwgMHgwMDBC
MDA5MCwgMHgwMDBBMDA4MCwgMHgwMDA5MDA4MCwKKwkweDAwMDhGNzgwLCAweDAwMDcyMkIwLCAw
eDAwMDZGN0IwLCAweDAwMDU0RkIwLCAweDAwMDRGMDYwLAorCTB4MDAwMzAwOTAsIDB4MDAwMjAw
ODAsIDB4MDAwMTAwODAsIDB4MDAwMEY3ODAsIDB4MDAwMDAwQTAsCisKKwkweDAwMDEwMTU5LCAw
eDAwMDBGNDA3LCAweDAwMDBDMzUwLCAweDAwMDBDMzUwLCAweDAwMDgwMDAzLAorCTB4MDAwMEMz
NTAsIDB4MDAwMEMzNTAsIDB4MDAwMDAwMDEsIDB4MDAwODAwMDAsIDB4MDAwMzNlNjAKK307CisK
K19TdGF0aWNfYXNzZXJ0KG5pdGVtcyhydGw4MTg4ZWVfcmZfcmVnczApID09IG5pdGVtcyhydGw4
MTg4ZWVfcmZfdmFsczApLAorICAgICJydGw4MTg4ZWVfcmZfcmVnczAgYW5kIHJ0bDgxODhlZV9y
Zl92YWxzMCBtdXN0IGJlIHRoZSBzYW1lIHNpemUhIik7CisKKworc3RhdGljIGNvbnN0IHN0cnVj
dCBydHduX3JmX3Byb2cgcnRsODE4OGVlX3JmW10gPSB7CisJeworCQluaXRlbXMocnRsODE4OGVl
X3JmX3JlZ3MwKSwKKwkJcnRsODE4OGVlX3JmX3JlZ3MwLAorCQlydGw4MTg4ZWVfcmZfdmFsczAs
CisJCXsgMHgwIH0sCisJCU5VTEwsCisJfSwKKwl7IDAsIE5VTEwsIE5VTEwsIHsgMCB9LCBOVUxM
IH0KK307CisKKy8qCisgKiBNQUMgaW5pdGlhbGl6YXRpb24gdmFsdWVzLgorICovCitzdGF0aWMg
Y29uc3Qgc3RydWN0IHJ0d25fbWFjX3Byb2cgcnRsODE4OGVlX21hY1tdID0geworCXsgMHgwMjYs
IDB4NDEgfSwgeyAweDAyNywgMHgzNSB9LCB7IDB4NDI4LCAweDBBIH0sIHsgMHg0MjksIDB4MTAg
fSwKKwl7IDB4NDMwLCAweDAwIH0sIHsgMHg0MzEsIDB4MDEgfSwgeyAweDQzMiwgMHgwMiB9LCB7
IDB4NDMzLCAweDA0IH0sCisJeyAweDQzNCwgMHgwNSB9LCB7IDB4NDM1LCAweDA2IH0sIHsgMHg0
MzYsIDB4MDcgfSwgeyAweDQzNywgMHgwOCB9LAorCXsgMHg0MzgsIDB4MDAgfSwgeyAweDQzOSwg
MHgwMCB9LCB7IDB4NDNBLCAweDAxIH0sIHsgMHg0M0IsIDB4MDIgfSwKKwl7IDB4NDNDLCAweDA0
IH0sIHsgMHg0M0QsIDB4MDUgfSwgeyAweDQzRSwgMHgwNiB9LCB7IDB4NDNGLCAweDA3IH0sCisJ
eyAweDQ0MCwgMHg1RCB9LCB7IDB4NDQxLCAweDAxIH0sIHsgMHg0NDIsIDB4MDAgfSwgeyAweDQ0
NCwgMHgxNSB9LAorCXsgMHg0NDUsIDB4RjAgfSwgeyAweDQ0NiwgMHgwRiB9LCB7IDB4NDQ3LCAw
eDAwIH0sIHsgMHg0NTgsIDB4NDEgfSwKKwl7IDB4NDU5LCAweEE4IH0sIHsgMHg0NUEsIDB4NzIg
fSwgeyAweDQ1QiwgMHhCOSB9LCB7IDB4NDYwLCAweDY2IH0sCisJeyAweDQ2MSwgMHg2NiB9LCB7
IDB4NDgwLCAweDA4IH0sIHsgMHg0QzgsIDB4RkYgfSwgeyAweDRDOSwgMHgwOCB9LAorCXsgMHg0
Q0MsIDB4RkYgfSwgeyAweDRDRCwgMHhGRiB9LCB7IDB4NENFLCAweDAxIH0sIHsgMHg0RDMsIDB4
MDEgfSwKKwl7IDB4NTAwLCAweDI2IH0sIHsgMHg1MDEsIDB4QTIgfSwgeyAweDUwMiwgMHgyRiB9
LCB7IDB4NTAzLCAweDAwIH0sCisJeyAweDUwNCwgMHgyOCB9LCB7IDB4NTA1LCAweEEzIH0sIHsg
MHg1MDYsIDB4NUUgfSwgeyAweDUwNywgMHgwMCB9LAorCXsgMHg1MDgsIDB4MkIgfSwgeyAweDUw
OSwgMHhBNCB9LCB7IDB4NTBBLCAweDVFIH0sIHsgMHg1MEIsIDB4MDAgfSwKKwl7IDB4NTBDLCAw
eDRGIH0sIHsgMHg1MEQsIDB4QTQgfSwgeyAweDUwRSwgMHgwMCB9LCB7IDB4NTBGLCAweDAwIH0s
CisJeyAweDUxMiwgMHgxQyB9LCB7IDB4NTE0LCAweDBBIH0sIHsgMHg1MTYsIDB4MEEgfSwgeyAw
eDUyNSwgMHg0RiB9LAorCXsgMHg1NTAsIDB4MTAgfSwgeyAweDU1MSwgMHgxMCB9LCB7IDB4NTU5
LCAweDAyIH0sIHsgMHg1NUQsIDB4RkYgfSwKKwl7IDB4NjA1LCAweDMwIH0sIHsgMHg2MDgsIDB4
MEUgfSwgeyAweDYwOSwgMHgyQSB9LCB7IDB4NjIwLCAweEZGIH0sCisJeyAweDYyMSwgMHhGRiB9
LCB7IDB4NjIyLCAweEZGIH0sIHsgMHg2MjMsIDB4RkYgfSwgeyAweDYyNCwgMHhGRiB9LAorCXsg
MHg2MjUsIDB4RkYgfSwgeyAweDYyNiwgMHhGRiB9LCB7IDB4NjI3LCAweEZGIH0sIHsgMHg2NTIs
IDB4MjAgfSwKKwl7IDB4NjNDLCAweDBBIH0sIHsgMHg2M0QsIDB4MEEgfSwgeyAweDYzRSwgMHgw
RSB9LCB7IDB4NjNGLCAweDBFIH0sCisJeyAweDY0MCwgMHg0MCB9LCB7IDB4NjZFLCAweDA1IH0s
IHsgMHg3MDAsIDB4MjEgfSwgeyAweDcwMSwgMHg0MyB9LAorCXsgMHg3MDIsIDB4NjUgfSwgeyAw
eDcwMywgMHg4NyB9LCB7IDB4NzA4LCAweDIxIH0sIHsgMHg3MDksIDB4NDMgfSwKKwl7IDB4NzBB
LCAweDY1IH0sIHsgMHg3MEIsIDB4ODcgfQorfTsKKworLyoKKyAqIEJhc2ViYW5kIGluaXRpYWxp
emF0aW9uIHZhbHVlcy4KKyAqLworc3RhdGljIGNvbnN0IHVpbnQxNl90IHJ0bDgxODhlZV9iYl9w
aHlfcmVnczBbXSA9IHsKKwkweDgwMCwgMHg4MDQsIDB4ODA4LCAweDgwQywgMHg4MTAsIDB4ODE0
LCAweDgxOCwgMHg4MUMsIDB4ODIwLAorCTB4ODI0LCAweDgyOCwgMHg4MkMsIDB4ODMwLCAweDgz
NCwgMHg4MzgsIDB4ODNDLCAweDg0MCwgMHg4NDQsCisJMHg4NDgsIDB4ODRDLCAweDg1MCwgMHg4
NTQsIDB4ODU4LCAweDg1QywgMHg4NjAsIDB4ODY0LCAweDg2OCwKKwkweDg2QywgMHg4NzAsIDB4
ODc0LCAweDg3OCwgMHg4N0MsIDB4ODgwLCAweDg4NCwgMHg4ODgsIDB4ODhDLAorCTB4ODkwLCAw
eDg5NCwgMHg4OTgsIDB4ODlDLCAweDkwMCwgMHg5MDQsIDB4OTA4LCAweDkwQywgMHg5MTAsCisJ
MHg5MTQsIDB4QTAwLCAweEEwNCwgMHhBMDgsIDB4QTBDLCAweEExMCwgMHhBMTQsIDB4QTE4LCAw
eEExQywKKwkweEEyMCwgMHhBMjQsIDB4QTI4LCAweEEyQywgMHhBNzAsIDB4QTc0LCAweEE3OCwg
MHhBN0MsIDB4QTgwLAorCTB4QjJDLCAweEMwMCwgMHhDMDQsIDB4QzA4LCAweEMwQywgMHhDMTAs
IDB4QzE0LCAweEMxOCwgMHhDMUMsCisJMHhDMjAsIDB4QzI0LCAweEMyOCwgMHhDMkMsIDB4QzMw
LCAweEMzNCwgMHhDMzgsIDB4QzNDLCAweEM0MCwKKwkweEM0NCwgMHhDNDgsIDB4QzRDLCAweEM1
MCwgMHhDNTQsIDB4QzU4LCAweEM1QywgMHhDNjAsIDB4QzY0LAorCTB4QzY4LCAweEM2QywgMHhD
NzAsIDB4Qzc0LCAweEM3OCwgMHhDN0MsIDB4QzgwLCAweEM4NCwgMHhDODgsCisJMHhDOEMsIDB4
QzkwLCAweEM5NCwgMHhDOTgsIDB4QzlDLCAweENBMCwgMHhDQTQsIDB4Q0E4LCAweENBQywKKwkw
eENCMCwgMHhDQjQsIDB4Q0I4LCAweENCQywgMHhDQzAsIDB4Q0M0LCAweENDOCwgMHhDQ0MsIDB4
Q0QwLAorCTB4Q0Q0LCAweENEOCwgMHhDREMsIDB4Q0UwLCAweENFNCwgMHhDRTgsIDB4Q0VDLCAw
eEQwMCwgMHhEMDQsCisJMHhEMDgsIDB4RDBDLCAweEQxMCwgMHhEMTQsIDB4RDE4LCAweEQyQywg
MHhEMzAsIDB4RDM0LCAweEQzOCwKKwkweEQzQywgMHhENDAsIDB4RDQ0LCAweEQ0OCwgMHhENEMs
IDB4RDUwLCAweEQ1NCwgMHhENTgsIDB4RDVDLAorCTB4RDYwLCAweEQ2NCwgMHhENjgsIDB4RDZD
LCAweEQ3MCwgMHhENzQsIDB4RDc4LCAweEUwMCwgMHhFMDQsCisJMHhFMDgsIDB4RTEwLCAweEUx
NCwgMHhFMTgsIDB4RTFDLCAweEUyOCwgMHhFMzAsIDB4RTM0LCAweEUzOCwKKwkweEUzQywgMHhF
NDAsIDB4RTQ0LCAweEU0OCwgMHhFNEMsIDB4RTUwLCAweEU1NCwgMHhFNTgsIDB4RTVDLAorCTB4
RTYwLCAweEU2OCwgMHhFNkMsIDB4RTcwLCAweEU3NCwgMHhFNzgsIDB4RTdDLCAweEU4MCwgMHhF
ODQsCisJMHhFODgsIDB4RThDLCAweEVEMCwgMHhFRDQsIDB4RUQ4LCAweEVEQywgMHhFRTAsIDB4
RUVDLCAweEYxNCwKKwkweEY0QywgMHhGMDAKK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBy
dGw4MTg4ZWVfYmJfcGh5X3ZhbHMwW10gPSB7CisJMHg4MDA0MDAwMCwgMHgwMDAwMDAwMywgMHgw
MDAwRkMwMCwgMHgwMDAwMDAwQSwgMHgxMDAwMTMzMSwKKwkweDAyMEMzRDEwLCAweDAyMjAwMzg1
LCAweDAwMDAwMDAwLCAweDAxMDAwMTAwLCAweDAwMzkwMjA0LAorCTB4MDAwMDAwMDAsIDB4MDAw
MDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisJMHgwMDAwMDAwMCwg
MHgwMDAxMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKKwkweDAwMDAw
MDAwLCAweDAwMDAwMDAwLCAweDU2OUExMUE5LCAweDAxMDAwMDE0LCAweDY2RjYwMTEwLAorCTB4
MDYxRjA2NDksIDB4MDAwMDAwMDAsIDB4MjcyNzI3MDAsIDB4MDcwMDA3NjAsIDB4MjUwMDQwMDAs
CisJMHgwMDAwMDgwOCwgMHgwMDAwMDAwMCwgMHhCMDAwMEMxQywgMHgwMDAwMDAwMSwgMHgwMDAw
MDAwMCwKKwkweENDQzAwMEMwLCAweDAwMDAwODAwLCAweEZGRkZGRkZFLCAweDQwMzAyMDEwLCAw
eDAwNzA2MDUwLAorCTB4MDAwMDAwMDAsIDB4MDAwMDAwMjMsIDB4MDAwMDAwMDAsIDB4ODExMjEx
MTEsIDB4MDAwMDAwMDIsCisJMHgwMDAwMDIwMSwgMHgwMEQwNDdDOCwgMHg4MEZGMDAwQywgMHg4
QzgzODMwMCwgMHgyRTdGMTIwRiwKKwkweDk1MDBCQjc4LCAweDExMTREMDI4LCAweDAwODgxMTE3
LCAweDg5MTQwRjAwLCAweDFBMUIwMDAwLAorCTB4MDkwRTEzMTcsIDB4MDAwMDAyMDQsIDB4MDBE
MzAwMDAsIDB4MTAxRkJGMDAsIDB4MDAwMDAwMDcsCisJMHgwMDAwMDkwMCwgMHgyMjVCMDYwNiwg
MHgyMTgwNzVCMSwgMHg4MDAwMDAwMCwgMHg0ODA3MUQ0MCwKKwkweDAzQTA1NjExLCAweDAwMDAw
MEU0LCAweDZDNkM2QzZDLCAweDA4ODAwMDAwLCAweDQwMDAwMTAwLAorCTB4MDg4MDAwMDAsIDB4
NDAwMDAxMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCisJMHgwMDAwMDAw
MCwgMHg2OUU5QUM0NywgMHg0Njk2NTJBRiwgMHg0OTc5NTk5NCwgMHgwQTk3OTcxQywKKwkweDFG
N0M0MDNGLCAweDAwMDEwMEI3LCAweEVDMDIwMTA3LCAweDAwN0YwMzdGLCAweDY5NTUzNDIwLAor
CTB4NDNCQzAwOTQsIDB4MDAwMTMxNjksIDB4MDAyNTA0OTIsIDB4MDAwMDAwMDAsIDB4NzExMjg0
OEIsCisJMHg0N0MwMEJGRiwgMHgwMDAwMDAzNiwgMHgyQzdGMDAwRCwgMHgwMjA2MTBEQiwgMHgw
MDAwMDAxRiwKKwkweDAwQjkxNjEyLCAweDM5MDAwMEU0LCAweDIwRjYwMDAwLCAweDQwMDAwMTAw
LCAweDIwMjAwMDAwLAorCTB4MDAwOTE1MjEsIDB4MDAwMDAwMDAsIDB4MDAxMjE4MjAsIDB4MDAw
MDdGN0YsIDB4MDAwMDAwMDAsCisJMHgwMDAzMDBBMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwg
MHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLCAweDI4MDAwMDAwLCAweDAwMDAw
MDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLAorCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4
MDAwMDAwMDAsIDB4NjRCMjI0MjcsIDB4MDA3NjY5MzIsCisJMHgwMDIyMjIyMiwgMHgwMDAwMDAw
MCwgMHgzNzY0NDMwMiwgMHgyRjk3RDQwQywgMHgwMDAwMDc0MCwKKwkweDAwMDIwNDAxLCAweDAw
MDA5MDdGLCAweDIwMDEwMjAxLCAweEEwNjMzMzMzLCAweDMzMzNCQzQzLAorCTB4N0E4RjVCNkYs
IDB4Q0M5Nzk5NzUsIDB4MDAwMDAwMDAsIDB4ODA2MDgwMDAsIDB4MDAwMDAwMDAsCisJMHgwMDEy
NzM1MywgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKKwkw
eDY0MzcxNDBBLCAweDAwMDAwMDAwLCAweDAwMDAwMjgyLCAweDMwMDMyMDY0LCAweDQ2NTNERTY4
LAorCTB4MDQ1MThBM0MsIDB4MDAwMDIxMDEsIDB4MkEyMDFDMTYsIDB4MTgxMjM2MkUsIDB4MzIy
QzIyMjAsCisJMHgwMDBFM0MyNCwgMHgyRDJEMkQyRCwgMHgyRDJEMkQyRCwgMHgwMzkwMjcyRCwg
MHgyRDJEMkQyRCwKKwkweDJEMkQyRDJELCAweDJEMkQyRDJELCAweDJEMkQyRDJELCAweDAwMDAw
MDAwLCAweDEwMDBEQzFGLAorCTB4MTAwMDhDMUYsIDB4MDIxNDAxMDIsIDB4NjgxNjA0QzIsIDB4
MDEwMDdDMDAsIDB4MDEwMDQ4MDAsCisJMHhGQjAwMDAwMCwgMHgwMDAwMjhEMSwgMHgxMDAwREMx
RiwgMHgxMDAwOEMxRiwgMHgwMjE0MDEwMiwKKwkweDI4MTYwRDA1LCAweDAwMDAwMDA4LCAweDAw
MUIyNUE0LCAweDAwQzAwMDE0LCAweDAwQzAwMDE0LAorCTB4MDEwMDAwMTQsIDB4MDEwMDAwMTQs
IDB4MDEwMDAwMTQsIDB4MDEwMDAwMTQsIDB4MDBDMDAwMTQsCisJMHgwMTAwMDAxNCwgMHgwMEMw
MDAxNCwgMHgwMEMwMDAxNCwgMHgwMEMwMDAxNCwgMHgwMEMwMDAxNCwKKwkweDAwMDAwMDE0LCAw
eDAwMDAwMDE0LCAweDAxQzAwMDE0LCAweDAwMDAwMDAzLCAweDAwMDAwMDAwLAorCTB4MDAwMDAz
MDAKK30sIHJ0bDgxODhlZV9iYl9hZ2NfdmFsczBbXSA9IHsKKwkweEZCMDAwMDAxLCAweEZCMDEw
MDAxLCAweEZCMDIwMDAxLCAweEZCMDMwMDAxLCAweEZCMDQwMDAxLAorCTB4RkIwNTAwMDEsIDB4
RkEwNjAwMDEsIDB4RjkwNzAwMDEsIDB4RjgwODAwMDEsIDB4RjcwOTAwMDEsCisJMHhGNjBBMDAw
MSwgMHhGNTBCMDAwMSwgMHhGNDBDMDAwMSwgMHhGMzBEMDAwMSwgMHhGMjBFMDAwMSwKKwkweEYx
MEYwMDAxLCAweEYwMTAwMDAxLCAweEVGMTEwMDAxLCAweEVFMTIwMDAxLCAweEVEMTMwMDAxLAor
CTB4RUMxNDAwMDEsIDB4RUIxNTAwMDEsIDB4RUExNjAwMDEsIDB4RTkxNzAwMDEsIDB4RTgxODAw
MDEsCisJMHhFNzE5MDAwMSwgMHhFNjFBMDAwMSwgMHhFNTFCMDAwMSwgMHhFNDFDMDAwMSwgMHhF
MzFEMDAwMSwKKwkweEUyMUUwMDAxLCAweEUxMUYwMDAxLCAweDhBMjAwMDAxLCAweDg5MjEwMDAx
LCAweDg4MjIwMDAxLAorCTB4ODcyMzAwMDEsIDB4ODYyNDAwMDEsIDB4ODUyNTAwMDEsIDB4ODQy
NjAwMDEsIDB4ODMyNzAwMDEsCisJMHg4MjI4MDAwMSwgMHg2QjI5MDAwMSwgMHg2QTJBMDAwMSwg
MHg2OTJCMDAwMSwgMHg2ODJDMDAwMSwKKwkweDY3MkQwMDAxLCAweDY2MkUwMDAxLCAweDY1MkYw
MDAxLCAweDY0MzAwMDAxLCAweDYzMzEwMDAxLAorCTB4NjIzMjAwMDEsIDB4NjEzMzAwMDEsIDB4
NDYzNDAwMDEsIDB4NDUzNTAwMDEsIDB4NDQzNjAwMDEsCisJMHg0MzM3MDAwMSwgMHg0MjM4MDAw
MSwgMHg0MTM5MDAwMSwgMHg0MDNBMDAwMSwgMHg0MDNCMDAwMSwKKwkweDQwM0MwMDAxLCAweDQw
M0QwMDAxLCAweDQwM0UwMDAxLCAweDQwM0YwMDAxLCAweEZCNDAwMDAxLAorCTB4RkI0MTAwMDEs
IDB4RkI0MjAwMDEsIDB4RkI0MzAwMDEsIDB4RkI0NDAwMDEsIDB4RkI0NTAwMDEsCisJMHhGQjQ2
MDAwMSwgMHhGQjQ3MDAwMSwgMHhGQjQ4MDAwMSwgMHhGQTQ5MDAwMSwgMHhGOTRBMDAwMSwKKwkw
eEY4NEIwMDAxLCAweEY3NEMwMDAxLCAweEY2NEQwMDAxLCAweEY1NEUwMDAxLCAweEY0NEYwMDAx
LAorCTB4RjM1MDAwMDEsIDB4RjI1MTAwMDEsIDB4RjE1MjAwMDEsIDB4RjA1MzAwMDEsIDB4RUY1
NDAwMDEsCisJMHhFRTU1MDAwMSwgMHhFRDU2MDAwMSwgMHhFQzU3MDAwMSwgMHhFQjU4MDAwMSwg
MHhFQTU5MDAwMSwKKwkweEU5NUEwMDAxLCAweEU4NUIwMDAxLCAweEU3NUMwMDAxLCAweEU2NUQw
MDAxLCAweEU1NUUwMDAxLAorCTB4RTQ1RjAwMDEsIDB4RTM2MDAwMDEsIDB4RTI2MTAwMDEsIDB4
QzM2MjAwMDEsIDB4QzI2MzAwMDEsCisJMHhDMTY0MDAwMSwgMHg4QjY1MDAwMSwgMHg4QTY2MDAw
MSwgMHg4OTY3MDAwMSwgMHg4ODY4MDAwMSwKKwkweDg3NjkwMDAxLCAweDg2NkEwMDAxLCAweDg1
NkIwMDAxLCAweDg0NkMwMDAxLCAweDY3NkQwMDAxLAorCTB4NjY2RTAwMDEsIDB4NjU2RjAwMDEs
IDB4NjQ3MDAwMDEsIDB4NjM3MTAwMDEsIDB4NjI3MjAwMDEsCisJMHg2MTczMDAwMSwgMHg2MDc0
MDAwMSwgMHg0Njc1MDAwMSwgMHg0NTc2MDAwMSwgMHg0NDc3MDAwMSwKKwkweDQzNzgwMDAxLCAw
eDQyNzkwMDAxLCAweDQxN0EwMDAxLCAweDQwN0IwMDAxLCAweDQwN0MwMDAxLAorCTB4NDA3RDAw
MDEsIDB4NDA3RTAwMDEsIDB4NDA3RjAwMDEKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3
bl9iYl9wcm9nIHJ0bDgxODhlZV9iYltdID0geworCXsKKwkJbml0ZW1zKHJ0bDgxODhlZV9iYl9w
aHlfcmVnczApLAorCQlydGw4MTg4ZWVfYmJfcGh5X3JlZ3MwLAorCQlydGw4MTg4ZWVfYmJfcGh5
X3ZhbHMwLAorCQl7ICgweDAxIHwgMHgwMikgfSwKKwkJTlVMTAorCX0KK307CisKK3N0YXRpYyBj
b25zdCBzdHJ1Y3QgcnR3bl9hZ2NfcHJvZyBydGw4MTg4ZWVfYWdjW10gPSB7CisJeworCQluaXRl
bXMocnRsODE4OGVlX2JiX2FnY192YWxzMCksCisJCXJ0bDgxODhlZV9iYl9hZ2NfdmFsczAsCisJ
CXsgMCB9LAorCQlOVUxMCisJfQorfTsKKworI2VuZGlmCS8qIFI4OEVFX1BSSVZfSCAqLwpkaWZm
IC0tZ2l0IGEvc3lzL2Rldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZV9wd3JzZXEuYyBiL3N5cy9k
ZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWVfcHdyc2VxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjAxZDE2ZjZmYzI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2Rl
di9ydHduL3J0bDgxODhlL3BjaS9yODhlZV9wd3JzZXEuYwpAQCAtMCwwICsxLDQ0IEBACisvKi0K
KyAqIENvcHlyaWdodCAoYykgMjAxOCBGYXJoYW4gS2hhbiA8a2hhbnpmQGdtYWlsLmNvbT4KKyAq
CisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlz
IHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJl
YnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Ug
YW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICog
VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1T
IEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElO
RyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUgorICogQU5ZIFNQ
RUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkg
REFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBP
UiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VO
Q0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRgorICogT1IgSU4gQ09O
TkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAq
IAorICogJEZyZWVCU0QkCisgKi8KKworI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxODhlL3BjaS9y
ODhlZV9wd3JzZXEuaD4KKworaW50IHI4OGVlX3B3cnNlcV9wb2xsaW5nKHN0cnVjdCBydHduX3Nv
ZnRjICpzYywgdWludDMyX3Qgb2Zmc2V0LCB1aW50MzJfdCBtc2ssIHVpbnQ4X3QgdmFsdWUpCit7
CisJdWludDhfdCByZWc7CisJdWludDMyX3QgcG9sbGluZzsKKwlmb3IocG9sbGluZz0wO3BvbGxp
bmc8NTAwMDtwb2xsaW5nKyspIHsKKwkJcmVnID0gcnR3bl9yZWFkXzEoc2MsIG9mZnNldCk7CisJ
CXJlZyAmPSBtc2s7CisJCWlmIChyZWcgPT0gKHZhbHVlICYgbXNrKSkKKwkJCWJyZWFrOworCQll
bHNlCisJCQlydHduX2RlbGF5KHNjLCAxMCk7CisJfQorCisJaWYgKHBvbGxpbmcgPiA1MDAwKQor
CQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIHZvaWQgcjg4ZWVf
cHdyc2VxX2RlbGF5KHN0cnVjdCBydHduX3NvZnRjICpzYywgdWludDMyX3Qgb2Zmc2V0KQorewor
CXJ0d25fZGVsYXkoc2MsIG9mZnNldCAqIDEwMDApOworfQorCmRpZmYgLS1naXQgYS9zeXMvZGV2
L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3B3cnNlcS5oIGIvc3lzL2Rldi9ydHduL3J0bDgxODhl
L3BjaS9yODhlZV9wd3JzZXEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNGE5MjAzMzc2MzMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZGV2L3J0d24vcnRsODE4OGUv
cGNpL3I4OGVlX3B3cnNlcS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qLQorICogQ29weXJpZ2h0IChj
KSAyMDE4IEZhcmhhbiBLaGFuIDxraGFuemZAZ21haWwuY29tPgorICoKKyAqIFBlcm1pc3Npb24g
dG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFu
eQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92
aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz
aW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg
UFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMK
KyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SCisgKiBBTlkgU1BFQ0lBTCwgRElSRUNULCBJ
TkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTCisgKiBXSEFU
U09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRI
RVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUiBUT1JU
SU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GCisgKiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
IFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorICogCisgKiAkRnJlZUJTRCQK
KyAqLworCisjaWZuZGVmIFJUTDg4RUVfUFdSU0VRX0gKKyNkZWZpbmUgUlRMODhFRV9QV1JTRVFf
SAorCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lzL2xvY2suaD4KKyNpbmNs
dWRlIDxzeXMvbXV0ZXguaD4KKyNpbmNsdWRlIDxzeXMvbWJ1Zi5oPgorI2luY2x1ZGUgPHN5cy9r
ZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+
CisjaW5jbHVkZSA8c3lzL21hbGxvYy5oPgorI2luY2x1ZGUgPHN5cy9xdWV1ZS5oPgorI2luY2x1
ZGUgPHN5cy90YXNrcXVldWUuaD4KKyNpbmNsdWRlIDxzeXMvYnVzLmg+CisjaW5jbHVkZSA8c3lz
L2VuZGlhbi5oPgorCisjaW5jbHVkZSA8bmV0L2lmLmg+CisjaW5jbHVkZSA8bmV0L2lmX3Zhci5o
PgorI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgorI2luY2x1ZGUgPG5ldC9pZl9tZWRpYS5oPgor
CisjaW5jbHVkZSA8bmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oPgorI2luY2x1ZGUgPG5ldDgwMjEx
L2llZWU4MDIxMV9yYWRpb3RhcC5oPgorI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV9yYXRl
Y3RsLmg+CisjaWZkZWYgIElFRUU4MDIxMV9TVVBQT1JUX1NVUEVSRworI2luY2x1ZGUgPG5ldDgw
MjExL2llZWU4MDIxMV9zdXBlcmcuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8ZGV2L3J0d24vaWZf
cnR3bnJlZy5oPgorI2luY2x1ZGUgPGRldi9ydHduL2lmX3J0d252YXIuaD4KKworaW50IHI4OGVl
X3B3cnNlcV9wb2xsaW5nKHN0cnVjdCBydHduX3NvZnRjICpzYywgdWludDMyX3Qgb2Zmc2V0LCB1
aW50MzJfdCBtc2ssIHVpbnQ4X3QgdmFsdWUpOworaW5saW5lIHZvaWQgcjg4ZWVfcHdyc2VxX2Rl
bGF5KHN0cnVjdCBydHduX3NvZnRjICpzYywgdWludDMyX3Qgb2Zmc2V0KTsKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3JlZy5oIGIvc3lzL2Rl
di9ydHduL3J0bDgxODhlL3BjaS9yODhlZV9yZWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZDU4NWY2Mjg0YWQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZGV2L3J0
d24vcnRsODE4OGUvcGNpL3I4OGVlX3JlZy5oCkBAIC0wLDAgKzEsMTIxIEBACisvKgkkT3BlbkJT
RDogaWZfcnR3bnJlZy5oLHYgMS4zIDIwMTUvMDYvMTQgMDg6MDI6NDcgc3RzcCBFeHAgJAkqLwor
CisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAxMCBEYW1pZW4gQmVyZ2FtaW5pIDxkYW1pZW4uYmVy
Z2FtaW5pQGZyZWUuZnI+CisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgU3RlZmFuIFNwZXJsaW5nIDxz
dHNwQG9wZW5ic2Qub3JnPgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFuZHJpeSBWb3Nrb2JvaW55
ayA8YXZvc0BGcmVlQlNELm9yZz4KKyAqIENvcHlyaWdodCAoYykgMjAxOCBGYXJoYW4gS2hhbiA8
a2hhbnpmQGdtYWlsLmNvbT4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBv
ciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGlu
IGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5E
IFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBU
SElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUg
TElBQkxFIEZPUgorICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJP
TSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJT04g
T0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5H
IE9VVCBPRgorICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0Ug
T0YgVEhJUyBTT0ZUV0FSRS4KKyAqIAorICogJEZyZWVCU0QkCisgKi8KKworI2lmbmRlZiBSODhF
RUVfUkVHX0gKKyNkZWZpbmUgUjg4RUVFX1JFR19ICisKKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4
MTkyYy9yOTJjX3JlZy5oPgorCisjZGVmaW5lIFI4OEVFX01BWF9DSEFJTlMJCTQKKworLyoKKyAq
IE1BQyByZWdpc3RlcnMuCisgKi8KKy8qIFN5c3RlbSBDb25maWd1cmF0aW9uLiAqLworI2RlZmlu
ZSBSODhFRV9QQ0lFX01JT19JTlRGCQkweDBlNAorI2RlZmluZSBSODhFRV9QQ0lFX01JT19JTlRE
CQkweDBlOAorLyogUENJZSBDb25maWd1cmF0aW9uLiAqLworI2RlZmluZSBSODhFRV9QQ0lFX0NU
UkxfUkVHCQkweDMwMAorI2RlZmluZSBSODhFRV9JTlRfTUlHCQkJMHgzMDQKKyNkZWZpbmUgUjg4
RUVfQkNOUV9ERVNBCQkJMHgzMDgKKyNkZWZpbmUgUjg4RUVfSFFfREVTQQkJCTB4MzEwCisjZGVm
aW5lIFI4OEVFX01HUV9ERVNBCQkJMHgzMTgKKyNkZWZpbmUgUjg4RUVfVk9RX0RFU0EJCQkweDMy
MAorI2RlZmluZSBSODhFRV9WSVFfREVTQQkJCTB4MzI4CisjZGVmaW5lIFI4OEVFX0JFUV9ERVNB
CQkJMHgzMzAKKyNkZWZpbmUgUjg4RUVfQktRX0RFU0EJCQkweDMzOAorI2RlZmluZSBSODhFRV9S
WF9ERVNBCQkJMHgzNDAKKyNkZWZpbmUgUjg4RUVfREJJCQkJMHgzNDgKKyNkZWZpbmUgUjg4RUVf
TURJTwkJCTB4MzU0CisjZGVmaW5lIFI4OEVFX0RCR19TRUwJCQkweDM2MAorI2RlZmluZSBSODhF
RV9QQ0lFX0hSUFdNCQkJMHgzNjEKKyNkZWZpbmUgUjg4RUVfUENJRV9IQ1BXTQkJCTB4MzYzCisj
ZGVmaW5lIFI4OEVFX1VBUlRfQ1RSTAkJCTB4MzY0CisjZGVmaW5lIFI4OEVFX1VBUlRfVFhfREVT
CQkweDM3MAorI2RlZmluZSBSODhFRV9VQVJUX1JYX0RFUwkJMHgzNzgKKworLyogRURDQSBSZWdp
c3RlcnMgKi8KKyNkZWZpbmUgUjg4RUVfU0lGU19DVFgJCQkweDA1MTQKKyNkZWZpbmUgUjg4RUVf
U0lGU19UUlgJCQkweDA1MTYKKyNkZWZpbmUgUjg4RUVfU0lGU19TUEVDCQkJMHgwNDI4CisjZGVm
aW5lIFI4OEVFX1NJRlNfU1BFQ19NQUMJCTB4MDYzQQorI2RlZmluZSBSODhFRV9TSUZTX1JFU1Bf
T0ZETQkJMHgwNjNFCisKKy8qIEJpdHMgZm9yIFI4OEVFX0dQSU9fTVVYQ0ZHLiAqLworI2RlZmlu
ZSBSODhFRV9HUElPX01VWENGR19SRktJTEwJCTB4MDAwOAorCisvKiBCaXRzIGZvciBSODhFRV9H
UElPX0lPX1NFTC4gKi8KKyNkZWZpbmUgUjg4RUVfR1BJT19JT19TRUxfMiAgICAgICAgICAgICAg
ICAgICAgIDB4MDA2MgorI2RlZmluZSBSODhFRV9HUElPX0lPX1NFTF9SRktJTEwJCTB4MDAwOAor
CisvKiBCaXRzIGZvciBSODhFRV9MRURDRkcyLiAqLworI2RlZmluZSBSODhFRV9MRURDRkcyX0VO
CQkJMHg2MAorI2RlZmluZSBSODhFRV9MRURDRkcyX0RJUwkJCTB4NjgKKworLyogQml0cyBmb3Ig
Ujg4RUVfSElNUi4gKi8KKyNkZWZpbmUgUjg4RUVfSU1SX1JPSwkJMHgwMDAwMDAwMQkvKiByZWNl
aXZlIERNQSBPSyAqLworI2RlZmluZSBSODhFRV9JTVJfVk9ET0sJCTB4MDAwMDAwMDIJLyogQUNf
Vk8gRE1BIE9LICovCisjZGVmaW5lIFI4OEVFX0lNUl9WSURPSwkJMHgwMDAwMDAwNAkvKiBBQ19W
SSBETUEgT0sgKi8KKyNkZWZpbmUgUjg4RUVfSU1SX0JFRE9LCQkweDAwMDAwMDA4CS8qIEFDX0JF
IERNQSBPSyAqLworI2RlZmluZSBSODhFRV9JTVJfQktET0sJCTB4MDAwMDAwMTAJLyogQUNfQksg
RE1BIE9LICovCisjZGVmaW5lIFI4OEVFX0lNUl9UWEJERVIJMHgwMDAwMDAyMAkvKiBiZWFjb24g
dHJhbnNtaXQgZXJyb3IgKi8KKyNkZWZpbmUgUjg4RUVfSU1SX01HTlRET0sJMHgwMDAwMDA0MAkv
KiBtYW5hZ2VtZW50IHF1ZXVlIERNQSBPSyAqLworI2RlZmluZSBSODhFRV9JTVJfVEJET0sJCTB4
MDAwMDAwODAJLyogYmVhY29uIHRyYW5zbWl0IE9LICovCisjZGVmaW5lIFI4OEVFX0lNUl9ISUdI
RE9LCTB4MDAwMDAxMDAJLyogaGlnaCBxdWV1ZSBETUEgT0sgKi8KKyNkZWZpbmUgUjg4RUVfSU1S
X0JET0sJCTB4MDAwMDAyMDAJLyogYmVhY29uIHF1ZXVlIERNQSBPSyAqLworI2RlZmluZSBSODhF
RV9JTVJfQVRJTUVORAkweDAwMDAwNDAwCS8qIEFUSU0gd2luZG93IGVuZCBpbnRlcnJ1cHQgKi8K
KyNkZWZpbmUgUjg4RUVfSU1SX1JEVQkJMHgwMDAwMDgwMAkvKiBSeCBkZXNjcmlwdG9yIHVuYXZh
aWxhYmxlICovCisjZGVmaW5lIFI4OEVFX0lNUl9SWEZPVlcJMHgwMDAwMTAwMAkvKiByZWNlaXZl
IEZJRk8gb3ZlcmZsb3cgKi8KKyNkZWZpbmUgUjg4RUVfSU1SX0JDTklOVAkweDAwMDAyMDAwCS8q
IGJlYWNvbiBETUEgaW50ZXJydXB0IDAgKi8KKyNkZWZpbmUgUjg4RUVfSU1SX1BTVElNRU9VVAkw
eDAwMDA0MDAwCS8qIHBvd2Vyc2F2ZSB0aW1lb3V0ICovCisjZGVmaW5lIFI4OEVFX0lNUl9UWEZP
VlcJMHgwMDAwODAwMAkvKiB0cmFuc21pdCBGSUZPIG92ZXJmbG93ICovCisjZGVmaW5lIFI4OEVF
X0lNUl9USU1FT1VUMQkweDAwMDEwMDAwCS8qIHRpbWVvdXQgaW50ZXJydXB0IDEgKi8KKyNkZWZp
bmUgUjg4RUVfSU1SX1RJTUVPVVQyCTB4MDAwMjAwMDAJLyogdGltZW91dCBpbnRlcnJ1cHQgMiAq
LworI2RlZmluZSBSODhFRV9JTVJfQkNORE9LMQkweDAwMDQwMDAwCS8qIGJlYWNvbiBxdWV1ZSBE
TUEgT0sgKDEpICovCisjZGVmaW5lIFI4OEVFX0lNUl9CQ05ET0syCTB4MDAwODAwMDAJLyogYmVh
Y29uIHF1ZXVlIERNQSBPSyAoMikgKi8KKyNkZWZpbmUgUjg4RUVfSU1SX0JDTkRPSzMJMHgwMDEw
MDAwMAkvKiBiZWFjb24gcXVldWUgRE1BIE9LICgzKSAqLworI2RlZmluZSBSODhFRV9JTVJfQkNO
RE9LNAkweDAwMjAwMDAwCS8qIGJlYWNvbiBxdWV1ZSBETUEgT0sgKDQpICovCisjZGVmaW5lIFI4
OEVFX0lNUl9CQ05ET0s1CTB4MDA0MDAwMDAJLyogYmVhY29uIHF1ZXVlIERNQSBPSyAoNSkgKi8K
KyNkZWZpbmUgUjg4RUVfSU1SX0JDTkRPSzYJMHgwMDgwMDAwMAkvKiBiZWFjb24gcXVldWUgRE1B
IE9LICg2KSAqLworI2RlZmluZSBSODhFRV9JTVJfQkNORE9LNwkweDAxMDAwMDAwCS8qIGJlYWNv
biBxdWV1ZSBETUEgT0sgKDcpICovCisjZGVmaW5lIFI4OEVFX0lNUl9CQ05ET0s4CTB4MDIwMDAw
MDAJLyogYmVhY29uIHF1ZXVlIERNQSBPSyAoOCkgKi8KKyNkZWZpbmUgUjg4RUVfSU1SX0JDTkRN
QUlOVDEJMHgwNDAwMDAwMAkvKiBiZWFjb24gRE1BIGludGVycnVwdCAxICovCisjZGVmaW5lIFI4
OEVFX0lNUl9CQ05ETUFJTlQyCTB4MDgwMDAwMDAJLyogYmVhY29uIERNQSBpbnRlcnJ1cHQgMiAq
LworI2RlZmluZSBSODhFRV9JTVJfQkNORE1BSU5UMwkweDEwMDAwMDAwCS8qIGJlYWNvbiBETUEg
aW50ZXJydXB0IDMgKi8KKyNkZWZpbmUgUjg4RUVfSU1SX0JDTkRNQUlOVDQJMHgyMDAwMDAwMAkv
KiBiZWFjb24gRE1BIGludGVycnVwdCA0ICovCisjZGVmaW5lIFI4OEVFX0lNUl9CQ05ETUFJTlQ1
CTB4NDAwMDAwMDAJLyogYmVhY29uIERNQSBpbnRlcnJ1cHQgNSAqLworI2RlZmluZSBSODhFRV9J
TVJfQkNORE1BSU5UNgkweDgwMDAwMDAwCS8qIGJlYWNvbiBETUEgaW50ZXJydXB0IDYgKi8KKyNk
ZWZpbmUgUjg4RUVfSElNUgkJMHhiMAorI2RlZmluZSBSODhFRV9JU1IJCTB4YjQKKyNkZWZpbmUg
Ujg4RUVfSElNUkUJCTB4YjgKKyNkZWZpbmUgUjg4RUVfSElTUkUJCTB4YmMKKworLyogU2hvcnRj
dXQuICovCisjZGVmaW5lIFI4OEVFX0lCU1NfSU5UX01BU0sJXAorCShSODhFRV9JTVJfQkNOSU5U
IHwgUjg4RUVfSU1SX1RCRE9LIHwgUjg4RUVfSU1SX1RCREVSKQorCisvKiBQb3dlciBPbi9PZmYg
RE1BICovCisjZGVmaW5lIFI4OEVFX1JYRE1BX0NPTlRST0wgICAgIDB4MDI4NgorI2RlZmluZQlS
ODhFRV9UUlhETUFfQ1RSTCAgICAgICAweDAxMEMKKworI2VuZGlmCS8qIFI5OUVFX1JFR19IICov
CmRpZmYgLS1naXQgYS9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3JmLmMgYi9zeXMv
ZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3JmLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjNmNGUyZTNkNjA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2Rldi9y
dHduL3J0bDgxODhlL3BjaS9yODhlZV9yZi5jCkBAIC0wLDAgKzEsMTA2IEBACisvKi0KKyAqIENv
cHlyaWdodCAoYykgMjAxNyBGYXJoYW4gS2hhbiA8a2hhbnpmQGdtYWlsLmNvbT4KKyAqCisgKiBQ
ZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3
YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3Jh
bnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo
aXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNP
RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBX
QVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwg
SU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUgorICogQU5ZIFNQRUNJQUws
IERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdF
UworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9G
SVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1Ig
T1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRgorICogT1IgSU4gQ09OTkVDVElP
TiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqLworCisj
aW5jbHVkZSA8c3lzL2NkZWZzLmg+CitfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CisKKyNpbmNsdWRl
ICJvcHRfd2xhbi5oIgorCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lzL2xv
Y2suaD4KKyNpbmNsdWRlIDxzeXMvbXV0ZXguaD4KKyNpbmNsdWRlIDxzeXMvbWJ1Zi5oPgorI2lu
Y2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8
c3lzL3N5c3RtLmg+CisjaW5jbHVkZSA8c3lzL21hbGxvYy5oPgorI2luY2x1ZGUgPHN5cy9xdWV1
ZS5oPgorI2luY2x1ZGUgPHN5cy90YXNrcXVldWUuaD4KKyNpbmNsdWRlIDxzeXMvYnVzLmg+Cisj
aW5jbHVkZSA8c3lzL2VuZGlhbi5oPgorI2luY2x1ZGUgPHN5cy9saW5rZXIuaD4KKworI2luY2x1
ZGUgPG1hY2hpbmUvYnVzLmg+CisjaW5jbHVkZSA8bWFjaGluZS9yZXNvdXJjZS5oPgorI2luY2x1
ZGUgPHN5cy9ybWFuLmg+CisKKyNpbmNsdWRlIDxuZXQvaWYuaD4KKyNpbmNsdWRlIDxuZXQvZXRo
ZXJuZXQuaD4KKyNpbmNsdWRlIDxuZXQvaWZfbWVkaWEuaD4KKworI2luY2x1ZGUgPG5ldDgwMjEx
L2llZWU4MDIxMV92YXIuaD4KKyNpbmNsdWRlIDxuZXQ4MDIxMS9pZWVlODAyMTFfcmFkaW90YXAu
aD4KKworI2luY2x1ZGUgPGRldi9ydHduL2lmX3J0d252YXIuaD4KKyNpbmNsdWRlIDxkZXYvcnR3
bi9pZl9ydHduX2RlYnVnLmg+CisKKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTg4ZS9yODhlLmg+
CisjaW5jbHVkZSA8ZGV2L3J0d24vcnRsODE4OGUvcjg4ZV9yZWcuaD4KKyNpbmNsdWRlIDxkZXYv
cnR3bi9wY2kvcnR3bl9wY2lfdmFyLmg+CisKKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTkyYy9y
OTJjX3Zhci5oPgorI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZS5oPgorI2lu
Y2x1ZGUgPGRldi9ydHduL3J0bDgxOTJjL3BjaS9yOTJjZV9yZWcuaD4KKyNpbmNsdWRlIDxkZXYv
cnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWVfcmVnLmg+CisKKyNpbmNsdWRlIDxuZXQ4MDIxMS9pZWVl
ODAyMTFfdmFyLmg+CisjaW5jbHVkZSA8bmV0ODAyMTEvaWVlZTgwMjExX3JhZGlvdGFwLmg+CisK
KyNpbmNsdWRlIDxkZXYvcnR3bi9pZl9ydHducmVnLmg+CisjaW5jbHVkZSA8ZGV2L3J0d24vaWZf
cnR3bnZhci5oPgorI2luY2x1ZGUgPGRldi9ydHduL2lmX3J0d25fZGVidWcuaD4KKworI2luY2x1
ZGUgPGRldi9ydHduL3BjaS9ydHduX3BjaV92YXIuaD4KKwordWludDMyX3QKK3I4OGVlX3JmX3Jl
YWQoc3RydWN0IHJ0d25fc29mdGMgKnNjLCBpbnQgY2hhaW4sIHVpbnQ4X3QgYWRkcikKK3sKKwlz
dHJ1Y3QgcjkyY19zb2Z0YyAqcnMgPSBzYy0+c2NfcHJpdjsKKwl1aW50MzJfdCByZWdbUjg4RUVf
TUFYX0NIQUlOU10sIHZhbDsKKworCXJlZ1swXSA9IHJ0d25fYmJfcmVhZChzYywgUjkyQ19IU1NJ
X1BBUkFNMigwKSk7CisKKwlpZiAoY2hhaW4gIT0gMCkKKwkJcmVnW2NoYWluXSA9IHJ0d25fYmJf
cmVhZChzYywgUjkyQ19IU1NJX1BBUkFNMihjaGFpbikpOworCWVsc2UKKwkJcmVnW2NoYWluXSA9
IHJlZ1swXTsKKworCisJcnR3bl9iYl93cml0ZShzYywgUjkyQ19IU1NJX1BBUkFNMigwKSwKKwkJ
cmVnWzBdICYgflI5MkNfSFNTSV9QQVJBTTJfUkVBRF9FREdFKTsKKwlydHduX2RlbGF5KHNjLCBy
cy0+cmZfcmVhZF9kZWxheVsxXSk7CisKKwlydHduX2JiX3dyaXRlKHNjLCBSOTJDX0hTU0lfUEFS
QU0yKGNoYWluKSwKKwkJKHJlZ1tjaGFpbl0gJiAoflI5MkNfSFNTSV9QQVJBTTJfUkVBRF9BRERS
X00pKSB8CisJCShhZGRyIDw8IDIzKSB8IFI5MkNfSFNTSV9QQVJBTTJfUkVBRF9FREdFKTsKKwly
dHduX2RlbGF5KHNjLCBycy0+cmZfcmVhZF9kZWxheVsyXSk7CisKKwlpZiAocnR3bl9iYl9yZWFk
KHNjLCBSOTJDX0hTU0lfUEFSQU0xKGNoYWluKSkgJiBSOTJDX0hTU0lfUEFSQU0xX1BJKQorCQl2
YWwgPSBydHduX2JiX3JlYWQoc2MsIFI5MkNfSFNQSV9SRUFEQkFDSyhjaGFpbikpOworCWVsc2UK
KwkJdmFsID0gcnR3bl9iYl9yZWFkKHNjLCBSOTJDX0xTU0lfUkVBREJBQ0soY2hhaW4pKTsKKwor
CXJldHVybiB2YWw7Cit9CisKK3ZvaWQKK3I4OGVlX3JmX3dyaXRlKHN0cnVjdCBydHduX3NvZnRj
ICpzYywgaW50IGNoYWluLCB1aW50OF90IGFkZHIsCisJdWludDMyX3QgdmFsKQoreworCXJ0d25f
YmJfd3JpdGUoc2MsIFI5MkNfTFNTSV9QQVJBTShjaGFpbiksCisJCSgoYWRkciA8PCBSOTJDX0xT
U0lfUEFSQU1fQUREUl9TKSB8CisJCSh2YWwgJiBSOTJDX0xTU0lfUEFSQU1fREFUQV9NKSkgJiAw
eDBmZmZmZmZmKTsKK30KZGlmZiAtLWdpdCBhL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4
ZWVfcnguYyBiL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWVfcnguYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDljNTY2ZDM3YTIKLS0tIC9kZXYvbnVsbAor
KysgYi9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3J4LmMKQEAgLTAsMCArMSwxMzkg
QEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDE3IEZhcmhhbiBLaGFuIDxraGFuemZAZ21haWwu
Y29tPgorICoKKyAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmli
dXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQorICogcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVl
IGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4K
KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgVEhFIEFVVEhPUiBE
SVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMKKyAqIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUg
SU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SCisg
KiBBTlkgU1BFQ0lBTCwgRElSRUNULCBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IE9SIEFOWSBEQU1BR0VTCisgKiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNF
LCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4KKyAqIEFDVElPTiBPRiBDT05UUkFDVCwg
TkVHTElHRU5DRSBPUiBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GCisgKiBP
UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRX
QVJFLgorICovCisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRCQi
KTsKKworI2luY2x1ZGUgIm9wdF93bGFuLmgiCisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNp
bmNsdWRlIDxzeXMvbG9jay5oPgorI2luY2x1ZGUgPHN5cy9tdXRleC5oPgorI2luY2x1ZGUgPHN5
cy9tYnVmLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQu
aD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKyNpbmNsdWRlIDxzeXMvbWFsbG9jLmg+CisjaW5j
bHVkZSA8c3lzL3F1ZXVlLmg+CisjaW5jbHVkZSA8c3lzL3Rhc2txdWV1ZS5oPgorI2luY2x1ZGUg
PHN5cy9idXMuaD4KKyNpbmNsdWRlIDxzeXMvZW5kaWFuLmg+CisjaW5jbHVkZSA8c3lzL2xpbmtl
ci5oPgorCisjaW5jbHVkZSA8bWFjaGluZS9idXMuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL3Jlc291
cmNlLmg+CisjaW5jbHVkZSA8c3lzL3JtYW4uaD4KKworI2luY2x1ZGUgPG5ldC9pZi5oPgorI2lu
Y2x1ZGUgPG5ldC9ldGhlcm5ldC5oPgorI2luY2x1ZGUgPG5ldC9pZl9tZWRpYS5oPgorCisjaW5j
bHVkZSA8bmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oPgorI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4
MDIxMV9yYWRpb3RhcC5oPgorCisjaW5jbHVkZSA8ZGV2L3J0d24vaWZfcnR3bnZhci5oPgorI2lu
Y2x1ZGUgPGRldi9ydHduL2lmX3J0d25fZGVidWcuaD4KKworI2luY2x1ZGUgPGRldi9ydHduL3J0
bDgxODhlL3I4OGUuaD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTg4ZS9yODhlX3JlZy5oPgor
I2luY2x1ZGUgPGRldi9ydHduL3BjaS9ydHduX3BjaV92YXIuaD4KKworI2luY2x1ZGUgPGRldi9y
dHduL3J0bDgxODhlL3BjaS9yODhlZS5oPgorI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxOTJjL3Bj
aS9yOTJjZV9yZWcuaD4KKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWVfcmVn
Lmg+CisKK2ludAorcjg4ZWVfY2xhc3NpZnlfaW50cihzdHJ1Y3QgcnR3bl9zb2Z0YyAqc2MsIHZv
aWQgKmFyZywgaW50IGxlbiBfX3VudXNlZCkKK3sKKwl1aW50MzJfdCBzdGF0dXM7CisJdWludDMy
X3Qgc3RhdHVzYjsKKwlpbnQgKnJpbmdzID0gYXJnOworCWludCByZXQ7CisKKwkqcmluZ3MgPSAw
OworCisJcnR3bl93cml0ZV80KHNjLCBSODhFRV9ISU1SLCAweDApOworCXJ0d25fd3JpdGVfNChz
YywgUjg4RUVfSElNUkUsIDB4MCk7CisKKwlzdGF0dXMgPSBydHduX3JlYWRfNChzYywgUjg4RUVf
SVNSKSAmIDB4MjAwMDg0ZmY7CisJcnR3bl93cml0ZV80KHNjLCBSODhFRV9JU1IsIHN0YXR1cyk7
CisJc3RhdHVzYiA9IHJ0d25fcmVhZF80KHNjLCBSODhFRV9ISVNSRSkgJiAweDEwMDsKKwlydHdu
X3dyaXRlXzQoc2MsIFI4OEVFX0hJU1JFLCBzdGF0dXNiKTsKKworCWlmICghc3RhdHVzIHx8IHN0
YXR1c2IgPT0gMHhmZmZmKSB7CisJCXJldHVybiAwOworCX0KKworCS8qIEFjayBpbnRlcnJ1cHRz
LiAqLworCWlmIChzdGF0dXNiICYgUjkyQ19JTVJfQkRPSykKKwkJKnJpbmdzIHw9ICgxIDw8IFJU
V05fUENJX0JFQUNPTl9RVUVVRSk7CisJaWYgKHN0YXR1c2IgJiBSOTJDX0lNUl9ISUdIRE9LKQor
CQkqcmluZ3MgfD0gKDEgPDwgUlRXTl9QQ0lfSElHSF9RVUVVRSk7CisJaWYgKHN0YXR1c2IgJiBS
OTJDX0lNUl9NR05URE9LKQorCQkqcmluZ3MgfD0gKDEgPDwgUlRXTl9QQ0lfTUdOVF9RVUVVRSk7
CisJaWYgKHN0YXR1c2IgJiBSOTJDX0lNUl9CS0RPSykKKwkJKnJpbmdzIHw9ICgxIDw8IFJUV05f
UENJX0JLX1FVRVVFKTsKKwlpZiAoc3RhdHVzYiAmIFI5MkNfSU1SX0JFRE9LKQorCQkqcmluZ3Mg
fD0gKDEgPDwgUlRXTl9QQ0lfQkVfUVVFVUUpOworCWlmIChzdGF0dXNiICYgUjkyQ19JTVJfVklE
T0spCisJCSpyaW5ncyB8PSAoMSA8PCBSVFdOX1BDSV9WSV9RVUVVRSk7CisJaWYgKHN0YXR1c2Ig
JiBSOTJDX0lNUl9WT0RPSykKKwkJKnJpbmdzIHw9ICgxIDw8IFJUV05fUENJX1ZPX1FVRVVFKTsK
KworCXJldCA9IDA7CisJaWYgKHN0YXR1cyAmIFI5MkNfSU1SX1JYRk9WVykKKwkJcmV0IHw9IFJU
V05fUENJX0lOVFJfUlhfT1ZFUkZMT1c7CisJaWYgKHN0YXR1cyAmIFI5MkNfSU1SX1JEVSkKKwkJ
cmV0IHw9IFJUV05fUENJX0lOVFJfUlhfREVTQ19VTkFWQUlMOworCWlmIChzdGF0dXMgJiBSOTJD
X0lNUl9ST0spCisJCXJldCB8PSBSVFdOX1BDSV9JTlRSX1JYX0RPTkU7CisJaWYgKHN0YXR1cyAm
IFI5MkNfSU1SX1RYRk9WVykKKwkJcmV0IHw9IFJUV05fUENJX0lOVFJfVFhfT1ZFUkZMT1c7CisJ
aWYgKHN0YXR1cyAmIFI5MkNfSU1SX1BTVElNRU9VVCkKKwkJcmV0IHw9IFJUV05fUENJX0lOVFJf
UFNfVElNRU9VVDsKKworCXJldHVybiAocmV0KTsKK30KKwordm9pZAorcjg4ZWVfZW5hYmxlX2lu
dHIoc3RydWN0IHJ0d25fcGNpX3NvZnRjICpwYykKK3sKKwlzdHJ1Y3QgcnR3bl9zb2Z0YyAqc2Mg
PSAmcGMtPnBjX3NjOworCisJLyogRW5hYmxlIGludGVycnVwdHMgKi8KKwlydHduX3dyaXRlXzQo
c2MsIFI4OEVFX0hJTVIsIDB4MjAwMDg0ZmYpOworCXJ0d25fd3JpdGVfNChzYywgUjg4RUVfSElN
UkUsIDB4MTAwKTsKKworICAgICAgICAvKiB0aGVyZSBhcmUgc29tZSBDMkggQ01EcyBoYXZlIGJl
ZW4gc2VudAorICAgICAgICAgKiBiZWZvcmUgc3lzdGVtIGludGVycnVwdCBpcyBlbmFibGVkLCBl
LmcuLCBDMkgsIENQV00uCisgICAgICAgICAqIFNvIHdlIG5lZWQgdG8gY2xlYXIgYWxsIEMySCBl
dmVudHMgdGhhdCBGVyBoYXMgbm90aWZpZWQsCisgICAgICAgICAqIG90aGVyd2lzZSBGVyB3b24n
dCBzY2hlZHVsZSBhbnkgY29tbWFuZHMgYW55bW9yZS4KKyAgICAgICAgICovCisJcnR3bl93cml0
ZV8xKHNjLCAweDAxQUYsIDApOworICAgICAgICAvKmVuYWJsZSBzeXN0ZW0gaW50ZXJydXB0Ki8K
KwlydHduX3dyaXRlXzQoc2MsIDB4MDA1OCwgMHhDMCk7Cit9CisKK3ZvaWQKK3I4OGVlX3N0YXJ0
X3hmZXJzKHN0cnVjdCBydHduX3NvZnRjICpzYykKK3sKKwlydHduX3dyaXRlXzQoc2MsIDB4MDBC
MCwgMHgyMDAwODRmZik7CisJcnR3bl93cml0ZV80KHNjLCAweDAwQjgsIDB4MTAwKTsKKwlydHdu
X3dyaXRlXzEoc2MsIDB4MDFBRiwgMHgwKTsKKwlydHduX3dyaXRlXzQoc2MsIDB4MDA1OCwgMHhj
MCk7Cit9CisKKyN1bmRlZiBSODhFRV9JTlRfRU5BQkxFCmRpZmYgLS1naXQgYS9zeXMvZGV2L3J0
d24vcnRsODE4OGUvcGNpL3I4OGVlX3R4LmMgYi9zeXMvZGV2L3J0d24vcnRsODE4OGUvcGNpL3I4
OGVlX3R4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyZjA1NWFl
Mjc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2Rldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZV90
eC5jCkBAIC0wLDAgKzEsMTExIEBACisvKgkkT3BlbkJTRDogaWZfcnR3bi5jLHYgMS42IDIwMTUv
MDgvMjggMDA6MDM6NTMgZGVyYWFkdCBFeHAgJAkqLworCisvKi0KKyAqIENvcHlyaWdodCAoYykg
MjAxMCBEYW1pZW4gQmVyZ2FtaW5pIDxkYW1pZW4uYmVyZ2FtaW5pQGZyZWUuZnI+CisgKiBDb3B5
cmlnaHQgKGMpIDIwMTUgU3RlZmFuIFNwZXJsaW5nIDxzdHNwQG9wZW5ic2Qub3JnPgorICogQ29w
eXJpZ2h0IChjKSAyMDE2IEFuZHJpeSBWb3Nrb2JvaW55ayA8YXZvc0BGcmVlQlNELm9yZz4KKyAq
IENvcHlyaWdodCAoYykgMjAxOCBGYXJoYW4gS2hhbiA8a2hhbnpmQGdtYWlsLmNvbT4KKyAqCisg
KiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNv
ZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkg
Z3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhF
IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFM
TCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBB
TEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUgorICogQU5ZIFNQRUNJ
QUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFN
QUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQ
Uk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0Ug
T1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRgorICogT1IgSU4gQ09OTkVD
VElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqLwor
CisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CitfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CisKKyNpbmNs
dWRlICJvcHRfd2xhbi5oIgorCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lz
L2xvY2suaD4KKyNpbmNsdWRlIDxzeXMvbXV0ZXguaD4KKyNpbmNsdWRlIDxzeXMvbWJ1Zi5oPgor
I2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVk
ZSA8c3lzL3N5c3RtLmg+CisjaW5jbHVkZSA8c3lzL21hbGxvYy5oPgorI2luY2x1ZGUgPHN5cy9x
dWV1ZS5oPgorI2luY2x1ZGUgPHN5cy90YXNrcXVldWUuaD4KKyNpbmNsdWRlIDxzeXMvYnVzLmg+
CisjaW5jbHVkZSA8c3lzL2VuZGlhbi5oPgorI2luY2x1ZGUgPHN5cy9saW5rZXIuaD4KKworI2lu
Y2x1ZGUgPG1hY2hpbmUvYnVzLmg+CisjaW5jbHVkZSA8bWFjaGluZS9yZXNvdXJjZS5oPgorI2lu
Y2x1ZGUgPHN5cy9ybWFuLmg+CisKKyNpbmNsdWRlIDxuZXQvaWYuaD4KKyNpbmNsdWRlIDxuZXQv
ZXRoZXJuZXQuaD4KKyNpbmNsdWRlIDxuZXQvaWZfbWVkaWEuaD4KKworI2luY2x1ZGUgPG5ldDgw
MjExL2llZWU4MDIxMV92YXIuaD4KKyNpbmNsdWRlIDxuZXQ4MDIxMS9pZWVlODAyMTFfcmFkaW90
YXAuaD4KKworI2luY2x1ZGUgPGRldi9ydHduL2lmX3J0d252YXIuaD4KKyNpbmNsdWRlIDxkZXYv
cnR3bi9pZl9ydHduX2RlYnVnLmg+CisKKyNpbmNsdWRlIDxkZXYvcnR3bi9wY2kvcnR3bl9wY2lf
dmFyLmg+CisKKyNpbmNsdWRlIDxkZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWUuaD4KKyNpbmNs
dWRlIDxkZXYvcnR3bi9ydGw4MTg4ZS9wY2kvcjg4ZWVfdHhfZGVzYy5oPgorCisKK3ZvaWQKK3I4
OGVlX3NldHVwX3R4X2Rlc2Moc3RydWN0IHJ0d25fcGNpX3NvZnRjICpwYywgdm9pZCAqZGVzYywK
KyAgICB1aW50MzJfdCBuZXh0X2Rlc2NfYWRkcikKK3sKKwlzdHJ1Y3Qgcjg4ZWVfdHhfZGVzYyAq
dHhkID0gZGVzYzsKKworCS8qIHNldHVwIHR4IGRlc2MgKi8KKwl0eGQtPm5leHRkZXNjYWRkciA9
IGh0b2xlMzIobmV4dF9kZXNjX2FkZHIpOworfQorCit2b2lkCityODhlZV90eF9wb3N0c2V0dXAo
c3RydWN0IHJ0d25fcGNpX3NvZnRjICpwYywgdm9pZCAqZGVzYywKKyAgICBidXNfZG1hX3NlZ21l
bnRfdCBzZWdzW10pCit7CisJLyogTm90IGltcGxlbWVudGVkICovCit9CisKK3ZvaWQKK3I4OGVl
X2NvcHlfdHhfZGVzYyh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmMpCit7CisJc3RydWN0IHI4
OGVlX3R4X2Rlc2MgKnR4ZCA9IGRlc3Q7CisJc2l6ZV90IGxlbiA9IHNpemVvZihzdHJ1Y3Qgcjky
Y190eF9kZXNjKSArCisJICAgIHNpemVvZih0eGQtPnR4YnVmc2l6ZSkgKyBzaXplb2YodHhkLT5w
YWQpOworCisJaWYgKHNyYyAhPSBOVUxMKQorCQltZW1jcHkoZGVzdCwgc3JjLCBsZW4pOworCWVs
c2UKKwkJbWVtc2V0KGRlc3QsIDAsIGxlbik7Cit9CisKK3ZvaWQKK3I4OGVlX2R1bXBfdHhfZGVz
YyhzdHJ1Y3QgcnR3bl9zb2Z0YyAqc2MsIGNvbnN0IHZvaWQgKmRlc2MpCit7CisjaWZkZWYgUlRX
Tl9ERUJVRworCWNvbnN0IHN0cnVjdCByODhlZV90eF9kZXNjICp0eGQgPSBkZXNjOworCisJUlRX
Tl9EUFJJTlRGKHNjLCBSVFdOX0RFQlVHX1hNSVRfREVTQywKKwkgICAgIiVzOiBsZW4gJWQsIG9m
ZiAlZCwgZmxhZ3MwICUwMlgsIGR3OiAxICUwOFgsIDIgJTA4WCwgMyAlMDRYICIKKwkgICAgIihz
ZXEgJTA0WCksIDQgJTA4WCwgNSAlMDhYLCA2ICUwOFgsIHNpemUgJTA0WCwgcGFkICUwNFgsICIK
KwkgICAgImFkZHI6ICUwOFggKDY0OiAlMDhYKSwgbmV4dDogJTA4WCAoNjQ6ICUwOFgpLCAiCisJ
ICAgICJyc3ZkOiAlMDhYICUwOFggJTA4WCAlMDhYXG4iLAorCSAgICBfX2Z1bmNfXywgbGUxNnRv
aCh0eGQtPnBrdGxlbiksIHR4ZC0+b2Zmc2V0LCB0eGQtPmZsYWdzMCwKKwkgICAgbGUzMnRvaCh0
eGQtPnR4ZHcxKSwgbGUzMnRvaCh0eGQtPnR4ZHcyKSwgbGUxNnRvaCh0eGQtPnR4ZHczKSwKKwkg
ICAgbGUxNnRvaCh0eGQtPnR4ZHNlcSksIGxlMzJ0b2godHhkLT50eGR3NCksIGxlMzJ0b2godHhk
LT50eGR3NSksCisJICAgIGxlMzJ0b2godHhkLT50eGR3NiksIGxlMTZ0b2godHhkLT50eGJ1ZnNp
emUpLCBsZTE2dG9oKHR4ZC0+cGFkKSwKKwkgICAgbGUzMnRvaCh0eGQtPnR4YnVmYWRkciksIGxl
MzJ0b2godHhkLT50eGJ1ZmFkZHI2NCksCisJICAgIGxlMzJ0b2godHhkLT5uZXh0ZGVzY2FkZHIp
LCBsZTMydG9oKHR4ZC0+bmV4dGRlc2NhZGRyNjQpLAorCSAgICBsZTMydG9oKHR4ZC0+cmVzZXJ2
ZWRbMF0pLCBsZTMydG9oKHR4ZC0+cmVzZXJ2ZWRbMV0pLAorCSAgICBsZTMydG9oKHR4ZC0+cmVz
ZXJ2ZWRbMl0pLCBsZTMydG9oKHR4ZC0+cmVzZXJ2ZWRbM10pKTsKKyNlbmRpZgorfQpkaWZmIC0t
Z2l0IGEvc3lzL2Rldi9ydHduL3J0bDgxODhlL3BjaS9yODhlZV90eF9kZXNjLmggYi9zeXMvZGV2
L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3R4X2Rlc2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uOTgwODk1YjdjYTIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvZGV2
L3J0d24vcnRsODE4OGUvcGNpL3I4OGVlX3R4X2Rlc2MuaApAQCAtMCwwICsxLDU2IEBACisvKgkk
T3BlbkJTRDogaWZfcnR3bnJlZy5oLHYgMS4zIDIwMTUvMDYvMTQgMDg6MDI6NDcgc3RzcCBFeHAg
JAkqLworCisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAxMCBEYW1pZW4gQmVyZ2FtaW5pIDxkYW1p
ZW4uYmVyZ2FtaW5pQGZyZWUuZnI+CisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgU3RlZmFuIFNwZXJs
aW5nIDxzdHNwQG9wZW5ic2Qub3JnPgorICogQ29weXJpZ2h0IChjKSAyMDE2IEFuZHJpeSBWb3Nr
b2JvaW55ayA8YXZvc0BGcmVlQlNELm9yZz4KKyAqIENvcHlyaWdodCAoYykgMjAxOCBGYXJoYW4g
S2hhbiA8a2hhbnpmQGdtYWlsLmNvbT4KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwg
bW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKyAqIHB1cnBvc2Ug
d2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBw
ZWFyIGluIGFsbCBjb3BpZXMuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ
UyIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTCisgKiBXSVRIIFJFR0FS
RCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCisg
KiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRI
T1IgQkUgTElBQkxFIEZPUgorICogQU5ZIFNQRUNJQUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUworICogV0hBVFNPRVZFUiBSRVNVTFRJ
TkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCisgKiBB
Q1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBB
UklTSU5HIE9VVCBPRgorICogT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9S
TUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqIAorICogJEZyZWVCU0QkCisgKi8KKworI2lmbmRl
ZiBSODhFRV9UWF9ERVNDX0gKKyNkZWZpbmUgUjg4RUVfVFhfREVTQ19ICisKKyNpbmNsdWRlIDxk
ZXYvcnR3bi9ydGw4MTg4ZS9yODhlX3R4X2Rlc2MuaD4KKworLyogVHggTUFDIGRlc2NyaXB0b3Ig
KFBDSWUpLiAqLworc3RydWN0IHI4OGVlX3R4X2Rlc2MgeworCXVpbnQxNl90IAlwa3RsZW47CisJ
dWludDhfdAkJb2Zmc2V0OworCXVpbnQ4X3QJCWZsYWdzMDsKKworCXVpbnQzMl90CXR4ZHcxOwor
CXVpbnQzMl90CXR4ZHcyOworCXVpbnQxNl90CXR4ZHczOworCXVpbnQxNl90CXR4ZHNlcTsKKwor
CXVpbnQzMl90CXR4ZHc0OworCXVpbnQzMl90CXR4ZHc1OworCXVpbnQzMl90CXR4ZHc2OworCisJ
dWludDE2X3QJdHhidWZzaXplOworCXVpbnQxNl90CXBhZDsKKworCXVpbnQzMl90CXR4YnVmYWRk
cjsKKwl1aW50MzJfdAl0eGJ1ZmFkZHI2NDsKKworCXVpbnQzMl90CW5leHRkZXNjYWRkcjsKKwl1
aW50MzJfdAluZXh0ZGVzY2FkZHI2NDsKKworCXVpbnQzMl90CXJlc2VydmVkWzRdOworfSBfX3Bh
Y2tlZCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQpKSk7CisKKyNlbmRpZgkvKiBSODhFRV9UWF9E
RVNDX0ggKi8KZGlmZiAtLWdpdCBhL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9yODhlLmggYi9zeXMv
ZGV2L3J0d24vcnRsODE4OGUvcjg4ZS5oCmluZGV4IDNhM2MwODY1YTQzLi4zMTYzOTU2M2RkNSAx
MDA2NDQKLS0tIGEvc3lzL2Rldi9ydHduL3J0bDgxODhlL3I4OGUuaAorKysgYi9zeXMvZGV2L3J0
d24vcnRsODE4OGUvcjg4ZS5oCkBAIC01MCw2ICs1MCw4IEBAIHVpbnQ4X3QJcjg4ZV90ZW1wX3Jl
YWQoc3RydWN0IHJ0d25fc29mdGMgKik7CiAvKiByODhlX2NoYW4uYyAqLwogdm9pZAlyODhlX2dl
dF90eHBvd2VyKHN0cnVjdCBydHduX3NvZnRjICosIGludCwKIAkgICAgc3RydWN0IGllZWU4MDIx
MV9jaGFubmVsICosIHVpbnQ4X3RbXSk7Cit2b2lkCXI4OGVlX2dldF90eHBvd2VyKHN0cnVjdCBy
dHduX3NvZnRjICosIGludCwKKwkgICAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICosIHVpbnQ4
X3RbXSk7CiB2b2lkCXI4OGVfc2V0X2J3MjAoc3RydWN0IHJ0d25fc29mdGMgKiwgdWludDhfdCk7
CiB2b2lkCXI4OGVfc2V0X2dhaW4oc3RydWN0IHJ0d25fc29mdGMgKiwgdWludDhfdCk7CiAKQEAg
LTU4LDYgKzYwLDcgQEAgdm9pZAlyODhlX3NldF9nYWluKHN0cnVjdCBydHduX3NvZnRjICosIHVp
bnQ4X3QpOwogaW50CXI4OGVfZndfY21kKHN0cnVjdCBydHduX3NvZnRjICosIHVpbnQ4X3QsIGNv
bnN0IHZvaWQgKiwgaW50KTsKIHZvaWQJcjg4ZV9md19yZXNldChzdHJ1Y3QgcnR3bl9zb2Z0YyAq
LCBpbnQpOwogdm9pZAlyODhlX2Z3X2Rvd25sb2FkX2VuYWJsZShzdHJ1Y3QgcnR3bl9zb2Z0YyAq
LCBpbnQpOwordm9pZAlyODhlZV9md19kb3dubG9hZF9lbmFibGUoc3RydWN0IHJ0d25fc29mdGMg
KiwgaW50KTsKICNlbmRpZgogdm9pZAlyODhlX21hY2lkX2VuYWJsZV9saW5rKHN0cnVjdCBydHdu
X3NvZnRjICosIGludCwgaW50KTsKIHZvaWQJcjg4ZV9zZXRfbWVkaWFfc3RhdHVzKHN0cnVjdCBy
dHduX3NvZnRjICosIGludCk7CkBAIC02OCw4ICs3MSwxMSBAQCBpbnQJcjg4ZV9zZXRfcHdybW9k
ZShzdHJ1Y3QgcnR3bl9zb2Z0YyAqLCBzdHJ1Y3QgaWVlZTgwMjExdmFwICosIGludCk7CiAKIC8q
IHI4OGVfaW5pdC5jICovCiB2b2lkCXI4OGVfaW5pdF9iYihzdHJ1Y3QgcnR3bl9zb2Z0YyAqKTsK
K3ZvaWQJcjg4ZWVfaW5pdF9iYihzdHJ1Y3QgcnR3bl9zb2Z0YyAqKTsKIHZvaWQJcjg4ZV9pbml0
X3JmKHN0cnVjdCBydHduX3NvZnRjICopOwogaW50CXI4OGVfcG93ZXJfb24oc3RydWN0IHJ0d25f
c29mdGMgKik7CitpbnQJcjg4ZWVfcG93ZXJfb24oc3RydWN0IHJ0d25fc29mdGMgKik7CitpbnQJ
cjg4ZWVfbGx0X2luaXQoc3RydWN0IHJ0d25fc29mdGMgKnNjKTsKIAogLyogcjg4ZV9sZWQuYyAq
Lwogdm9pZAlyODhlX3NldF9sZWQoc3RydWN0IHJ0d25fc29mdGMgKiwgaW50LCBpbnQpOwpAQCAt
NzksNiArODUsNyBAQCB2b2lkCXI4OGVfcmZfd3JpdGUoc3RydWN0IHJ0d25fc29mdGMgKiwgaW50
LCB1aW50OF90LCB1aW50MzJfdCk7CiAKIC8qIHI4OGVfcm9tLmMgKi8KIHZvaWQJcjg4ZV9wYXJz
ZV9yb20oc3RydWN0IHJ0d25fc29mdGMgKiwgdWludDhfdCAqKTsKK3ZvaWQJcjg4ZWVfcGFyc2Vf
cm9tKHN0cnVjdCBydHduX3NvZnRjICosIHVpbnQ4X3QgKik7CiAKIC8qIHI4OGVfcnguYyAqLwog
dm9pZAlyODhlX3JhdGVjdGxfdHhfY29tcGxldGUoc3RydWN0IHJ0d25fc29mdGMgKiwgdWludDhf
dCAqLCBpbnQpOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9ydHduL3J0bDgxODhlL3I4OGVfZncuYyBi
L3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9yODhlX2Z3LmMKaW5kZXggNGFlNGFiYmRhMWQuLmQyMjBi
YWE0MjJhIDEwMDY0NAotLS0gYS9zeXMvZGV2L3J0d24vcnRsODE4OGUvcjg4ZV9mdy5jCisrKyBi
L3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9yODhlX2Z3LmMKQEAgLTEzMCw2ICsxMzAsMjcgQEAgcjg4
ZV9md19kb3dubG9hZF9lbmFibGUoc3RydWN0IHJ0d25fc29mdGMgKnNjLCBpbnQgZW5hYmxlKQog
fQogI2VuZGlmCiAKK3ZvaWQKK3I4OGVlX2Z3X2Rvd25sb2FkX2VuYWJsZShzdHJ1Y3QgcnR3bl9z
b2Z0YyAqc2MsIGludCBlbmFibGUpCit7CisJdWludDhfdCB0bXA7CisJaWYgKGVuYWJsZSkgewor
CQl0bXAgPSBydHduX3JlYWRfMShzYywgUjkyQ19TWVNfRlVOQ19FTisxKTsKKwkJcnR3bl93cml0
ZV8xKHNjLCBSOTJDX1NZU19GVU5DX0VOKzEsIHRtcCB8IDB4MDQpOworCisJCXRtcCA9IHJ0d25f
cmVhZF8xKHNjLCBSOTJDX01DVUZXREwpOworCQlydHduX3dyaXRlXzEoc2MsIFI5MkNfTUNVRldE
TCwgdG1wIHwgMHgwMSk7CisKKwkJdG1wID0gcnR3bl9yZWFkXzEoc2MsIFI5MkNfTUNVRldETCAr
IDIpOworCQlydHduX3dyaXRlXzEoc2MsIFI5MkNfTUNVRldETCArIDIsIHRtcCAmIDB4ZjcpOwor
CX0gZWxzZSB7CisJCXRtcCA9IHJ0d25fcmVhZF8xKHNjLCBSOTJDX01DVUZXREwpOworCQlydHdu
X3dyaXRlXzEoc2MsIFI5MkNfTUNVRldETCwgdG1wICYgMHhmZSk7CisKKwkJcnR3bl93cml0ZV8x
KHNjLCBSOTJDX01DVUZXREwgKyAxLCAweDAwKTsKKwl9Cit9CisKIHZvaWQKIHI4OGVfbWFjaWRf
ZW5hYmxlX2xpbmsoc3RydWN0IHJ0d25fc29mdGMgKnNjLCBpbnQgaWQsIGludCBlbmFibGUpCiB7
CkBAIC0xNTEsNyArMTcyLDYgQEAgdm9pZAogcjg4ZV9zZXRfbWVkaWFfc3RhdHVzKHN0cnVjdCBy
dHduX3NvZnRjICpzYywgaW50IG1hY2lkKQogewogCXN0cnVjdCByODhlX2Z3X2NtZF9tc3JycHQg
c3RhdHVzOwotCiAJaWYgKG1hY2lkICYgUlRXTl9NQUNJRF9WQUxJRCkKIAkJc3RhdHVzLm1zcmIw
ID0gUjg4RV9NU1JSUFRfQjBfQVNTT0M7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9ydHdu
L3J0bDgxODhlL3I4OGVfaW5pdC5jIGIvc3lzL2Rldi9ydHduL3J0bDgxODhlL3I4OGVfaW5pdC5j
CmluZGV4IDIwMmNlYzE1NGFhLi5iMzZjN2RmYWE3YiAxMDA2NDQKLS0tIGEvc3lzL2Rldi9ydHdu
L3J0bDgxODhlL3I4OGVfaW5pdC5jCisrKyBiL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9yODhlX2lu
aXQuYwpAQCAtNTQsNyArNTQsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CiAKICNpbmNsdWRl
IDxkZXYvcnR3bi9ydGw4MTg4ZS9yODhlLmg+CiAjaW5jbHVkZSA8ZGV2L3J0d24vcnRsODE4OGUv
cjg4ZV9yZWcuaD4KLQorI2luY2x1ZGUgPGRldi9ydHduL3J0bDgxOTJjL3BjaS9yOTJjZV9yZWcu
aD4KIAogc3RhdGljIHZvaWQKIHI4OGVfY3J5c3RhbGNhcF93cml0ZShzdHJ1Y3QgcnR3bl9zb2Z0
YyAqc2MpCkBAIC05NCw2ICs5NCw5MyBAQCByODhlX2luaXRfYmIoc3RydWN0IHJ0d25fc29mdGMg
KnNjKQogCXI4OGVfY3J5c3RhbGNhcF93cml0ZShzYyk7CiB9CiAKK2ludAorcjg4ZWVfbGx0X2lu
aXQoc3RydWN0IHJ0d25fc29mdGMgKnNjKSB7CisKKwlydHduX3dyaXRlXzEoc2MsIFI5MkNfUlFQ
Tl9OUFEsIDB4MDEpOworCXJ0d25fd3JpdGVfNChzYywgUjkyQ19UUlhGRl9CTkRZLCAweDgwNzMw
ZDI5KTsKKworCXJ0d25fd3JpdGVfNChzYywgUjkyQ19UUlhGRl9CTkRZLCAoMHgyNUZGMDAwMCB8
IHNjLT5wa3RidWZfY291bnQpKTsKKwlydHduX3dyaXRlXzEoc2MsIFI5MkNfVERFQ1RSTCArIDEs
IHNjLT5wa3RidWZfY291bnQpOworCisJcnR3bl93cml0ZV8xKHNjLCBSODhFX1RYUEtUQlVGX0JD
TlExX0JETlksIHNjLT5wa3RidWZfY291bnQpOworCXJ0d25fd3JpdGVfMShzYywgUjkyQ19UWFBL
VEJVRl9NR1FfQkROWSwgc2MtPnBrdGJ1Zl9jb3VudCk7CisKKwlydHduX3dyaXRlXzEoc2MsIDB4
NDVELCBzYy0+cGt0YnVmX2NvdW50KTsKKwlydHduX3dyaXRlXzEoc2MsIFI5MkNfUEJQLCAweDEx
KTsKKwlydHduX3dyaXRlXzEoc2MsIFI5MkNfUlhfRFJWSU5GT19TWiwgMHg0KTsKKworCXJldHVy
biByOTJjX2xsdF9pbml0KHNjKTsKK30KKwordm9pZAorcjg4ZWVfaW5pdF9iYihzdHJ1Y3QgcnR3
bl9zb2Z0YyAqc2MpCit7CisJdWludDMyX3QgdG1wOworCWludCBpLCBqOworCisJcnR3bl9zZXRi
aXRzXzIoc2MsIFI5MkNfU1lTX0ZVTkNfRU4sIDAsCisJCVI5MkNfU1lTX0ZVTkNfRU5fQkJSU1RC
IHwgUjkyQ19TWVNfRlVOQ19FTl9CQl9HTEJfUlNUIHwKKwkJUjkyQ19TWVNfRlVOQ19FTl9ESU9f
UkYpOworCisJcnR3bl93cml0ZV8xKHNjLCBSOTJDX1JGX0NUUkwsCisJCVI5MkNfUkZfQ1RSTF9F
TiB8IFI5MkNfUkZfQ1RSTF9SU1RCIHwgUjkyQ19SRl9DVFJMX1NETVJTVEIpOworCisJcnR3bl93
cml0ZV8xKHNjLCBSOTJDX1NZU19GVU5DX0VOLCBSOTJDX1NZU19GVU5DX0VOX1BQTEwgfCBSOTJD
X1NZU19GVU5DX0VOX1BDSUVBIHwKKwkJUjkyQ19TWVNfRlVOQ19FTl9ESU9fUENJRSB8CisJCVI5
MkNfU1lTX0ZVTkNfRU5fQkJfR0xCX1JTVCB8IFI5MkNfU1lTX0ZVTkNfRU5fQkJSU1RCKTsKKwor
CXRtcCA9IHJ0d25fcmVhZF80KHNjLCAweDRjKTsKKwlydHduX3dyaXRlXzQoc2MsIDB4NGMsIHRt
cCB8IDB4ZmY3ZmZmZmYpOworCisJZm9yIChpID0gMDsgaSA8IHNjLT5iYl9zaXplOyBpKyspIHsK
KwkJY29uc3Qgc3RydWN0IHJ0d25fYmJfcHJvZyAqYmJfcHJvZyA9ICZzYy0+YmJfcHJvZ1tpXTsK
KworCQl3aGlsZSghcnR3bl9jaGVja19jb25kaXRpb24oc2MsIGJiX3Byb2ctPmNvbmQpKSB7CisJ
CQlLQVNTRVJUKGJiX3Byb2ctPm5leHQgIT0gTlVMTCwKKwkJCSAgICAoIiVzOiB3cm9uZyBjb25k
aXRpb24gdmFsdWUgKGkgJWQpXG4iLAorCQkJICAgIF9fZnVuY19fLCBpKSk7CisJCQliYl9wcm9n
ID0gYmJfcHJvZy0+bmV4dDsKKwkJfQorCisJCWZvciAoaiA9IDA7IGogPCBiYl9wcm9nLT5jb3Vu
dDsgaisrKSB7CisJCQlSVFdOX0RQUklOVEYoc2MsIFJUV05fREVCVUdfUkVTRVQsCisJCQkgICAg
IkJCOiByZWcgMHglMDN4LCB2YWwgMHglMDh4XG4iLAorCQkJICAgIGJiX3Byb2ctPnJlZ1tqXSwg
YmJfcHJvZy0+dmFsW2pdKTsKKworCQkJcnR3bl9iYl93cml0ZShzYywgYmJfcHJvZy0+cmVnW2pd
LCBiYl9wcm9nLT52YWxbal0pOworCQkJcnR3bl9kZWxheShzYywgMSk7CisJCX0KKwl9CisKKwlm
b3IgKGkgPSAwOyBpIDwgc2MtPmFnY19zaXplOyBpKyspIHsKKwkJY29uc3Qgc3RydWN0IHJ0d25f
YWdjX3Byb2cgKmFnY19wcm9nID0gJnNjLT5hZ2NfcHJvZ1tpXTsKKworCQl3aGlsZSghcnR3bl9j
aGVja19jb25kaXRpb24oc2MsIGFnY19wcm9nLT5jb25kKSkgeworCQkJS0FTU0VSVChhZ2NfcHJv
Zy0+bmV4dCAhPSBOVUxMLAorCQkJICAgICgiJXM6IHdyb25nIGNvbmRpdGlvbiB2YWx1ZSAoMikg
KGkgJWQpXG4iLAorCQkJICAgIF9fZnVuY19fLCBpKSk7CisJCQlhZ2NfcHJvZyA9IGFnY19wcm9n
LT5uZXh0OworCQl9CisKKwkJZm9yKGogPSAwOyBqIDwgYWdjX3Byb2ctPmNvdW50OyBqKyspIHsK
KwkJCVJUV05fRFBSSU5URihzYywgUlRXTl9ERUJVR19SRVNFVCwKKwkJCSAgICAiQUdDOiB2YWwg
MHglMDh4XG4iLCBhZ2NfcHJvZy0+dmFsW2pdKTsKKworCQkJcnR3bl9iYl93cml0ZShzYywgUjky
Q19PRkRNMF9BR0NSU1NJVEFCTEUsCisJCQkgICAgYWdjX3Byb2ctPnZhbFtqXSk7CisJCQlydHdu
X2RlbGF5KHNjLCAxKTsKKwkJfQorCX0KKworCWlmIChydHduX2JiX3JlYWQoc2MsIFI5MkNfSFNT
SV9QQVJBTTIoMCkpICYgUjkyQ19IU1NJX1BBUkFNMl9DQ0tfSElQV1IpCisJCXNjLT5zY19mbGFn
cyB8PSBSVFdOX0ZMQUdfQ0NLX0hJUFdSOworCisJcnR3bl9iYl9zZXRiaXRzKHNjLCBSOTJDX0ZQ
R0EwX1JGTU9ELCAweDEwMDAwMDAsIDApOworCXJ0d25fYmJfc2V0Yml0cyhzYywgUjkyQ19GUEdB
MF9SRk1PRCwgMHgyMDAwMDAwLCAwKTsKKworfQorCiBpbnQKIHI4OGVfcG93ZXJfb24oc3RydWN0
IHJ0d25fc29mdGMgKnNjKQogewpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9ydHduL3J0bDgxODhlL3I4
OGVfcm9tLmMgYi9zeXMvZGV2L3J0d24vcnRsODE4OGUvcjg4ZV9yb20uYwppbmRleCBiMTJkN2Ri
ODNkNC4uMjgzMWJhYzdlZDAgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9yODhl
X3JvbS5jCisrKyBiL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9yODhlX3JvbS5jCkBAIC04Miw0ICs4
MiwzNCBAQCByODhlX3BhcnNlX3JvbShzdHJ1Y3QgcnR3bl9zb2Z0YyAqc2MsIHVpbnQ4X3QgKmJ1
ZikKIAogCXNjLT50aGVybWFsX21ldGVyID0gcm9tLT50aGVybWFsX21ldGVyOwogCUlFRUU4MDIx
MV9BRERSX0NPUFkoc2MtPnNjX2ljLmljX21hY2FkZHIsIHJvbS0+bWFjYWRkcik7CisKK30KKwor
dm9pZAorcjg4ZWVfcGFyc2Vfcm9tKHN0cnVjdCBydHduX3NvZnRjICpzYywgdWludDhfdCAqYnVm
KQoreworCXN0cnVjdCByOTJjX3NvZnRjICpycyA9IHNjLT5zY19wcml2OworCXN0cnVjdCBydHdu
X3I4OGVfdHhwd3IgKnJ0ID0gcnMtPnJzX3R4cHdyOworCXN0cnVjdCByODhlZV9yb20gKnJvbSA9
IChzdHJ1Y3Qgcjg4ZWVfcm9tICopYnVmOworCWludCBpOworCisJcnQtPmJ3MjBfdHhfcHdyX2Rp
ZmYgPSBSVFdOX1NJR040VE84KE1TKHJvbS0+cmZwYXRoWzBdLnJmcGF0aF8yNGcuYncyMF9vZmRt
LCBISUdIX1BBUlQpKTsKKwlydC0+b2ZkbV90eF9wd3JfZGlmZiA9IFJUV05fU0lHTjRUTzgoTVMo
cm9tLT5yZnBhdGhbMF0ucmZwYXRoXzI0Zy5idzIwX29mZG0sIExPV19QQVJUKSk7CisKKwlmb3Io
aSA9IDA7IGkgPCBSODhFX0dST1VQXzJHOyBpKyspCisJCXJ0LT5jY2tfdHhfcHdyW2ldID0gcm9t
LT5yZnBhdGhbMF0ucmZwYXRoXzI0Zy5pbmRleF9jY2tfYmFzZVtpXTsKKwlmb3IoaSA9IDA7IGkg
PCBSODhFX0dST1VQXzJHIC0gMTsgaSsrKQorCQlydC0+aHQ0MF90eF9wd3JbaV0gPSByb20tPnJm
cGF0aFswXS5yZnBhdGhfMjRnLmluZGV4X2J3NDBfYmFzZVtpXTsKKworCXJzLT5ib2FyZF90eXBl
ID0KKwkJTVMoUlRXTl9HRVRfUk9NX1ZBUihyb20tPnJmX2JvYXJkX29wdCwgUjkyQ19CT0FSRF9U
WVBFX0RPTkdMRSksCisJCVI5MkNfUk9NX1JGMV9CT0FSRF9UWVBFKTsKKwlycy0+cmVndWxhdG9y
eSA9IE1TKHJvbS0+cmZfYm9hcmRfb3B0LCBSOTJDX1JPTV9SRjFfUkVHVUxBVE9SWSk7CisKKwly
dC0+YncyMF90eF9wd3JfZGlmZiA9IDA7CisJcnQtPm9mZG1fdHhfcHdyX2RpZmYgPSAwOworCisJ
cnR3bl9yOTJjX3NldF9uYW1lKHNjKTsKKworCUlFRUU4MDIxMV9BRERSX0NPUFkoc2MtPnNjX2lj
LmljX21hY2FkZHIsIHJvbS0+bWFjYWRkcik7CiB9CmRpZmYgLS1naXQgYS9zeXMvZGV2L3J0d24v
cnRsODE4OGUvcjg4ZV9yb21faW1hZ2UuaCBiL3N5cy9kZXYvcnR3bi9ydGw4MTg4ZS9yODhlX3Jv
bV9pbWFnZS5oCmluZGV4IGM4MDAyOGUwMGQ2Li5jNDkxZjY3N2FiOSAxMDA2NDQKLS0tIGEvc3lz
L2Rldi9ydHduL3J0bDgxODhlL3I4OGVfcm9tX2ltYWdlLmgKKysrIGIvc3lzL2Rldi9ydHduL3J0
bDgxODhlL3I4OGVfcm9tX2ltYWdlLmgKQEAgLTU3LDQgKzU3LDcxIEBAIHN0cnVjdCByODhlX3Jv
bSB7CiBfU3RhdGljX2Fzc2VydChzaXplb2Yoc3RydWN0IHI4OGVfcm9tKSA9PSBSODhFX0VGVVNF
X01BUF9MRU4sCiAgICAgIlI4OEVfRUZVU0VfTUFQX0xFTiBtdXN0IGJlIGVxdWFsIHRvIHNpemVv
ZihzdHJ1Y3Qgcjg4ZV9yb20pISIpOwogCisvKgorICogUlRMODE4OEVFIFJPTSBpbWFnZS4KKyAq
IExhcmdlbHkgZGVyaXZlZCBmcm9tIHRoaXM6CisgKiBodHRwOi8vc3JjLmlsbHVtb3Mub3JnL3Nv
dXJjZS94cmVmL2xpbnV4LW1hc3Rlci9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdp
ZmkvcnRsODE4OGVlL2h3LmMjMTU3NgorICovCisKK3N0cnVjdCBfYnc0MF9idzIwX29mZG1fY2Nr
IHsKKwl1aW50OF90CQkJCWJ3NDA6NDsKKwl1aW50OF90CQkJCWJ3MjA6NDsKKwl1aW50OF90CQkJ
CW9mZG06NDsKKwl1aW50OF90CQkJCWNjazo0OworfSBfX3BhY2tlZDsKKworc3RydWN0IF9yODhl
ZV9yb21fMjRnIHsKKwl1aW50OF90CQkJCWluZGV4X2Nja19iYXNlWzZdOworCXVpbnQ4X3QJCQkJ
aW5kZXhfYnc0MF9iYXNlWzYtMV07CisJdWludDhfdAkJCQlidzIwX29mZG07CisJc3RydWN0IF9i
dzQwX2J3MjBfb2ZkbV9jY2sJYnc0MF9idzIwX29mZG1fY2NrWzQtMV07Cit9IF9fcGFja2VkOwor
CitzdHJ1Y3QgX3I4OGVlX3JvbV81ZyB7CisJdWludDhfdAkJCQlpbmRleF9idzQwX2Jhc2VbMTRd
OworCXVpbnQ4X3QJCQkJYncyMF9vZmRtOworCXVpbnQ4X3QJCQkJYnc0MF9idzIwWzQtMV07CisJ
dWludDhfdAkJCQlvZmRtXzFbMl07Cit9IF9fcGFja2VkOworCitzdHJ1Y3QgX3I4OGVlX3JmX3Bh
dGggeworCXN0cnVjdCBfcjg4ZWVfcm9tXzI0ZwkJcmZwYXRoXzI0ZzsKKwlzdHJ1Y3QgX3I4OGVl
X3JvbV81ZwkJcmZwYXRoXzVnOworfSBfX3BhY2tlZDsKKworc3RydWN0IHI4OGVlX3JvbSB7CisJ
dWludDE2X3QJCQlpZDsgLyogQWx3YXlzIDB4ODEyOSAqLworCisJdWludDhfdAkJCQlocG9uWzRd
OworCXVpbnQxNl90CQkJY2xrOworCXVpbnQ4X3QJCQkJdGVzdHJbOF07CisKKwlzdHJ1Y3QgX3I4
OGVlX3JmX3BhdGgJCXJmcGF0aFs0XTsKKworCXVpbnQ4X3QJCQkJdW5rbm93bjNbMTZdOworCXVp
bnQxNl90CQkJY2hhbm5lbF9wbGFuOworCXVpbnQ4X3QJCQkJeHRhbDsKKwl1aW50OF90CQkJCXRo
ZXJtYWxfbWV0ZXI7CisJdWludDhfdAkJCQl1bmtub3duNFs1XTsKKwl1aW50OF90CQkJCXJmX2Jv
YXJkX29wdDsKKwl1aW50OF90CQkJCXJmX2ZlYXR1cmVfb3B0OworCXVpbnQ4X3QJCQkJcmZfYnRf
c2V0dGluZzsKKwl1aW50OF90CQkJCXZlcnNpb247CisJdWludDhfdAkJCQljdXN0b21lcl9pZDsK
Kwl1aW50OF90CQkJCXJlc2VydmVkMVszXTsKKwl1aW50OF90CQkJCXJmX2FudGVubmFfb3B0Owor
CisJdWludDhfdAkJCQlyZXNlcnZlZDJbNl07CisJdWludDhfdAkJCQltYWNhZGRyW0lFRUU4MDIx
MV9BRERSX0xFTl07CisJdWludDE2X3QJCQl2aWQ7CisJdWludDE2X3QJCQlkaWQ7CisJdWludDE2
X3QJCQlzdmlkOworCXVpbnQxNl90CQkJc21pZDsKKworCXVpbnQ4X3QJCQkJdW5rbm93bjVbMjkw
XTsKK30gX19wYWNrZWQ7IC8vIFNob3VsZCBiZSA1MTIgYnl0ZQorCitfU3RhdGljX2Fzc2VydChz
aXplb2Yoc3RydWN0IHI4OGVlX3JvbSkgPT0gUjg4RV9FRlVTRV9NQVBfTEVOLAorICAgICJSODhF
RV9FRlVTRV9NQVBfTEVOIG11c3QgYmUgZXF1YWwgdG8gc2l6ZW9mKHN0cnVjdCByODhlZV9yb20p
ISIpOworCiAjZW5kaWYJLyogUjg4RV9ST01fSU1BR0VfSCAqLwpkaWZmIC0tZ2l0IGEvc3lzL21v
ZHVsZXMvcnR3bl9wY2kvTWFrZWZpbGUgYi9zeXMvbW9kdWxlcy9ydHduX3BjaS9NYWtlZmlsZQpp
bmRleCA3MzA5OTFlZWRjZC4uZTgxMTAxNzM2NzAgMTAwNjQ0Ci0tLSBhL3N5cy9tb2R1bGVzL3J0
d25fcGNpL01ha2VmaWxlCisrKyBiL3N5cy9tb2R1bGVzL3J0d25fcGNpL01ha2VmaWxlCkBAIC0x
Nyw2ICsxNywxMiBAQCBTUkNTCSs9IHI5MmNlX2F0dGFjaC5jIHI5MmNlX2NhbGliLmMgcjkyY2Vf
ZncuYyByOTJjZV9pbml0LmMgcjkyY2VfbGVkLmMgXAogCSAgIHI5MmNlX3J4LmMgcjkyY2VfdHgu
YyBcCiAJICAgcjkyY2UuaCByOTJjZV9wcml2LmggcjkyY2VfcmVnLmggcjkyY2VfcnhfZGVzYy5o
IHI5MmNlX3R4X2Rlc2MuaAogCisuUEFUSDogJHsuU1JDVE9QfS9zeXMvZGV2L3J0d24vcnRsODE4
OGUvcGNpCitTUkNTICAgICs9IHI4OGVlX2F0dGFjaC5jIHI4OGVlX2NhbGliLmMgcjg4ZWVfaW5p
dC5jIFwKKwkgICByODhlZV90eC5jIHI4OGVlX3B3cnNlcS5jIHI4OGVlX3J4LmMgcjg4ZWVfcmYu
YyBcCisJICAgcjg4ZWUuaCByODhlZV9wcml2Lmggcjg4ZWVfcmVnLmggcjg4ZWVfdHhfZGVzYy5o
IFwKKwkgICByODhlZV9wd3JzZXEuaAorCiBvcHRfcnR3bi5oOgogCUBlY2hvICIjZGVmaW5lIFJU
V05fREVCVUcgMSIgPiAkey5UQVJHRVR9CiAuaWYgJHtNS19TT1VSQ0VMRVNTX1VDT0RFfSA9PSAi
bm8iCmRpZmYgLS1naXQgYS9zeXMvbW9kdWxlcy9ydHduZncvTWFrZWZpbGUgYi9zeXMvbW9kdWxl
cy9ydHduZncvTWFrZWZpbGUKaW5kZXggZmU2MDZiYjI1ZTUuLmJlNmViMGRmNmUwIDEwMDY0NAot
LS0gYS9zeXMvbW9kdWxlcy9ydHduZncvTWFrZWZpbGUKKysrIGIvc3lzL21vZHVsZXMvcnR3bmZ3
L01ha2VmaWxlCkBAIC0xLDYgKzEsNiBAQAogIyAkRnJlZUJTRCQKIAogU1VCRElSPQlydHducnRs
ODE4OGV1IHJ0d25ydGw4MTkyY1QgcnR3bnJ0bDgxOTJjVSBydHducnRsODE5MmV1IHJ0d25ydGw4
ODEyYXUgXAotCXJ0d25ydGw4ODIxYXUgcnR3bnJ0bDgxOTJjRSBydHducnRsODE5MmNFQgorCXJ0
d25ydGw4ODIxYXUgcnR3bnJ0bDgxOTJjRSBydHducnRsODE5MmNFQiBydHducnRsODE4OGVlCiAK
IC5pbmNsdWRlIDxic2Quc3ViZGlyLm1rPgpkaWZmIC0tZ2l0IGEvc3lzL21vZHVsZXMvcnR3bmZ3
L3J0d25ydGw4MTg4ZWUvTWFrZWZpbGUgYi9zeXMvbW9kdWxlcy9ydHduZncvcnR3bnJ0bDgxODhl
ZS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODQ2NGFi
MzlmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbW9kdWxlcy9ydHduZncvcnR3bnJ0bDgxODhl
ZS9NYWtlZmlsZQpAQCAtMCwwICsxLDYgQEAKKyMgJEZyZWVCU0QkCisKK0tNT0Q9CXJ0d24tcnRs
ODE4OGVlZncKK0lNRz0JcnR3bi1ydGw4MTg4ZWVmdworCisuaW5jbHVkZSA8YnNkLmttb2QubWs+
Cg==
--000000000000b10597056e022282--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFd4kYBbewOa1ZOYer=R%2BJ%2BXHSzNbETJo_AQocyGcpi4JxzqRA>