<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>138327</bug_id>
          
          <creation_ts>2014-11-03 14:20:20 -0800</creation_ts>
          <short_desc>REGRESSION(r175406): Multipart tests are still broken (Requested by ap on #webkit).</short_desc>
          <delta_ts>2014-11-03 14:28:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>138174</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>darin</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1045853</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 14:20:20 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/175406 broke the build:
Multipart tests are still broken (Requested by ap on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045856</commentid>
    <comment_count>1</comment_count>
      <attachid>240876</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 14:20:50 -0800</bug_when>
    <thetext>Created attachment 240876
ROLLOUT of r175406

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045859</commentid>
    <comment_count>2</comment_count>
      <attachid>240876</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 14:28:00 -0800</bug_when>
    <thetext>Comment on attachment 240876
ROLLOUT of r175406

Clearing flags on attachment: 240876

Committed r175491: &lt;http://trac.webkit.org/changeset/175491&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045860</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 14:28:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240876</attachid>
            <date>2014-11-03 14:20:50 -0800</date>
            <delta_ts>2014-11-03 14:28:00 -0800</delta_ts>
            <desc>ROLLOUT of r175406</desc>
            <filename>bug-138327-20141103142100.patch</filename>
            <type>text/plain</type>
            <size>148798</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ2N2RhY2VjMGVmNWZm
OWI2NGJmYjdmZTFhYTZhZTllY2VkMzgyNC4uN2NkZDgyOTQ4YTJkZDQ5ZDE1MzRmYWI2M2ExNDNh
MGZkZjY1YjRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTExLTAzICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTc1NDA2LCByMTc1NDEzLCBhbmQgcjE3NTQyMy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODMyNworCisgICAgICAgIE11
bHRpcGFydCB0ZXN0cyBhcmUgc3RpbGwgYnJva2VuIChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtp
dCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiRWxpbWluYXRl
IFJlc291cmNlQnVmZmVyIGFuZCB1c2UgU2hhcmVkQnVmZmVyIGRpcmVjdGx5CisgICAgICAgIGlu
c3RlYWQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzgxNzQKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc1NDA2CisK
KyAgICAgICAgIlVucmV2aWV3ZWQsIGlPUyBidWlsZCBmaXggc2luY2UgMTc1NDA2LiIKKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc1NDEzCisKKyAgICAgICAgIkZp
eCBhc3NlcnRpb24gaW4gQ2FjaGVkUmVzb3VyY2U6OmFkZERhdGFCdWZmZXIiCisgICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3NTQyMworCiAyMDE0LTExLTAzICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IHRoZSAhRU5B
QkxFKFZJREVPKSBidWlsZCBhZnRlciByMTc1Mjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggM2MzMzJi
YjYxNjJkNTFmODY5ZjNmNGVhMjRkZTBmZmU3ZjhjZGQyNS4uZTYxZDExZGI5YTQ0ODQzOWY0OWRm
M2FlMjM5OTM5NWRhMzNkZTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDE0LTExLTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTc1NDA2LCByMTc1NDEzLCBhbmQgcjE3NTQy
My4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODMy
NworCisgICAgICAgIE11bHRpcGFydCB0ZXN0cyBhcmUgc3RpbGwgYnJva2VuIChSZXF1ZXN0ZWQg
YnkgYXAgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAg
ICAgICAiRWxpbWluYXRlIFJlc291cmNlQnVmZmVyIGFuZCB1c2UgU2hhcmVkQnVmZmVyIGRpcmVj
dGx5CisgICAgICAgIGluc3RlYWQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzgxNzQKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTc1NDA2CisKKyAgICAgICAgIlVucmV2aWV3ZWQsIGlPUyBidWlsZCBmaXggc2luY2Ug
MTc1NDA2LiIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc1NDEz
CisKKyAgICAgICAgIkZpeCBhc3NlcnRpb24gaW4gQ2FjaGVkUmVzb3VyY2U6OmFkZERhdGFCdWZm
ZXIiCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3NTQyMworCiAy
MDE0LTEwLTMxICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgVXNlIHN0ZDo6dW5pcXVlX3B0ciBmb3IgVHlwZUNvdW50U2V0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggM2UxNDc3NWJjNTY4OWIyM2ZlYjlmODRkYmVlYWIyMThlMWQ2MjViOC4uYjhjNDE4Zjcw
YWIzMmNjMDA3NDUxYjUwYWUwMTcxOWE1OGExMWQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDE0LTExLTAzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTc1NDA2LCByMTc1NDEz
LCBhbmQgcjE3NTQyMy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzODMyNworCisgICAgICAgIE11bHRpcGFydCB0ZXN0cyBhcmUgc3RpbGwgYnJva2Vu
IChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdl
c2V0czoKKworICAgICAgICAiRWxpbWluYXRlIFJlc291cmNlQnVmZmVyIGFuZCB1c2UgU2hhcmVk
QnVmZmVyIGRpcmVjdGx5CisgICAgICAgIGluc3RlYWQiCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgxNzQKKyAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMTc1NDA2CisKKyAgICAgICAgIlVucmV2aWV3ZWQsIGlPUyBidWls
ZCBmaXggc2luY2UgMTc1NDA2LiIKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTc1NDEzCisKKyAgICAgICAgIkZpeCBhc3NlcnRpb24gaW4gQ2FjaGVkUmVzb3VyY2U6
OmFkZERhdGFCdWZmZXIiCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzE3NTQyMworCiAyMDE0LTExLTAzICBTdW5nbWFubiBDaG8gIDxzdW5nbWFubi5jaG9AbmF2ZXJj
b3JwLmNvbT4KIAogICAgICAgICBBWDogRml4IHNvbWUgbWlub3IgdHlwb3MgcmVsYXRlZCB0byB0
aGUgd29yZCAiYWNjZXNzaWJpbGl0eSIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzI2NTNmMjRiNDk1Y2Q4NDg4
ZjIyN2ZjMDk3ZDQ3MTEyMmZiNzRhNi4uMDQxZGE2OWY2Njk2ZDNhYWFiMzdlMWQ4NTU2MTBhYzli
ZGEyOWZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTExLTAzICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTc1NDA2LCByMTc1NDEzLCBhbmQgcjE3NTQyMy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODMyNworCisgICAgICAgIE11bHRp
cGFydCB0ZXN0cyBhcmUgc3RpbGwgYnJva2VuIChSZXF1ZXN0ZWQgYnkgYXAgb24gI3dlYmtpdCku
CisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAiRWxpbWluYXRlIFJl
c291cmNlQnVmZmVyIGFuZCB1c2UgU2hhcmVkQnVmZmVyIGRpcmVjdGx5CisgICAgICAgIGluc3Rl
YWQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgx
NzQKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc1NDA2CisKKyAg
ICAgICAgIlVucmV2aWV3ZWQsIGlPUyBidWlsZCBmaXggc2luY2UgMTc1NDA2LiIKKyAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc1NDEzCisKKyAgICAgICAgIkZpeCBh
c3NlcnRpb24gaW4gQ2FjaGVkUmVzb3VyY2U6OmFkZERhdGFCdWZmZXIiCisgICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3NTQyMworCiAyMDE0LTExLTAzICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIF9hY3Rpb25NZW51SXRl
bXNGb3JIaXRUZXN0UmVzdWx0IGlzIGdpdmVuIGtXS0FjdGlvbk1lbnVMaW5rIGJ1dCBhbiBlbXB0
eSBhcnJheSBvZiBkZWZhdWx0TWVudUl0ZW1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDBhOWEw
NWQ5ZTA3ZmU0NWViYTc0NzE0YjcyMTRhYjU5YjIyNWFjOGUuLmNhMWMzMzA3MWQ2ODQzMTUzMTEz
N2I1YTI1MWFmYzJjOGUzODUzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xODE2LDYgKzE4
MTYsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL1BvbGljeUNhbGxiYWNrLmNw
cAogICAgIGxvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNr
ZXIuY3BwCisgICAgbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcAogICAgIGxvYWRlci9SZXNvdXJj
ZUxvYWROb3RpZmllci5jcHAKICAgICBsb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAog
ICAgIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNTYz
Yjk2MzYxNDhmNTdhNTg2MGIyM2Q2MWViYTRkMTY2ZDdhZWI2Mi4uMDRlZDBiZDI1NzE3NGU0YmQ2
M2M2N2I0MDVkMzAzNjczOGFkMGRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0MSw3ICsz
NDEsNyBAQCBfX1pON1dlYkNvcmUxM3BvaW50ZXJDdXJzb3JFdgogX19aTjdXZWJDb3JlMTN0b0pT
RE9NV2luZG93RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxNENhY2hlZFJlc291cmNlMTJy
ZW1vdmVDbGllbnRFUE5TXzIwQ2FjaGVkUmVzb3VyY2VDbGllbnRFCiBfX1pON1dlYkNvcmUxNENh
Y2hlZFJlc291cmNlMTZ1bnJlZ2lzdGVySGFuZGxlRVBOU18yNENhY2hlZFJlc291cmNlSGFuZGxl
QmFzZUUKLV9fWk43V2ViQ29yZTE0Q2FjaGVkUmVzb3VyY2UyMXRyeVJlcGxhY2VFbmNvZGVkRGF0
YUVSTlNfMTJTaGFyZWRCdWZmZXJFCitfX1pON1dlYkNvcmUxNENhY2hlZFJlc291cmNlMjF0cnlS
ZXBsYWNlRW5jb2RlZERhdGFFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTJTaGFyZWRCdWZmZXJFRUUK
IF9fWk43V2ViQ29yZTE0Q2FjaGVkUmVzb3VyY2U5YWRkQ2xpZW50RVBOU18yMENhY2hlZFJlc291
cmNlQ2xpZW50RQogX19aTjdXZWJDb3JlMTRDbGllbnRSZWN0TGlzdEMxRVJLTjNXVEY2VmVjdG9y
SU5TXzlGbG9hdFF1YWRFTG0wRU5TMV8xNUNyYXNoT25PdmVyZmxvd0VFRQogX19aTjdXZWJDb3Jl
MTRDbGllbnRSZWN0TGlzdEMxRXYKQEAgLTM4NCw2ICszODQsMTMgQEAgX19aTjdXZWJDb3JlMTRM
b2FkZXJTdHJhdGVneTE4Y3JlYXRlQmxvYlJlZ2lzdHJ5RXYKIF9fWk43V2ViQ29yZTE0TG9hZGVy
U3RyYXRlZ3kyMXJlc291cmNlTG9hZFNjaGVkdWxlckV2CiBfX1pON1dlYkNvcmUxNExvYWRlclN0
cmF0ZWd5MjVsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5RVBOU18xN05ldHdvcmtpbmdDb250ZXh0
RW1SS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5TXzE3U3RvcmVkQ3JlZGVudGlhbHNFTlNfMjJDbGll
bnRDcmVkZW50aWFsUG9saWN5RVJOU18xM1Jlc291cmNlRXJyb3JFUk5TXzE2UmVzb3VyY2VSZXNw
b25zZUVSTjNXVEY2VmVjdG9ySWNMbTBFTlNDXzE1Q3Jhc2hPbk92ZXJmbG93RUVFCiBfX1pON1dl
YkNvcmUxNFBsdWdpbkRvY3VtZW50MTJwbHVnaW5XaWRnZXRFdgorX19aTjdXZWJDb3JlMTRSZXNv
dXJjZUJ1ZmZlcjEyY3JlYXRlTlNEYXRhRXYKK19fWk43V2ViQ29yZTE0UmVzb3VyY2VCdWZmZXI2
YXBwZW5kRVBLY2oKK19fWk43V2ViQ29yZTE0UmVzb3VyY2VCdWZmZXJDMUVQS2NqCitfX1pON1dl
YkNvcmUxNFJlc291cmNlQnVmZmVyQzFFdgorX19aTjdXZWJDb3JlMTRSZXNvdXJjZUJ1ZmZlckMy
RXYKK19fWk43V2ViQ29yZTE0UmVzb3VyY2VCdWZmZXJEMUV2CitfX1pON1dlYkNvcmUxNFJlc291
cmNlQnVmZmVyRDJFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTEyZmlyc3RSZXF1ZXN0
RXYKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxNnNldERlZmVyc0xvYWRpbmdFYgogX19a
TjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTIwZm9yY2VDb250ZW50U25pZmZpbmdFdgpAQCAtMTcy
NCw2ICsxNzMxLDkgQEAgX19aTks3V2ViQ29yZTE0RnJhbWVTZWxlY3Rpb24zMWdldENsaXBwZWRW
aXNpYmxlVGV4dFJlY3RhbmdsZXNFUk4zV1RGNlZlY3RvcklOU18KIF9fWk5LN1dlYkNvcmUxNEZy
YW1lU2VsZWN0aW9uMzZyb290RWRpdGFibGVFbGVtZW50T3JEb2N1bWVudEVsZW1lbnRFdgogX19a
Tks3V2ViQ29yZTE0SW5zZXJ0aW9uUG9pbnQ4aXNBY3RpdmVFdgogX19aTks3V2ViQ29yZTE0UmVu
ZGVyTGlzdEl0ZW0xMG1hcmtlclRleHRFdgorX19aTks3V2ViQ29yZTE0UmVzb3VyY2VCdWZmZXI0
ZGF0YUV2CitfX1pOSzdXZWJDb3JlMTRSZXNvdXJjZUJ1ZmZlcjRzaXplRXYKK19fWk5LN1dlYkNv
cmUxNFJlc291cmNlQnVmZmVyN2lzRW1wdHlFdgogX19aTks3V2ViQ29yZTE0UmVzb3VyY2VIYW5k
bGUxMGNvbm5lY3Rpb25FdgogX19aTks3V2ViQ29yZTE0UmVzb3VyY2VMb2FkZXIxMWZyYW1lTG9h
ZGVyRXYKIF9fWk5LN1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMzJpc0FsbG93ZWRUb0Fza1VzZXJG
b3JDcmVkZW50aWFsc0V2CkBAIC0yNzk2LDYgKzI4MDYsNyBAQCBfX1pOSzdXZWJDb3JlMTRGcmFt
ZVNlbGVjdGlvbjI5cmFuZ2VCeU1vdmluZ0N1cnJlbnRTZWxlY3Rpb25FaQogX19aTks3V2ViQ29y
ZTE0RnJhbWVTZWxlY3Rpb24zMnJhbmdlQnlFeHRlbmRpbmdDdXJyZW50U2VsZWN0aW9uRWkKIF9f
Wk5LN1dlYkNvcmUxNEZyYW1lU2VsZWN0aW9uMzVjaGFyYWN0ZXJJblJlbGF0aW9uVG9DYXJldFNl
bGVjdGlvbkVpCiBfX1pOSzdXZWJDb3JlMTRGcmFtZVNlbGVjdGlvbjM2ZWxlbWVudFJhbmdlQ29u
dGFpbmluZ0NhcmV0U2VsZWN0aW9uRXYKK19fWk5LN1dlYkNvcmUxNFJlc291cmNlQnVmZmVyMTJz
aGFyZWRCdWZmZXJFdgogX19aTks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW44dG9TdHJpbmdFdgog
X19aTks3V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjFjb250ZW50c0xheWVyRm9yTWVkaWFFdgog
X19aTks3V2ViQ29yZTE1VmlzaWJsZVBvc2l0aW9uNGxlZnRFYgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZGJjMTZkZDA0MzRiMzIzMjIw
MThlNzUzMWFmZDA3ZDljNDI0YjZlZi4uODIzMzY2NGEwYjU5YTY4YTQ5ODE0YmJiNTE5YmRlYTFi
YmI4NmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCkBAIC03MjUxLDYgKzcyNTEsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
bG9hZGVyXFBvbGljeUNhbGxiYWNrLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGxvYWRlclxQb2xpY3lDaGVja2VyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGxvYWRlclxQcm9ncmVzc1RyYWNrZXIuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cbG9hZGVyXFJlc291cmNlQnVmZmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGxvYWRlclxSZXNvdXJjZUxvYWRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxsb2FkZXJcY2ZcUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxsb2FkZXJcUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIiAvPgpAQCAtMTky
NTMsNiArMTkyNTQsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXFBvbGlj
eUNoZWNrZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGxvYWRlclxQcm9ncmVz
c1RyYWNrZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGxvYWRlclxQcm9ncmVz
c1RyYWNrZXJDbGllbnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGxvYWRlclxS
ZXNvdXJjZUJ1ZmZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXFJl
c291cmNlTG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcUmVz
b3VyY2VMb2FkZXJPcHRpb25zLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2Fk
ZXJcUmVzb3VyY2VMb2FkTm90aWZpZXIuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBjNWY2OWJlNmUw
MjhhNDRjMDNjOTEwOWQ5OGEwNDMwNmY0NjYwNTNmLi4zMjJiNzBjNmVmZGVkOGIzYTlkMWFlMGEz
MTFkNDAwYTAxZWViZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC05MjcsNiArOTI3LDkgQEAKICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGxvYWRlclxQcm9ncmVzc1RyYWNrZXIuY3BwIj4KICAgICAg
IDxGaWx0ZXI+bG9hZGVyPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxsb2FkZXJcUmVzb3VyY2VCdWZmZXIuY3BwIj4KKyAgICAgIDxGaWx0ZXI+
bG9hZGVyPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxsb2FkZXJcUmVzb3VyY2VMb2FkZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+bG9hZGVyPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC03OTQ3LDYgKzc5NTAsOSBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXFByb2dyZXNzVHJhY2tlckNsaWVudC5oIj4KICAgICAg
IDxGaWx0ZXI+bG9hZGVyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxsb2FkZXJcUmVzb3VyY2VCdWZmZXIuaCI+CisgICAgICA8RmlsdGVyPmxv
YWRlcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cbG9hZGVyXFJlc291cmNlTG9hZGVyLmgiPgogICAgICAgPEZpbHRlcj5sb2FkZXI8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MjMxNzg4ZjBjNTc3NWM4NTg4OWVkOGRlYTJiMDJj
YWMyN2UyYjM3Li5lN2RiMTBmNTQ5NThlN2YyMTY0OTdlZGNiMzFlNzI5NTYyZjY4Nzk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xODY4LDYgKzE4NjgsOSBAQAogCQk1MTQwNUM4OTE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0
aW9uUmVjdEdhdGhlcmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTQwNUM4NzE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0
QjNGNzMwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEIzRjcyMEM3MjIwNDcwMDA1MzBERiAvKiBG
aWxlU3lzdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTE0QjNGNzYwQzcyMjA1NTAwMDUzMERGIC8qIEZpbGVTeXN0ZW1NYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCM0Y3NTBDNzIyMDU1
MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSAqLzsgfTsKKwkJNTE0QkM4M0YxNjFDRjA0QTAw
NEQ1MkY0IC8qIFJlc291cmNlQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE0QkM4M0QxNjFDRjA0MzAwNEQ1MkY0IC8qIFJlc291cmNlQnVm
ZmVyLm1tICovOyB9OworCQk1MTRCQzg0MjE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
QkM4NDAxNjFDRjA1QzAwNEQ1MkY0IC8qIFJlc291cmNlQnVmZmVyLmNwcCAqLzsgfTsKKwkJNTE0
QkM4NDMxNjFDRjA1QzAwNEQ1MkY0IC8qIFJlc291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRCQzg0MTE2MUNGMDVDMDA0RDUyRjQg
LyogUmVzb3VyY2VCdWZmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MTRDNzYzNzBDRTkyMjVFMDA3RUYzQ0QgLyogSlNTUUxFcnJvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzYzNTBD
RTkyMjVFMDA3RUYzQ0QgLyogSlNTUUxFcnJvci5jcHAgKi87IH07CiAJCTUxNEM3NjM4MENFOTIy
NUUwMDdFRjNDRCAvKiBKU1NRTFRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjM2MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NR
TFRyYW5zYWN0aW9uLmNwcCAqLzsgfTsKIAkJNTE0Qzc2NEMwQ0U5MjM0RTAwN0VGM0NEIC8qIEF1
dGhlbnRpY2F0aW9uTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTRDNzY0MjBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODk3Nyw2
ICs4OTgwLDkgQEAKIAkJNTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RH
YXRoZXJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25SZWN0
R2F0aGVyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0QjNGNzIwQzcyMjA0
NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRmlsZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRCM0Y3NTBD
NzIyMDU1MDAwNTMwREYgLyogRmlsZVN5c3RlbU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxNEJDODNEMTYxQ0YwNDMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNlQnVmZmVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTRCQzg0MDE2MUNGMDVDMDA0RDUyRjQg
LyogUmVzb3VyY2VCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVzb3VyY2VCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTRC
Qzg0MTE2MUNGMDVDMDA0RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE0Qzc2MzUwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMRXJyb3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTUUxFcnJvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjM2MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTFRy
YW5zYWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1FM
VHJhbnNhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY0MjBD
RTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25NYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE3NjI0LDYgKzE3NjMwLDcgQEAKIAkJCQkxQzI2NDk3OTBEN0UyNDhBMDBCRDEw
RjIgLyogRG9jdW1lbnRMb2FkZXJNYWMuY3BwICovLAogCQkJCTY1NkQzNzFBMEFEQkE1REUwMEE0
NTU0RCAvKiBMb2FkZXJOU1VSTEV4dHJhcy5oICovLAogCQkJCTY1NkQzNzFCMEFEQkE1REUwMEE0
NTU0RCAvKiBMb2FkZXJOU1VSTEV4dHJhcy5tbSAqLywKKwkJCQk1MTRCQzgzRDE2MUNGMDQzMDA0
RDUyRjQgLyogUmVzb3VyY2VCdWZmZXIubW0gKi8sCiAJCQkJNTFBQTNGNkUwQkQ1QUE5RTAwODky
OTcxIC8qIFJlc291cmNlTG9hZGVyTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CkBA
IC0yMTI5MSw2ICsyMTI5OCw4IEBACiAJCQkJMUEyQTY4MjEwQjVCRURFNzAwMDJBNDgwIC8qIFBy
b2dyZXNzVHJhY2tlci5jcHAgKi8sCiAJCQkJMUEyQTY4MjIwQjVCRURFNzAwMDJBNDgwIC8qIFBy
b2dyZXNzVHJhY2tlci5oICovLAogCQkJCTFBQ0FERDc4MTg4MEQ5MUMwMEQ4QjcxRCAvKiBQcm9n
cmVzc1RyYWNrZXJDbGllbnQuaCAqLywKKwkJCQk1MTRCQzg0MDE2MUNGMDVDMDA0RDUyRjQgLyog
UmVzb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCTUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBS
ZXNvdXJjZUJ1ZmZlci5oICovLAogCQkJCTkzRTIyN0RFMEFGNTg5QUQwMEQ0ODMyNCAvKiBSZXNv
dXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MjcwQURCQTVERTAwQTQ1NTREIC8qIFJlc291
cmNlTG9hZGVyLmggKi8sCiAJCQkJRDBBM0E3MzAxNDA1QTM5ODAwRkI4RUQzIC8qIFJlc291cmNl
TG9hZGVyT3B0aW9ucy5oICovLApAQCAtMjU4NTMsNiArMjU4NjIsNyBAQAogCQkJCTk5Q0MwQjVD
MThCRTk4NEEwMDZDRUJDQyAvKiBSZXBsYXlTZXNzaW9uU2VnbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDk5OEFFQzYxM0Y5RDBFQTAwOTBCMUFBIC8qIFJlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0REMDEyNTFGMTJEMDAzRUYyNjkgLyog
UmVzZXRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNEJDODQzMTYxQ0YwNUMwMDRE
NTJGNCAvKiBSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VFNjg0NkExMkQy
NkUzODAwRTc5NDE1IC8qIFJlc291cmNlRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEY3
MTNDMEQ1QTZGMTkwMDAxOEQ2OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE0Qzc2NzkwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI5MzIwLDYgKzI5MzMwLDggQEAKIAkJCQk5OUNDMEI1OTE4QkU5ODRBMDA2
Q0VCQ0MgLyogUmVwbGF5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUNDMEI1QjE4
QkU5ODRBMDA2Q0VCQ0MgLyogUmVwbGF5U2Vzc2lvblNlZ21lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjU1QjNEQ0YxMjUxRjEyRDAwM0VGMjY5IC8qIFJlc2V0SW5wdXRUeXBlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTUxNEJDODQyMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNvdXJjZUJ1ZmZl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTRCQzgzRjE2MUNGMDRBMDA0RDUyRjQgLyogUmVz
b3VyY2VCdWZmZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzRGNzEzRTBENUE2RjI4MDAwMThE
NjkgLyogUmVzb3VyY2VFcnJvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0VFNjg0NkIx
MkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlRXJyb3JDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTRDNzY1MDBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VSUtp
dEV4dGVuc2lvbnMubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJS2l0RXh0
ZW5zaW9ucy5tbQppbmRleCAyMDFjMjU5YzgzOTZiNjU0ZmYzZjZlYTQyYzE1ZGQ0NDcxMmNlNzgx
Li5iOGQ5MzMwNWE5NzMyMzVjY2E3MzA3MDVlZTNiNGY0M2Q1ZDQ5MWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJS2l0RXh0ZW5zaW9ucy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJS2l0RXh0ZW5zaW9ucy5tbQpAQCAtNjIs
NiArNjIsNyBAQAogI2ltcG9ydCAiUmVuZGVyT2JqZWN0LmgiCiAjaW1wb3J0ICJSZW5kZXJTdHls
ZUNvbnN0YW50cy5oIgogI2ltcG9ydCAiUmVuZGVyVGV4dC5oIgorI2ltcG9ydCAiUmVzb3VyY2VC
dWZmZXIuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiVmlzaWJsZVBvc2l0
aW9uLmgiCiAjaW1wb3J0ICJWaXNpYmxlVW5pdHMuaCIKQEAgLTQ2MywxNSArNDY0LDIzIEBAIHVz
aW5nIFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbjsKIAogLSAoTlNEYXRhICopZGF0YVJlcHJlc2Vu
dGF0aW9uOihCT09MKXJhd0ltYWdlRGF0YQogewotICAgIFdlYkNvcmU6OkNhY2hlZEltYWdlKiBj
YWNoZWRJbWFnZSA9IGNvcmUoc2VsZiktPmNhY2hlZEltYWdlKCk7CisgICAgV2ViQ29yZTo6Q2Fj
aGVkSW1hZ2UgKmNhY2hlZEltYWdlID0gY29yZShzZWxmKS0+Y2FjaGVkSW1hZ2UoKTsKICAgICBp
ZiAoIWNhY2hlZEltYWdlKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIFdlYkNvcmU6OkltYWdl
KiBpbWFnZSA9IGNhY2hlZEltYWdlLT5pbWFnZSgpOworICAgIFdlYkNvcmU6OkltYWdlICppbWFn
ZSA9IGNhY2hlZEltYWdlLT5pbWFnZSgpOwogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVy
biBuaWw7Ci0gICAgV2ViQ29yZTo6U2hhcmVkQnVmZmVyKiBkYXRhID0gcmF3SW1hZ2VEYXRhID8g
Y2FjaGVkSW1hZ2UtPnJlc291cmNlQnVmZmVyKCkgOiBpbWFnZS0+ZGF0YSgpOworICAgIFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlciAqZGF0YSA9IG5pbDsKKyAgICBpZiAocmF3SW1hZ2VEYXRhKSB7Cisg
ICAgICAgIFJlc291cmNlQnVmZmVyICpyZXNvdXJjZUJ1ZmZlciA9IGNhY2hlZEltYWdlLT5yZXNv
dXJjZUJ1ZmZlcigpOworICAgICAgICBpZiAocmVzb3VyY2VCdWZmZXIpCisgICAgICAgICAgICBk
YXRhID0gcmVzb3VyY2VCdWZmZXItPnNoYXJlZEJ1ZmZlcigpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGRhdGEgPSBpbWFnZS0+ZGF0YSgpOworICAgIH0KICAgICBpZiAoIWRhdGEpCiAgICAgICAg
IHJldHVybiBuaWw7CisKICAgICByZXR1cm4gZGF0YS0+Y3JlYXRlTlNEYXRhKCkuYXV0b3JlbGVh
c2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9y
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IGI5
ZWI5NmM2ZDdiN2JlNjA1ZjYxNDFiMjM4MTk2MTA3YzYxNWE1YWEuLjAxOTJkNWU5MDExYTIwMjVl
NTdjNmMwYzRlZDMxYTA4NmExZWRiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvaW9zL0VkaXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0
b3JJT1MubW0KQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUg
IlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
U29mdExpbmtpbmcuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKQEAgLTM4NCw3ICsz
ODUsNyBAQCB2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBw
YXN0ZWJvYXJkLCBFbGVtZW50JiBpbWFnZUVsZW1lbgogICAgIHBhc3RlYm9hcmRJbWFnZS51cmwu
dXJsID0gaW1hZ2VFbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5k
VHJhaWxpbmdIVE1MU3BhY2VzKGltYWdlRWxlbWVudC5pbWFnZVNvdXJjZVVSTCgpKSk7CiAgICAg
cGFzdGVib2FyZEltYWdlLnVybC50aXRsZSA9IHRpdGxlOwogICAgIHBhc3RlYm9hcmRJbWFnZS5y
ZXNvdXJjZU1JTUVUeXBlID0gcGFzdGVib2FyZC5yZXNvdXJjZU1JTUVUeXBlKGNhY2hlZEltYWdl
LT5yZXNwb25zZSgpLm1pbWVUeXBlKCkpOwotICAgIHBhc3RlYm9hcmRJbWFnZS5yZXNvdXJjZURh
dGEgPSBjYWNoZWRJbWFnZS0+cmVzb3VyY2VCdWZmZXIoKTsKKyAgICBwYXN0ZWJvYXJkSW1hZ2Uu
cmVzb3VyY2VEYXRhID0gY2FjaGVkSW1hZ2UtPnJlc291cmNlQnVmZmVyKCktPnNoYXJlZEJ1ZmZl
cigpOwogCiAgICAgcGFzdGVib2FyZC53cml0ZShwYXN0ZWJvYXJkSW1hZ2UpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDI5Mjc2ZmEwNDRlMDYyMTNhMGZi
MDNjN2FiYmIzZGMzYTJlNzc3MmUuLjZlNDE5MGY5YjY1M2M0MmJmZTE5MjJlMTMyMjgwOWU4YzQx
YWJhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTUyLDYg
KzUyLDcgQEAKICNpbXBvcnQgIlJhbmdlLmgiCiAjaW1wb3J0ICJSZW5kZXJCbG9jay5oIgogI2lt
cG9ydCAiUmVuZGVySW1hZ2UuaCIKKyNpbXBvcnQgIlJlc291cmNlQnVmZmVyLmgiCiAjaW1wb3J0
ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBvcnQgIlNvdW5kLmgiCiAjaW1wb3J0
ICJTdHlsZVByb3BlcnRpZXMuaCIKQEAgLTQ0Niw3ICs0NDcsNyBAQCB2b2lkIEVkaXRvcjo6d3Jp
dGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBFbGVtZW50JiBpbWFn
ZUVsZW1lbgogICAgIHBhc3RlYm9hcmRJbWFnZS51cmwudXJsID0gdXJsOwogICAgIHBhc3RlYm9h
cmRJbWFnZS51cmwudGl0bGUgPSB0aXRsZTsKICAgICBwYXN0ZWJvYXJkSW1hZ2UudXJsLnVzZXJW
aXNpYmxlRm9ybSA9IGNsaWVudCgpLT51c2VyVmlzaWJsZVN0cmluZyhwYXN0ZWJvYXJkSW1hZ2Uu
dXJsLnVybCk7Ci0gICAgcGFzdGVib2FyZEltYWdlLnJlc291cmNlRGF0YSA9IGNhY2hlZEltYWdl
LT5yZXNvdXJjZUJ1ZmZlcigpOworICAgIHBhc3RlYm9hcmRJbWFnZS5yZXNvdXJjZURhdGEgPSBj
YWNoZWRJbWFnZS0+cmVzb3VyY2VCdWZmZXIoKS0+c2hhcmVkQnVmZmVyKCk7CiAgICAgcGFzdGVi
b2FyZEltYWdlLnJlc291cmNlTUlNRVR5cGUgPSBjYWNoZWRJbWFnZS0+cmVzcG9uc2UoKS5taW1l
VHlwZSgpOwogCiAgICAgcGFzdGVib2FyZC53cml0ZShwYXN0ZWJvYXJkSW1hZ2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKaW5kZXggNDBhN2I1NzIwODcxZGFkY2U5OGQ5YjUz
NjIxYWRlZGM2MGUwMTQzNy4uMTc5ZWMxMDgxNjVmYTNiYTFhNTFjYTMxYWM1ZGY2ZGY2ZGRkYzBk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCkBAIC00NSw2ICs0NSw3IEBA
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJhd0RhdGFEb2N1bWVudFBhcnNlci5oIgog
I2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzMyw4ICsx
MzQsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnQ6OnVwZGF0ZUR1cmluZ1BhcnNpbmcoKQogICAgIGlm
ICghbV9pbWFnZUVsZW1lbnQpCiAgICAgICAgIGNyZWF0ZURvY3VtZW50U3RydWN0dXJlKCk7CiAK
LSAgICBpZiAoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gbG9hZGVyKCktPm1haW5SZXNv
dXJjZURhdGEoKSkKLSAgICAgICAgbV9pbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCktPmFkZERh
dGFCdWZmZXIoKmJ1ZmZlcik7CisgICAgbV9pbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCktPmFk
ZERhdGFCdWZmZXIobG9hZGVyKCktPm1haW5SZXNvdXJjZURhdGEoKS5nZXQoKSk7CiAKICAgICBp
bWFnZVVwZGF0ZWQoKTsKIH0KQEAgLTE0MywxMSArMTQzLDExIEBAIHZvaWQgSW1hZ2VEb2N1bWVu
dDo6ZmluaXNoZWRQYXJzaW5nKCkKIHsKICAgICBpZiAoIXBhcnNlcigpLT5pc1N0b3BwZWQoKSAm
JiBtX2ltYWdlRWxlbWVudCkgewogICAgICAgICBDYWNoZWRJbWFnZSYgY2FjaGVkSW1hZ2UgPSAq
bV9pbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCk7Ci0gICAgICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEgPSBsb2FkZXIoKS0+bWFpblJlc291cmNlRGF0YSgpOworICAgICAgICBSZWZQdHI8
UmVzb3VyY2VCdWZmZXI+IGRhdGEgPSBsb2FkZXIoKS0+bWFpblJlc291cmNlRGF0YSgpOwogCiAg
ICAgICAgIC8vIElmIHRoaXMgaXMgYSBtdWx0aXBhcnQgaW1hZ2UsIG1ha2UgYSBjb3B5IG9mIHRo
ZSBjdXJyZW50IHBhcnQsIHNpbmNlIHRoZSByZXNvdXJjZSBkYXRhCiAgICAgICAgIC8vIHdpbGwg
YmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgcGFydC4KLSAgICAgICAgaWYgKGRhdGEgJiYgbG9h
ZGVyKCktPmlzTG9hZGluZ011bHRpcGFydENvbnRlbnQoKSkKKyAgICAgICAgaWYgKGxvYWRlcigp
LT5pc0xvYWRpbmdNdWx0aXBhcnRDb250ZW50KCkpCiAgICAgICAgICAgICBkYXRhID0gZGF0YS0+
Y29weSgpOwogCiAgICAgICAgIGNhY2hlZEltYWdlLmZpbmlzaExvYWRpbmcoZGF0YS5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmlu
ZGV4IGY5YjJiMjEzZmE0MGVmYjVlNGIzN2Q3MWU5M2U4NTM2ZjEyOWY2NjMuLjc4MjgyNmRjN2Q5
OTA4Y2Y0ZDk3NTdjNmE4NmU3NmIzYmQwMDg5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVk
ZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgpAQCAtMTQyLDkgKzE0MywxMSBAQCBib29sIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVz
b3VyY2VDb250ZW50KENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSwgUwogCiAgICAgKmJh
c2U2NEVuY29kZWQgPSAhaGFzVGV4dENvbnRlbnQoY2FjaGVkUmVzb3VyY2UpOwogICAgIGlmICgq
YmFzZTY0RW5jb2RlZCkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBo
YXNaZXJvU2l6ZSA/IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCkgOiBjYWNoZWRSZXNvdXJjZS0+cmVz
b3VyY2VCdWZmZXIoKTsKKyAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gaGFz
WmVyb1NpemUgPyBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpIDogY2FjaGVkUmVzb3VyY2UtPnJlc291
cmNlQnVmZmVyKCktPnNoYXJlZEJ1ZmZlcigpOworCiAgICAgICAgIGlmICghYnVmZmVyKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgICAgICpyZXN1bHQgPSBiYXNlNjRFbmNvZGUo
YnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQpAQCAtMTYzLDcgKzE2Niw3IEBAIGJvb2wgSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRS
ZXNvdXJjZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlLCBTCiAgICAgICAg
ICAgICAqcmVzdWx0ID0gZG93bmNhc3Q8Q2FjaGVkU2NyaXB0PigqY2FjaGVkUmVzb3VyY2UpLnNj
cmlwdCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlJhd1Jlc291cmNlOiB7Ci0gICAgICAgICAgICBhdXRvKiBidWZmZXIgPSBjYWNoZWRS
ZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKKyAgICAgICAgICAgIFJlc291cmNlQnVmZmVyKiBi
dWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgICAgIGlm
ICghYnVmZmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIFJl
ZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBkZWNvZGVyID0gY3JlYXRlWEhSVGV4dERlY29kZXIo
Y2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkubWltZVR5cGUoKSwgY2FjaGVkUmVzb3VyY2UtPnJl
c3BvbnNlKCkudGV4dEVuY29kaW5nTmFtZSgpKTsKQEAgLTE3NCw3ICsxNzcsNyBAQCBib29sIElu
c3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VDb250ZW50KENhY2hlZFJlc291cmNlKiBj
YWNoZWRSZXNvdXJjZSwgUwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGF1dG8qIGJ1ZmZlciA9IGNhY2hlZFJlc291cmNl
LT5yZXNvdXJjZUJ1ZmZlcigpOworICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIqIGJ1ZmZlciA9
IGNhY2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpOwogICAgICAgICAgICAgcmV0dXJuIGRl
Y29kZUJ1ZmZlcihidWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IG51bGxwdHIsIGJ1ZmZlciA/IGJ1
ZmZlci0+c2l6ZSgpIDogMCwgY2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCksIHJlc3VsdCk7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0xODMsMTAgKzE4NiwxMiBAQCBib29sIEluc3BlY3RvclBhZ2VB
Z2VudDo6Y2FjaGVkUmVzb3VyY2VDb250ZW50KENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJj
ZSwgUwogCiBib29sIEluc3BlY3RvclBhZ2VBZ2VudDo6bWFpblJlc291cmNlQ29udGVudChGcmFt
ZSogZnJhbWUsIGJvb2wgd2l0aEJhc2U2NEVuY29kZSwgU3RyaW5nKiByZXN1bHQpCiB7Ci0gICAg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCktPm1haW5SZXNvdXJjZURhdGEoKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGJ1
ZmZlciA9IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5tYWluUmVzb3VyY2VEYXRh
KCk7CiAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4g
SW5zcGVjdG9yUGFnZUFnZW50OjpkYXRhQ29udGVudChidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5z
aXplKCksIGZyYW1lLT5kb2N1bWVudCgpLT5pbnB1dEVuY29kaW5nKCksIHdpdGhCYXNlNjRFbmNv
ZGUsIHJlc3VsdCk7CisgICAgU3RyaW5nIHRleHRFbmNvZGluZ05hbWUgPSBmcmFtZS0+ZG9jdW1l
bnQoKS0+aW5wdXRFbmNvZGluZygpOworCisgICAgcmV0dXJuIEluc3BlY3RvclBhZ2VBZ2VudDo6
ZGF0YUNvbnRlbnQoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpLCB0ZXh0RW5jb2RpbmdO
YW1lLCB3aXRoQmFzZTY0RW5jb2RlLCByZXN1bHQpOwogfQogCiAvLyBzdGF0aWMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRl
eCA0ODFiMmJhZDQxOTJhNDUxYmY0ZDgyMjAwMjEzMmZjMDQzOWM2ZTQwLi4xYzU3YTRmNTdlZjk1
OTkxMTYxZWZhZmEwOGQwNDdmMDc3ODk1MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAj
aW5jbHVkZSAiTmV0d29ya1Jlc291cmNlc0RhdGEuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTQwNCw5ICs0MDUsOCBAQCB2b2lkIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBEb2N1bWVudAogCiAgICAgU3RyaW5nIHJlcXVlc3RJZCA9IElkZW50aWZpZXJzRmFjdG9y
eTo6cmVxdWVzdElkKGlkZW50aWZpZXIpOwogICAgIGlmIChtX3Jlc291cmNlc0RhdGEtPnJlc291
cmNlVHlwZShyZXF1ZXN0SWQpID09IEluc3BlY3RvclBhZ2VBZ2VudDo6RG9jdW1lbnRSZXNvdXJj
ZSkgewotICAgICAgICBtX3Jlc291cmNlc0RhdGEtPmFkZFJlc291cmNlU2hhcmVkQnVmZmVyKHJl
cXVlc3RJZCwKLSAgICAgICAgICAgIGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+ZG9jdW1lbnRMb2Fk
ZXIoKS0+bWFpblJlc291cmNlRGF0YSgpLAotICAgICAgICAgICAgbG9hZGVyLT5mcmFtZSgpLT5k
b2N1bWVudCgpLT5pbnB1dEVuY29kaW5nKCkpOworICAgICAgICBSZWZQdHI8UmVzb3VyY2VCdWZm
ZXI+IGJ1ZmZlciA9IGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+bWFp
blJlc291cmNlRGF0YSgpOworICAgICAgICBtX3Jlc291cmNlc0RhdGEtPmFkZFJlc291cmNlU2hh
cmVkQnVmZmVyKHJlcXVlc3RJZCwgYnVmZmVyID8gYnVmZmVyLT5zaGFyZWRCdWZmZXIoKSA6IG51
bGxwdHIsIGxvYWRlci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+aW5wdXRFbmNvZGluZygpKTsKICAg
ICB9CiAKICAgICBtX3Jlc291cmNlc0RhdGEtPm1heWJlRGVjb2RlRGF0YVRvQ29udGVudChyZXF1
ZXN0SWQpOwpAQCAtNDM1LDkgKzQzNSw4IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6
ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvCiAgICAg
aWYgKG1fcmVzb3VyY2VzRGF0YS0+cmVzb3VyY2VUeXBlKHJlcXVlc3RJZCkgPT0gSW5zcGVjdG9y
UGFnZUFnZW50OjpEb2N1bWVudFJlc291cmNlKSB7CiAgICAgICAgIEZyYW1lKiBmcmFtZSA9IGxv
YWRlciA/IGxvYWRlci0+ZnJhbWUoKSA6IG51bGxwdHI7CiAgICAgICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKSkgewot
ICAgICAgICAgICAgbV9yZXNvdXJjZXNEYXRhLT5hZGRSZXNvdXJjZVNoYXJlZEJ1ZmZlcihyZXF1
ZXN0SWQsCi0gICAgICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkt
Pm1haW5SZXNvdXJjZURhdGEoKSwKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+
aW5wdXRFbmNvZGluZygpKTsKKyAgICAgICAgICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gYnVm
ZmVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZURhdGEo
KTsKKyAgICAgICAgICAgIG1fcmVzb3VyY2VzRGF0YS0+YWRkUmVzb3VyY2VTaGFyZWRCdWZmZXIo
cmVxdWVzdElkLCBidWZmZXIgPyBidWZmZXItPnNoYXJlZEJ1ZmZlcigpIDogbnVsbHB0ciwgZnJh
bWUtPmRvY3VtZW50KCktPmlucHV0RW5jb2RpbmcoKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDk3N2VkMTRiMGUyMTYz
NjhiMTEwYjI1YzMyNjRkMTI1MDEzYjZjNzYuLjQwYWU1OTQ0ZWJkN2Y1NDdiOTQ1Yzk0YTdkN2Qy
OWM4YmYxOWFkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQb2xpY3lDaGVj
a2VyLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VC
dWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNjaGVtZVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKQEAgLTE3MCwyMCArMTcxLDIw
IEBAIERvY3VtZW50TG9hZGVyOjp+RG9jdW1lbnRMb2FkZXIoKQogICAgIGNsZWFyTWFpblJlc291
cmNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBEb2N1bWVudExvYWRlcjo6bWFp
blJlc291cmNlRGF0YSgpIGNvbnN0CitQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBEb2N1bWVu
dExvYWRlcjo6bWFpblJlc291cmNlRGF0YSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc3Vic3RpdHV0
ZURhdGEuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50
KCktPmNvcHkoKTsKKyAgICAgICAgcmV0dXJuIFJlc291cmNlQnVmZmVyOjpjcmVhdGUobV9zdWJz
dGl0dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCkt
PnNpemUoKSk7CiAgICAgaWYgKG1fbWFpblJlc291cmNlKQogICAgICAgICByZXR1cm4gbV9tYWlu
UmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIDA7CiB9CiAKIERvY3VtZW50KiBEb2N1bWVudExvYWRlcjo6ZG9jdW1lbnQoKSBjb25zdAog
ewogICAgIGlmIChtX2ZyYW1lICYmIG1fZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkg
PT0gdGhpcykKICAgICAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgRG9j
dW1lbnRMb2FkZXI6Om9yaWdpbmFsUmVxdWVzdCgpIGNvbnN0CkBAIC05OTMsNyArOTk0LDggQEAg
Ym9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVDcmVhdGVBcmNoaXZlKCkKICNlbHNlCiAgICAgCiAg
ICAgLy8gR2l2ZSB0aGUgYXJjaGl2ZSBtYWNoaW5lcnkgYSBjcmFjayBhdCB0aGlzIGRvY3VtZW50
LiBJZiB0aGUgTUlNRSB0eXBlIGlzIG5vdCBhbiBhcmNoaXZlIHR5cGUsIGl0IHdpbGwgcmV0dXJu
IDAuCi0gICAgbV9hcmNoaXZlID0gQXJjaGl2ZUZhY3Rvcnk6OmNyZWF0ZShtX3Jlc3BvbnNlLnVy
bCgpLCBtYWluUmVzb3VyY2VEYXRhKCkuZ2V0KCksIG1fcmVzcG9uc2UubWltZVR5cGUoKSk7Cisg
ICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBtYWluUmVzb3VyY2VCdWZmZXIgPSBtYWluUmVzb3Vy
Y2VEYXRhKCk7CisgICAgbV9hcmNoaXZlID0gQXJjaGl2ZUZhY3Rvcnk6OmNyZWF0ZShtX3Jlc3Bv
bnNlLnVybCgpLCBtYWluUmVzb3VyY2VCdWZmZXIgPyBtYWluUmVzb3VyY2VCdWZmZXItPnNoYXJl
ZEJ1ZmZlcigpIDogMCwgbV9yZXNwb25zZS5taW1lVHlwZSgpKTsKICAgICBpZiAoIW1fYXJjaGl2
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApAQCAtMTAwOSw3ICsxMDExLDYgQEAgYm9v
bCBEb2N1bWVudExvYWRlcjo6bWF5YmVDcmVhdGVBcmNoaXZlKCkKIH0KIAogI2lmIEVOQUJMRShX
RUJfQVJDSElWRSkgfHwgRU5BQkxFKE1IVE1MKQotCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRB
cmNoaXZlKFBhc3NSZWZQdHI8QXJjaGl2ZT4gYXJjaGl2ZSkKIHsKICAgICBtX2FyY2hpdmUgPSBh
cmNoaXZlOwpAQCAtMTA1Nyw0NiArMTA1OCw0NyBAQCBTaGFyZWRCdWZmZXIqIERvY3VtZW50TG9h
ZGVyOjpwYXJzZWRBcmNoaXZlRGF0YSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFyc2VkQXJj
aGl2ZURhdGEuZ2V0KCk7CiB9Ci0KICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FSQ0hJVkUpIHx8IEVO
QUJMRShNSFRNTCkKIAogQXJjaGl2ZVJlc291cmNlKiBEb2N1bWVudExvYWRlcjo6YXJjaGl2ZVJl
c291cmNlRm9yVVJMKGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewogICAgIGlmICghbV9hcmNoaXZl
UmVzb3VyY2VDb2xsZWN0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIAogICAgIEFyY2hpdmVSZXNvdXJjZSogcmVzb3VyY2UgPSBtX2FyY2hp
dmVSZXNvdXJjZUNvbGxlY3Rpb24tPmFyY2hpdmVSZXNvdXJjZUZvclVSTCh1cmwpOwotICAgIGlm
ICghcmVzb3VyY2UgfHwgcmVzb3VyY2UtPnNob3VsZElnbm9yZVdoZW5VbmFyY2hpdmluZygpKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gcmVzb3VyY2U7CisKKyAgICByZXR1
cm4gcmVzb3VyY2UgJiYgIXJlc291cmNlLT5zaG91bGRJZ25vcmVXaGVuVW5hcmNoaXZpbmcoKSA/
IHJlc291cmNlIDogMDsKIH0KIAogUGFzc1JlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IERvY3VtZW50
TG9hZGVyOjptYWluUmVzb3VyY2UoKSBjb25zdAogewotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IGRhdGEgPSBtYWluUmVzb3VyY2VEYXRhKCk7CisgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
ciA9IHJlc3BvbnNlKCk7CisgICAgCisgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBtYWluUmVz
b3VyY2VCdWZmZXIgPSBtYWluUmVzb3VyY2VEYXRhKCk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gZGF0YSA9IG1haW5SZXNvdXJjZUJ1ZmZlciA/IG1haW5SZXNvdXJjZUJ1ZmZlci0+c2hhcmVk
QnVmZmVyKCkgOiAwOwogICAgIGlmICghZGF0YSkKICAgICAgICAgZGF0YSA9IFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKCk7CiAgICAgICAgIAotICAgIGF1dG8mIHJlc3BvbnNlID0gdGhpcy0+cmVzcG9u
c2UoKTsKLSAgICByZXR1cm4gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YSwgcmVzcG9uc2Uu
dXJsKCksIHJlc3BvbnNlLm1pbWVUeXBlKCksIHJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKSwg
ZnJhbWUoKS0+dHJlZSgpLnVuaXF1ZU5hbWUoKSk7CisgICAgcmV0dXJuIEFyY2hpdmVSZXNvdXJj
ZTo6Y3JlYXRlKGRhdGEsIHIudXJsKCksIHIubWltZVR5cGUoKSwgci50ZXh0RW5jb2RpbmdOYW1l
KCksIGZyYW1lKCktPnRyZWUoKS51bmlxdWVOYW1lKCkpOwogfQogCiBQYXNzUmVmUHRyPEFyY2hp
dmVSZXNvdXJjZT4gRG9jdW1lbnRMb2FkZXI6OnN1YnJlc291cmNlKGNvbnN0IFVSTCYgdXJsKSBj
b25zdAogewogICAgIGlmICghaXNDb21taXR0ZWQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIHJldHVybiAwOwogICAgIAogICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9
IG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPmNhY2hlZFJlc291cmNlKHVybCk7CiAgICAgaWYgKCFy
ZXNvdXJjZSB8fCAhcmVzb3VyY2UtPmlzTG9hZGVkKCkpCiAgICAgICAgIHJldHVybiBhcmNoaXZl
UmVzb3VyY2VGb3JVUkwodXJsKTsKIAogICAgIGlmIChyZXNvdXJjZS0+dHlwZSgpID09IENhY2hl
ZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4gMDsKIAotICAgIGF1dG8qIGRhdGEgPSByZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIo
KTsKKyAgICBSZXNvdXJjZUJ1ZmZlciogZGF0YSA9IHJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigp
OwogICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVy
biAwOwogCi0gICAgcmV0dXJuIEFyY2hpdmVSZXNvdXJjZTo6Y3JlYXRlKGRhdGEsIHVybCwgcmVz
b3VyY2UtPnJlc3BvbnNlKCkpOworICAgIHJldHVybiBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShk
YXRhLT5zaGFyZWRCdWZmZXIoKSwgdXJsLCByZXNvdXJjZS0+cmVzcG9uc2UoKSk7CiB9CiAKIFZl
Y3RvcjxSZWZQdHI8QXJjaGl2ZVJlc291cmNlPj4gRG9jdW1lbnRMb2FkZXI6OnN1YnJlc291cmNl
cygpIGNvbnN0CkBAIC0xNTA5LDcgKzE1MTEsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjptYXli
ZUZpbmlzaExvYWRpbmdNdWx0aXBhcnRDb250ZW50KCkKIAogICAgIGZyYW1lTG9hZGVyKCktPnNl
dHVwRm9yUmVwbGFjZSgpOwogICAgIG1fY29tbWl0dGVkID0gZmFsc2U7Ci0gICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gcmVzb3VyY2VEYXRhID0gbWFpblJlc291cmNlRGF0YSgpOworICAgIFJlZlB0
cjxSZXNvdXJjZUJ1ZmZlcj4gcmVzb3VyY2VEYXRhID0gbWFpblJlc291cmNlRGF0YSgpOwogICAg
IGNvbW1pdExvYWQocmVzb3VyY2VEYXRhLT5kYXRhKCksIHJlc291cmNlRGF0YS0+c2l6ZSgpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCA3Njk4ZmZiODRm
YmY3MDJlODRmMWMxZDJmZTBkOWUxYmFjNTI1OTdiLi40MDNlMTk1NzFjNmQ2NmRmZDA3NzZmNjc1
MDk3NTNlYTkxNTkyNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApA
QCAtNjgsNiArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRnJhbWU7CiAg
ICAgY2xhc3MgRnJhbWVMb2FkZXI7CiAgICAgY2xhc3MgUGFnZTsKKyAgICBjbGFzcyBSZXNvdXJj
ZUJ1ZmZlcjsKICAgICBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKICAgICBjbGFzcyBTaGFyZWRCdWZm
ZXI7CiAgICAgY2xhc3MgU3Vic3RpdHV0ZVJlc291cmNlOwpAQCAtOTIsNyArOTMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWVMb2FkZXIqIGZy
YW1lTG9hZGVyKCkgY29uc3Q7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIFJlc291cmNlTG9hZGVy
KiBtYWluUmVzb3VyY2VMb2FkZXIoKSBjb25zdDsKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IG1haW5SZXNvdXJjZURhdGEoKSBjb25zdDsKKyAgICAgICAg
V0VCQ09SRV9FWFBPUlQgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gbWFpblJlc291cmNlRGF0
YSgpIGNvbnN0OwogICAgICAgICAKICAgICAgICAgRG9jdW1lbnRXcml0ZXImIHdyaXRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fd3JpdGVyOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRp
YVJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4N2RlM2M2NWI3ZjkzY2E1NDk0YWRiMmM2MTg4MDhi
M2Y0NDYzZGM0Li44MDc1NmYxM2JiMDE3NjZmNGFjZjliYmYzYThlNjM5Njc1MzJiY2Y0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNywx
MiArMjcsMTIgQEAKICNpbmNsdWRlICJNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAKICNpZiBFTkFC
TEUoVklERU8pCi0KICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTExMiwxMCArMTEy
LDEzIEBAIHZvaWQgTWVkaWFSZXNvdXJjZUxvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2UsIGNvbnN0IFJlc291CiAKIHZvaWQgTWVkaWFSZXNvdXJjZUxvYWRl
cjo6ZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgY2hhciogZGF0
YSwgaW50IGRhdGFMZW5ndGgpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwgcmVzb3Vy
Y2UgPT0gbV9yZXNvdXJjZSk7CisgICAgQVNTRVJUKHJlc291cmNlID09IG1fcmVzb3VyY2UpOwog
CiAgICAgUmVmUHRyPE1lZGlhUmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgbV9j
bGllbnQtPmRhdGFSZWNlaXZlZChkYXRhLCBkYXRhTGVuZ3RoKTsKKworICAgIGlmIChTaGFyZWRC
dWZmZXIqIGJ1ZmZlciA9IHJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpID8gcmVzb3VyY2UtPnJl
c291cmNlQnVmZmVyKCktPnNoYXJlZEJ1ZmZlcigpIDogbnVsbHB0cikKKyAgICAgICAgbV9jbGll
bnQtPmJ1ZmZlclJlY2VpdmVkKGJ1ZmZlcik7CiB9CiAKIHZvaWQgTWVkaWFSZXNvdXJjZUxvYWRl
cjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQpAQCAtMTI2LDcgKzEy
OSw3IEBAIHZvaWQgTWVkaWFSZXNvdXJjZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlKQogICAgIGlmIChyZXNvdXJjZS0+bG9hZEZhaWxlZE9yQ2FuY2VsZWQo
KSkKICAgICAgICAgbV9jbGllbnQtPmxvYWRGYWlsZWQocmVzb3VyY2UtPnJlc291cmNlRXJyb3Io
KSk7CiAgICAgZWxzZQotICAgICAgICBtX2NsaWVudC0+bG9hZEZpbmlzaGVkKCk7CisgICAgICAg
IG1fY2xpZW50LT5sb2FkRmluaXNoZWQocmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCkgPyByZXNv
dXJjZS0+cmVzb3VyY2VCdWZmZXIoKS0+c2hhcmVkQnVmZmVyKCkgOiBudWxscHRyKTsKICAgICBz
dG9wKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE2YmE4Y2U1NWQxMjdkZTNhNjI2YjEzNzU1OTg5MjBiYzc2MjYzNTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCkBAIC0w
LDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCisKKyNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXNvdXJj
ZUJ1ZmZlcjo6UmVzb3VyY2VCdWZmZXIoKQorICAgIDogbV9zaGFyZWRCdWZmZXIoU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoKSkKK3sKK30KKworUmVzb3VyY2VCdWZmZXI6OlJlc291cmNlQnVmZmVyKGNv
bnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpCisgICAgOiBtX3NoYXJlZEJ1ZmZlcihTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBzaXplKSkKK3sKK30KKworUmVzb3VyY2VCdWZmZXI6OlJl
c291cmNlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBzaGFyZWRCdWZmZXIpCisgICAg
OiBtX3NoYXJlZEJ1ZmZlcihzaGFyZWRCdWZmZXIpCit7CisgICAgQVNTRVJUKG1fc2hhcmVkQnVm
ZmVyKTsKK30KKyAgICAKK1Jlc291cmNlQnVmZmVyOjp+UmVzb3VyY2VCdWZmZXIoKQoreworfQor
CitQYXNzUmVmUHRyPFJlc291cmNlQnVmZmVyPiBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRTaGFyZWRC
dWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHNoYXJlZCkKK3sKKyAgICByZXR1cm4gc2hh
cmVkID8gYWRvcHRSZWYobmV3IFJlc291cmNlQnVmZmVyKHNoYXJlZCkpIDogbnVsbHB0cjsKK30K
KworY29uc3QgY2hhciogUmVzb3VyY2VCdWZmZXI6OmRhdGEoKSBjb25zdAoreworICAgIHJldHVy
biBtX3NoYXJlZEJ1ZmZlci0+ZGF0YSgpOworfQorCit1bnNpZ25lZCBSZXNvdXJjZUJ1ZmZlcjo6
c2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hhcmVkQnVmZmVyLT5zaXplKCk7Cit9CisK
K2Jvb2wgUmVzb3VyY2VCdWZmZXI6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiBtX3No
YXJlZEJ1ZmZlci0+aXNFbXB0eSgpOworfQorCit2b2lkIFJlc291cmNlQnVmZmVyOjphcHBlbmQo
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKK3sKKyAgICBtX3NoYXJlZEJ1ZmZlci0+
YXBwZW5kKGRhdGEsIHNpemUpOworfQorCit2b2lkIFJlc291cmNlQnVmZmVyOjphcHBlbmQoU2hh
cmVkQnVmZmVyKiBidWZmZXIpCit7CisgICAgbV9zaGFyZWRCdWZmZXItPmFwcGVuZChidWZmZXIp
OworfQorCisjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQordm9pZCBSZXNv
dXJjZUJ1ZmZlcjo6YXBwZW5kKENGRGF0YVJlZiBkYXRhKQoreworICAgIEFTU0VSVChtX3NoYXJl
ZEJ1ZmZlcik7CisgICAgbV9zaGFyZWRCdWZmZXItPmFwcGVuZChkYXRhKTsKK30KKyNlbmRpZgor
Cit2b2lkIFJlc291cmNlQnVmZmVyOjpjbGVhcigpCit7CisgICAgbV9zaGFyZWRCdWZmZXItPmNs
ZWFyKCk7Cit9CisKK3Vuc2lnbmVkIFJlc291cmNlQnVmZmVyOjpnZXRTb21lRGF0YShjb25zdCBj
aGFyKiYgZGF0YSwgdW5zaWduZWQgcG9zaXRpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hh
cmVkQnVmZmVyLT5nZXRTb21lRGF0YShkYXRhLCBwb3NpdGlvbik7Cit9CisKK1NoYXJlZEJ1ZmZl
ciogUmVzb3VyY2VCdWZmZXI6OnNoYXJlZEJ1ZmZlcigpIGNvbnN0Cit7CisgICAgLy8gQ3VycmVu
dGx5IGFsbCBSZXNvdXJjZUJ1ZmZlcnMgYXJlIGJhY2tlZCBieSBTaGFyZWRCdWZmZXJzLgorICAg
IC8vIEluIHRoZSBmdXR1cmUgd2UgbWlnaHQgaGF2ZSB0byBjcmVhdGUgdGhlIFNoYXJlZEJ1ZmZl
ciBvbiBkZW1hbmQgaGVyZS4KKyAgICAvLyBXZSBzaG91bGQgYWxzbyBwaGFzZSBvdXQgYXMgbXVj
aCB1c2Ugb2YgdGhpcyBhY2Nlc3NvciBhcyBwb3NzaWJsZSBhbmQgaGF2ZSBjbGllbnRzCisgICAg
Ly8gZWl0aGVyIHVzZSB0aGUgUmVzb3VyY2VCdWZmZXIgZGlyZWN0bHkgb3IgdXNlIGdldFNvbWVE
YXRhKCkgd2hlbiBzZW5zaWNhbC4KKyAgICByZXR1cm4gbV9zaGFyZWRCdWZmZXIuZ2V0KCk7Cit9
CisKK1Bhc3NSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IFJlc291cmNlQnVmZmVyOjpjb3B5KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VCdWZmZXI6OmFkb3B0U2hhcmVkQnVmZmVyKG1fc2hh
cmVkQnVmZmVyLT5jb3B5KCkpOworfQorCisjaWYgVVNFKENGKQorUmV0YWluUHRyPENGRGF0YVJl
Zj4gUmVzb3VyY2VCdWZmZXI6OmNyZWF0ZUNGRGF0YSgpCit7CisgICAgcmV0dXJuIG1fc2hhcmVk
QnVmZmVyLT5jcmVhdGVDRkRhdGEoKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2M2Iw
OGFiMWI0ODI5YjY1NzFhNWI2MDQzOWIyOWQxOWVhYTEyYmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuaApAQCAtMCwwICsxLDg5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZXNv
dXJjZUJ1ZmZlcl9oCisjZGVmaW5lIFJlc291cmNlQnVmZmVyX2gKKworI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCisjaWYgVVNFKEZPVU5EQVRJ
T04pCitPQkpDX0NMQVNTIE5TRGF0YTsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNoYXJlZEJ1ZmZlcjsKKworY2xhc3MgUmVzb3VyY2VCdWZmZXIgOiBwdWJsaWMgUmVm
Q291bnRlZDxSZXNvdXJjZUJ1ZmZlcj4geworcHVibGljOgorCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8UmVzb3VyY2VCdWZmZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZXNvdXJj
ZUJ1ZmZlcik7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gY3JlYXRl
KGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIHNpemUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBS
ZXNvdXJjZUJ1ZmZlcihkYXRhLCBzaXplKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZXNv
dXJjZUJ1ZmZlcj4gYWRvcHRTaGFyZWRCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsK
KworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflJlc291cmNlQnVmZmVyKCk7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGNvbnN0IGNoYXIqIGRhdGEoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBhcHBlbmQoY29uc3QgY2hhciosIHVuc2lnbmVkKTsKKyAgICB2b2lkIGFwcGVuZChTaGFy
ZWRCdWZmZXIqKTsKKyNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCisgICAg
dm9pZCBhcHBlbmQoQ0ZEYXRhUmVmKTsKKyNlbmRpZgorICAgIHZvaWQgY2xlYXIoKTsKKyAgICAK
KyAgICB1bnNpZ25lZCBnZXRTb21lRGF0YShjb25zdCBjaGFyKiYgZGF0YSwgdW5zaWduZWQgcG9z
aXRpb24gPSAwKSBjb25zdDsKKyAgICAKKyAgICBXRUJDT1JFX0VYUE9SVCBTaGFyZWRCdWZmZXIq
IHNoYXJlZEJ1ZmZlcigpIGNvbnN0OworI2lmIFVTRShGT1VOREFUSU9OKQorICAgIHZvaWQgdHJ5
UmVwbGFjZVNoYXJlZEJ1ZmZlckNvbnRlbnRzKFNoYXJlZEJ1ZmZlciopOworI2VuZGlmCisgICAg
UGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gY29weSgpIGNvbnN0OworCisjaWYgVVNFKEZPVU5E
QVRJT04pCisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPE5TRGF0YT4gY3JlYXRlTlNEYXRh
KCk7CisjZW5kaWYKKyNpZiBVU0UoQ0YpCisgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gY3JlYXRl
Q0ZEYXRhKCk7CisjZW5kaWYKKworcHJvdGVjdGVkOgorICAgIFdFQkNPUkVfRVhQT1JUIFJlc291
cmNlQnVmZmVyKCk7CisKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VCdWZm
ZXIoY29uc3QgY2hhciosIHVuc2lnbmVkKTsKKyAgICBSZXNvdXJjZUJ1ZmZlcihQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4pOworCisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9zaGFyZWRCdWZm
ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXNvdXJjZUJ1
ZmZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA0M2I5
YzNmMDg4YmFmMzRmODE5ODBhZDM4MzkxMTllODI1Njg5NTA4Li4yYzgxZmEzNGM2NmNiMGRkYzMz
ZjhmNDYyNzMyNWNlM2MwMTBlNWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5j
bHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aCIKQEAgLTIyMSwxMiArMjIyLDEyIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1
ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgsIFNoYXJlZEJ1CiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmIChkYXRhUGF5bG9hZFR5cGUgPT0gRGF0YVBheWxvYWRXaG9sZVJl
c291cmNlKSB7Ci0gICAgICAgIG1fcmVzb3VyY2VEYXRhID0gYnVmZmVyID8gYnVmZmVyIDogU2hh
cmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgbV9yZXNvdXJjZURhdGEg
PSBidWZmZXIgPyBSZXNvdXJjZUJ1ZmZlcjo6YWRvcHRTaGFyZWRCdWZmZXIoYnVmZmVyKSA6IFJl
c291cmNlQnVmZmVyOjpjcmVhdGUoZGF0YSwgbGVuZ3RoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICAgICAgCiAgICAgaWYgKCFtX3Jlc291cmNlRGF0YSkKLSAgICAgICAgbV9yZXNvdXJj
ZURhdGEgPSBidWZmZXIgPyBidWZmZXIgOiBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBsZW5n
dGgpOworICAgICAgICBtX3Jlc291cmNlRGF0YSA9IGJ1ZmZlciA/IFJlc291cmNlQnVmZmVyOjph
ZG9wdFNoYXJlZEJ1ZmZlcihidWZmZXIpIDogUmVzb3VyY2VCdWZmZXI6OmNyZWF0ZShkYXRhLCBs
ZW5ndGgpOwogICAgIGVsc2UgewogICAgICAgICBpZiAoYnVmZmVyKQogICAgICAgICAgICAgbV9y
ZXNvdXJjZURhdGEtPmFwcGVuZChidWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaAppbmRleCAxNjE1ZjZkOWJmOGRjMzRhNGU5YmNmNDZiYjYzYjY4ZjZjZmRhMDFhLi44
ZDA5NGM2NGVmODE3ZjFkZmJmMTZlOWU5YmIzNTEyM2FlMDlkZjE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBEb2N1bWVudExv
YWRlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVMb2FkZXI7CiBjbGFzcyBVUkw7CitjbGFz
cyBSZXNvdXJjZUJ1ZmZlcjsKIAogI2lmIFVTRShRVUlDS19MT09LKQogY2xhc3MgUXVpY2tMb29r
SGFuZGxlOwpAQCAtODcsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbGVh
c2VSZXNvdXJjZXMoKTsKICAgICBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSgpIGNv
bnN0OwogCi0gICAgU2hhcmVkQnVmZmVyKiByZXNvdXJjZURhdGEoKSBjb25zdCB7IHJldHVybiBt
X3Jlc291cmNlRGF0YS5nZXQoKTsgfQorICAgIFJlc291cmNlQnVmZmVyKiByZXNvdXJjZURhdGEo
KSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlRGF0YS5nZXQoKTsgfQogICAgIHZvaWQgY2xlYXJS
ZXNvdXJjZURhdGEoKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNTdWJyZXNvdXJjZUxvYWRl
cigpOwpAQCAtMjAzLDcgKzIwNCw3IEBAIHByaXZhdGU6CiAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
bV9yZXF1ZXN0OwogICAgIFJlc291cmNlUmVxdWVzdCBtX29yaWdpbmFsUmVxdWVzdDsgLy8gQmVm
b3JlIHJlZGlyZWN0cy4KLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX3Jlc291cmNlRGF0YTsK
KyAgICBSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IG1fcmVzb3VyY2VEYXRhOwogICAgIAogICAgIHVu
c2lnbmVkIGxvbmcgbV9pZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmNwcAppbmRleCAyNmEzNGUyM2ViOWRmOWNiYzQ3NmRjNGY5ZTRjMmJjN2M1
NWVmNWQzLi43ZDQwZTYzNWQ0ZDA0NmQ2OThkMTExNjAxNjhkMTg2NDFjYWRmM2MxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlQWN0aXZpdHlBc3NlcnRpb25Ub2tlbi5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVy
LmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0Nv
dW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0yMzIsMTAgKzIzMywx
MSBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvKiBi
dWZmZXIgPSByZXNvdXJjZURhdGEoKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGJ1ZmZl
ciA9IHJlc291cmNlRGF0YSgpOwogICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50ICYm
IGJ1ZmZlciAmJiBidWZmZXItPnNpemUoKSkgewogICAgICAgICAvLyBUaGUgcmVzb3VyY2UgZGF0
YSB3aWxsIGNoYW5nZSBhcyB0aGUgbmV4dCBwYXJ0IGlzIGxvYWRlZCwgc28gd2UgbmVlZCB0byBt
YWtlIGEgY29weS4KLSAgICAgICAgbV9yZXNvdXJjZS0+ZmluaXNoTG9hZGluZygmYnVmZmVyLT5j
b3B5KCkuZ2V0KCkpOworICAgICAgICBSZWZQdHI8UmVzb3VyY2VCdWZmZXI+IGNvcGllZERhdGEg
PSBSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7
CisgICAgICAgIG1fcmVzb3VyY2UtPmZpbmlzaExvYWRpbmcoY29waWVkRGF0YS5nZXQoKSk7CiAg
ICAgICAgIGNsZWFyUmVzb3VyY2VEYXRhKCk7CiAgICAgICAgIC8vIFNpbmNlIGEgc3VicmVzb3Vy
Y2UgbG9hZGVyIGRvZXMgbm90IGxvYWQgbXVsdGlwYXJ0IHNlY3Rpb25zIHByb2dyZXNzaXZlbHks
IGRhdGEgd2FzIGRlbGl2ZXJlZCB0byB0aGUgbG9hZGVyIGFsbCBhdCBvbmNlLiAgICAgICAgCiAg
ICAgICAgIC8vIEFmdGVyIHRoZSBmaXJzdCBtdWx0aXBhcnQgc2VjdGlvbiBpcyBjb21wbGV0ZSwg
c2lnbmFsIHRvIGRlbGVnYXRlcyB0aGF0IHRoaXMgbG9hZCBpcyAiZmluaXNoZWQiIApAQCAtMjcx
LDggKzI3Myw4IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZm
ZXIoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgUGFzCiAgICAgUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoZGF0YSwgbGVuZ3RoLCBidWZmZXIsIGVuY29kZWREYXRh
TGVuZ3RoLCBkYXRhUGF5bG9hZFR5cGUpOwogCiAgICAgaWYgKCFtX2xvYWRpbmdNdWx0aXBhcnRD
b250ZW50KSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZURhdGEgPSB0aGlzLT5yZXNvdXJj
ZURhdGEoKSkKLSAgICAgICAgICAgIG1fcmVzb3VyY2UtPmFkZERhdGFCdWZmZXIoKnJlc291cmNl
RGF0YSk7CisgICAgICAgIGlmIChSZXNvdXJjZUJ1ZmZlciogcmVzb3VyY2VEYXRhID0gdGhpcy0+
cmVzb3VyY2VEYXRhKCkpCisgICAgICAgICAgICBtX3Jlc291cmNlLT5hZGREYXRhQnVmZmVyKHJl
c291cmNlRGF0YSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVzb3VyY2UtPmFkZERh
dGEoYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiBkYXRhLCBidWZmZXIgPyBidWZmZXItPnNpemUo
KSA6IGxlbmd0aCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Rl
eHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVy
LmNwcAppbmRleCAwZjI3YjkyODA3ZjM5MWNmNDBlZjhmZWJlMzg5MTU3MzdmMDM1YzJiLi4zNTNj
ZWYyNzM0MmNlZDhmZTFkN2IyZTU4NjNiNWY0NWM5MmRhNTRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMzYsOCArMzYsOCBAQAogI2luY2x1ZGUgIkNy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJWVFRD
dWUuaCIKICNpbmNsdWRlICJXZWJWVFRQYXJzZXIuaCIKIApAQCAtODcsNyArODcsNyBAQCB2b2lk
IFRleHRUcmFja0xvYWRlcjo6cHJvY2Vzc05ld0N1ZURhdGEoQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlKQogICAgIGlmIChtX3N0YXRlID09IEZhaWxlZCB8fCAhcmVzb3VyY2UtPnJlc291cmNlQnVm
ZmVyKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBhdXRvKiBidWZmZXIgPSByZXNvdXJj
ZS0+cmVzb3VyY2VCdWZmZXIoKTsKKyAgICBSZXNvdXJjZUJ1ZmZlciogYnVmZmVyID0gcmVzb3Vy
Y2UtPnJlc291cmNlQnVmZmVyKCk7CiAgICAgaWYgKG1fcGFyc2VPZmZzZXQgPT0gYnVmZmVyLT5z
aXplKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCBlOTU0YTMzN2Uw
ODI3NzdjODNjNTNiNmNlYWI5NDlkNmQ4NTA1NjliLi42MzQyMTk0Y2U3OGYxMDVmZTMzYWFmZTQ5
YzFhNjU0ZGI1NTA2NjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk1hbmlmZXN0UGFy
c2VyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yNTMsOCArMjU0LDExIEBAIHZvaWQgQXBwbGljYXRp
b25DYWNoZUdyb3VwOjpmaW5pc2hlZExvYWRpbmdNYWluUmVzb3VyY2UoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlcikKICAgICAgICAgICAgICAgICByZXNvdXJjZS0+YWRkVHlwZShBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2U6Ok1hc3Rlcik7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFyZXNvdXJjZS0+
c3RvcmFnZUlEKCkpOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IG1fbmV3ZXN0Q2FjaGUtPmFkZFJlc291cmNlKEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3Jl
YXRlKHVybCwgbG9hZGVyLT5yZXNwb25zZSgpLCBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6Ok1h
c3RlciwgbG9hZGVyLT5tYWluUmVzb3VyY2VEYXRhKCkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gYnVmZmVyID0gbG9hZGVyLT5tYWluUmVz
b3VyY2VEYXRhKCk7CisgICAgICAgICAgICBtX25ld2VzdENhY2hlLT5hZGRSZXNvdXJjZShBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIGxvYWRlci0+cmVzcG9uc2UoKSwgQXBw
bGljYXRpb25DYWNoZVJlc291cmNlOjpNYXN0ZXIsIGJ1ZmZlciA/IGJ1ZmZlci0+c2hhcmVkQnVm
ZmVyKCkgOiAwKSk7CisgICAgICAgIH0KKwogICAgICAgICBicmVhazsKICAgICBjYXNlIEZhaWx1
cmU6CiAgICAgICAgIC8vIENhY2hlIHVwZGF0ZSBoYXMgYmVlbiBhIGZhaWx1cmUsIHNvIHRoZXJl
IGlzIG5vIHJlYXNvbiB0byBrZWVwIHRoZSBkb2N1bWVudCBhc3NvY2lhdGVkIHdpdGggdGhlIGlu
Y29tcGxldGUgY2FjaGUKQEAgLTI3Miw4ICsyNzYsMTAgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
R3JvdXA6OmZpbmlzaGVkTG9hZGluZ01haW5SZXNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVy
KQogICAgICAgICAgICAgICAgIHJlc291cmNlLT5hZGRUeXBlKEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZTo6TWFzdGVyKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoIXJlc291cmNlLT5zdG9yYWdl
SUQoKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9jYWNo
ZUJlaW5nVXBkYXRlZC0+YWRkUmVzb3VyY2UoQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpjcmVh
dGUodXJsLCBsb2FkZXItPnJlc3BvbnNlKCksIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFz
dGVyLCBsb2FkZXItPm1haW5SZXNvdXJjZURhdGEoKSkpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBidWZmZXIgPSBsb2FkZXItPm1haW5SZXNv
dXJjZURhdGEoKTsKKyAgICAgICAgICAgIG1fY2FjaGVCZWluZ1VwZGF0ZWQtPmFkZFJlc291cmNl
KEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Y3JlYXRlKHVybCwgbG9hZGVyLT5yZXNwb25zZSgp
LCBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6Ok1hc3RlciwgYnVmZmVyID8gYnVmZmVyLT5zaGFy
ZWRCdWZmZXIoKSA6IDApKTsKKyAgICAgICAgfQogICAgICAgICAvLyBUaGUgImNhY2hlZCIgZXZl
bnQgd2lsbCBiZSBwb3N0ZWQgdG8gYWxsIGFzc29jaWF0ZWQgZG9jdW1lbnRzIG9uY2UgdXBkYXRl
IGlzIGNvbXBsZXRlLgogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCmluZGV4IDk3MjM0
NmEwMDgzYmE2ZTQ0ZTNlMjQ4MjRjZWFhMzRkMGEzNzFlMjQuLjI0Y2Y0YmVlZGVkZjZlNDM2YTlk
ZTgyNGIzYzNjZTVlOTdjYzkzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmFuZ2Uu
aCIKKyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CkBAIC01NDks
NyArNTUwLDkgQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiBMZWdhY3lXZWJBcmNoaXZl
OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBtYXJrdXBTdHJpbmcKICNlbmRpZgogICAgICAgICAgICAg
ICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291
cmNlRm9yUmVxdWVzdChyZXF1ZXN0LCBmcmFtZS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAg
ICAgICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiByZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6Y3Jl
YXRlKGNhY2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpLCBzdWJyZXNvdXJjZVVSTCwgY2Fj
aGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNl
QnVmZmVyKiBkYXRhID0gY2FjaGVkUmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CisKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKFJlZlB0cjxBcmNoaXZlUmVzb3VyY2U+IHJlc291cmNlID0gQXJj
aGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YSA/IGRhdGEtPnNoYXJlZEJ1ZmZlcigpIDogMCwgc3Vi
cmVzb3VyY2VVUkwsIGNhY2hlZFJlc291cmNlLT5yZXNwb25zZSgpKSkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgc3VicmVzb3VyY2VzLmFwcGVuZChXVEY6Om1vdmUocmVzb3VyY2UpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5j
cHAKaW5kZXggZTM3MDEzOGViMDhlOTkwMDRhNGNmZWZlZmM0ZTA5ZTRmYWNiMDMyOS4uYTIwODFi
ZWE0Y2E1NjNiODUwNDY1M2JkMWRiNTAwOTFhYTkzNDJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMzMsNyArMzMs
NyBAQAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJz
LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
KyNpbmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50
cy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KQEAgLTkwLDEzICs5MCwxMyBAQCBjb25zdCBTdHJpbmcgQ2FjaGVkQ1NTU3R5
bGVTaGVldDo6c2hlZXRUZXh0KGJvb2wgZW5mb3JjZU1JTUVUeXBlLCBib29sKiBoYXNWYWxpZAog
ICAgIHJldHVybiBtX2RlY29kZXItPmRlY29kZUFuZEZsdXNoKG1fZGF0YS0+ZGF0YSgpLCBtX2Rh
dGEtPnNpemUoKSk7CiB9CiAKLXZvaWQgQ2FjaGVkQ1NTU3R5bGVTaGVldDo6ZmluaXNoTG9hZGlu
ZyhTaGFyZWRCdWZmZXIqIGRhdGEpCit2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmZpbmlzaExv
YWRpbmcoUmVzb3VyY2VCdWZmZXIqIGRhdGEpCiB7CiAgICAgbV9kYXRhID0gZGF0YTsKLSAgICBz
ZXRFbmNvZGVkU2l6ZShkYXRhID8gZGF0YS0+c2l6ZSgpIDogMCk7CisgICAgc2V0RW5jb2RlZFNp
emUobV9kYXRhLmdldCgpID8gbV9kYXRhLT5zaXplKCkgOiAwKTsKICAgICAvLyBEZWNvZGUgdGhl
IGRhdGEgdG8gZmluZCBvdXQgdGhlIGVuY29kaW5nIGFuZCBrZWVwIHRoZSBzaGVldCB0ZXh0IGFy
b3VuZCBkdXJpbmcgY2hlY2tOb3RpZnkoKQotICAgIGlmIChkYXRhKQotICAgICAgICBtX2RlY29k
ZWRTaGVldFRleHQgPSBtX2RlY29kZXItPmRlY29kZUFuZEZsdXNoKGRhdGEtPmRhdGEoKSwgZGF0
YS0+c2l6ZSgpKTsKKyAgICBpZiAobV9kYXRhKQorICAgICAgICBtX2RlY29kZWRTaGVldFRleHQg
PSBtX2RlY29kZXItPmRlY29kZUFuZEZsdXNoKG1fZGF0YS0+ZGF0YSgpLCBtX2RhdGEtPnNpemUo
KSk7CiAgICAgc2V0TG9hZGluZyhmYWxzZSk7CiAgICAgY2hlY2tOb3RpZnkoKTsKICAgICAvLyBD
bGVhciB0aGUgZGVjb2RlZCB0ZXh0IGFzIGl0IGlzIHVubGlrZWx5IHRvIGJlIG5lZWRlZCBpbW1l
ZGlhdGVseSBhZ2FpbiBhbmQgaXMgY2hlYXAgdG8gcmVnZW5lcmF0ZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCmluZGV4IDk0MGZkMWYx
OWQ3ZmNlODIzODIxZmJlYzM5N2VhZDFmMDc2YjQzZGMuLjgwZjk5NGNiMzAyZjIzYjY1NzgyZGQz
ZjYzOTI2M2U2YjFhOWEyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIFN0cmluZyBlbmNvZGluZygpIGNvbnN0IG92ZXJyaWRl
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoTG9hZGluZyhTaGFyZWRCdWZmZXIqKSBvdmVy
cmlkZTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoUmVzb3VyY2VCdWZmZXIq
KSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIG92
ZXJyaWRlOwogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEZvbnQuY3BwCmluZGV4IDFlZjYyMmUyNGJkZTZiNTk0ZTM4YjdmNGQ1MWY5MjZlMmRiOTZj
NTUuLjEzNjgyZmEyNzc4ZGZkZjYxYWNlZDljM2I5NTA0ZjY2N2U3MzdmZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3Jt
RGF0YS5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VE
ZWNvZGVyLmgiCiAjaW5jbHVkZSAiVHlwZWRFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yLmgiCkBA
IC03NSw3ICs3Niw3IEBAIHZvaWQgQ2FjaGVkRm9udDo6ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291
cmNlQ2xpZW50KiBjKQogICAgICAgICBzdGF0aWNfY2FzdDxDYWNoZWRGb250Q2xpZW50Kj4oYykt
PmZvbnRMb2FkZWQodGhpcyk7CiB9CiAKLXZvaWQgQ2FjaGVkRm9udDo6ZmluaXNoTG9hZGluZyhT
aGFyZWRCdWZmZXIqIGRhdGEpCit2b2lkIENhY2hlZEZvbnQ6OmZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VCdWZmZXIqIGRhdGEpCiB7CiAgICAgbV9kYXRhID0gZGF0YTsKICAgICBzZXRFbmNvZGVkU2l6
ZShtX2RhdGEuZ2V0KCkgPyBtX2RhdGEtPnNpemUoKSA6IDApOwpAQCAtOTQsMjcgKzk1LDMwIEBA
IHZvaWQgQ2FjaGVkRm9udDo6YmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIq
IGRsKQogYm9vbCBDYWNoZWRGb250OjplbnN1cmVDdXN0b21Gb250RGF0YSgpCiB7CiAgICAgaWYg
KCFtX2ZvbnREYXRhICYmICFlcnJvck9jY3VycmVkKCkgJiYgIWlzTG9hZGluZygpICYmIG1fZGF0
YSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBtX2RhdGE7Ci0gICAg
ICAgIGJvb2wgZm9udElzV09GRiA9IGZhbHNlOworICAgICAgICBTaGFyZWRCdWZmZXIqIGJ1ZmZl
ciA9IG1fZGF0YS5nZXQoKS0+c2hhcmVkQnVmZmVyKCk7CisgICAgICAgIEFTU0VSVChidWZmZXIp
OwogCisgICAgICAgIGJvb2wgZm9udElzV09GRiA9IGZhbHNlOwogI2lmICghUExBVEZPUk0oTUFD
KSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwOTApICYmICghUExBVEZP
Uk0oSU9TKSB8fCBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDgwMDAwKQotICAg
ICAgICBpZiAoaXNXT0ZGKGJ1ZmZlci5nZXQoKSkpIHsKLSAgICAgICAgICAgIFZlY3RvcjxjaGFy
PiBjb252ZXJ0ZWRGb250OwotICAgICAgICAgICAgaWYgKCFjb252ZXJ0V09GRlRvU2ZudChidWZm
ZXIuZ2V0KCksIGNvbnZlcnRlZEZvbnQpKQorICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBz
Zm50QnVmZmVyOworCisgICAgICAgIGZvbnRJc1dPRkYgPSBpc1dPRkYoYnVmZmVyKTsKKyAgICAg
ICAgaWYgKGZvbnRJc1dPRkYpIHsKKyAgICAgICAgICAgIFZlY3RvcjxjaGFyPiBzZm50OworICAg
ICAgICAgICAgaWYgKGNvbnZlcnRXT0ZGVG9TZm50KGJ1ZmZlciwgc2ZudCkpIHsKKyAgICAgICAg
ICAgICAgICBzZm50QnVmZmVyID0gU2hhcmVkQnVmZmVyOjphZG9wdFZlY3RvcihzZm50KTsKKyAg
ICAgICAgICAgICAgICBidWZmZXIgPSBzZm50QnVmZmVyLmdldCgpOworICAgICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICAgICAgYnVmZmVyID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6YWRvcHRWZWN0b3IoY29u
dmVydGVkRm9udCk7Ci0gICAgICAgICAgICAgICAgZm9udElzV09GRiA9IHRydWU7Ci0gICAgICAg
ICAgICB9CiAgICAgICAgIH0KICNlbmRpZgogCiAgICAgICAgIG1fZm9udERhdGEgPSBidWZmZXIg
PyBjcmVhdGVGb250Q3VzdG9tUGxhdGZvcm1EYXRhKCpidWZmZXIpIDogbnVsbHB0cjsKLSAgICAg
ICAgbV9oYXNDcmVhdGVkRm9udERhdGFXcmFwcGluZ1Jlc291cmNlID0gbV9mb250RGF0YSAmJiAh
Zm9udElzV09GRjsKLSAgICAgICAgaWYgKCFtX2ZvbnREYXRhKQorICAgICAgICBpZiAobV9mb250
RGF0YSkKKyAgICAgICAgICAgIG1faGFzQ3JlYXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZSA9
ICFmb250SXNXT0ZGOworICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZXRTdGF0dXMoRGVjb2Rl
RXJyb3IpOwogICAgIH0KLQogICAgIHJldHVybiBtX2ZvbnREYXRhLmdldCgpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaAppbmRleCAyYTI2N2NjY2IxNTExMTI3
NzU1OTA1YzllMTc0N2YxOGVjN2JlYjZiLi5kOTQzNzMwNTUwNjQzMTkyYzk2NjM1NzFhNWZkZDRk
MjQwOWJiNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Rm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAg
LTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNv
dXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCopIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKikgb3Zl
cnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWxsQ2xpZW50c1JlbW92ZWQoKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggZGIy
YWU5N2YyOTc4YTUwZmFiODhiMmZhZGVlODljODU3MDZjMDc3OC4uYjBmZGExODQ5YzZhNzI2NGNk
OTI3M2Q2ZDliNjIzYzQzNmNiNjE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1
ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU1ZHSW1hZ2UuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0xMTUsMzEgKzExNiwz
MSBAQCB2b2lkIENhY2hlZEltYWdlOjpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRS
ZXNvdXJjZUxvYWRlciwgY29uc3QgUmVzb3VyYwogICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTsK
IH0KIAotdm9pZCBDYWNoZWRJbWFnZTo6ZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50
KiBjbGllbnQpCit2b2lkIENhY2hlZEltYWdlOjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VD
bGllbnQqIGMpCiB7CiAgICAgaWYgKG1fZGF0YSAmJiAhbV9pbWFnZSAmJiAhZXJyb3JPY2N1cnJl
ZCgpKSB7CiAgICAgICAgIGNyZWF0ZUltYWdlKCk7Ci0gICAgICAgIG1faW1hZ2UtPnNldERhdGEo
bV9kYXRhLCB0cnVlKTsKKyAgICAgICAgbV9pbWFnZS0+c2V0RGF0YShtX2RhdGEtPnNoYXJlZEJ1
ZmZlcigpLCB0cnVlKTsKICAgICB9CiAgICAgCi0gICAgQVNTRVJUKGNsaWVudC0+cmVzb3VyY2VD
bGllbnRUeXBlKCkgPT0gQ2FjaGVkSW1hZ2VDbGllbnQ6OmV4cGVjdGVkVHlwZSgpKTsKKyAgICBB
U1NFUlQoYy0+cmVzb3VyY2VDbGllbnRUeXBlKCkgPT0gQ2FjaGVkSW1hZ2VDbGllbnQ6OmV4cGVj
dGVkVHlwZSgpKTsKICAgICBpZiAobV9pbWFnZSAmJiAhbV9pbWFnZS0+aXNOdWxsKCkpCi0gICAg
ICAgIHN0YXRpY19jYXN0PENhY2hlZEltYWdlQ2xpZW50Kj4oY2xpZW50KS0+aW1hZ2VDaGFuZ2Vk
KHRoaXMpOworICAgICAgICBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZUNsaWVudCo+KGMpLT5pbWFn
ZUNoYW5nZWQodGhpcyk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KGNsaWVu
dCk7CisgICAgQ2FjaGVkUmVzb3VyY2U6OmRpZEFkZENsaWVudChjKTsKIH0KIAotdm9pZCBDYWNo
ZWRJbWFnZTo6ZGlkUmVtb3ZlQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50KiBjbGllbnQpCit2
b2lkIENhY2hlZEltYWdlOjpkaWRSZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMp
CiB7Ci0gICAgQVNTRVJUKGNsaWVudCk7Ci0gICAgQVNTRVJUKGNsaWVudC0+cmVzb3VyY2VDbGll
bnRUeXBlKCkgPT0gQ2FjaGVkSW1hZ2VDbGllbnQ6OmV4cGVjdGVkVHlwZSgpKTsKKyAgICBBU1NF
UlQoYyk7CisgICAgQVNTRVJUKGMtPnJlc291cmNlQ2xpZW50VHlwZSgpID09IENhY2hlZEltYWdl
Q2xpZW50OjpleHBlY3RlZFR5cGUoKSk7CiAKLSAgICBtX3BlbmRpbmdDb250YWluZXJTaXplUmVx
dWVzdHMucmVtb3ZlKHN0YXRpY19jYXN0PENhY2hlZEltYWdlQ2xpZW50Kj4oY2xpZW50KSk7Cisg
ICAgbV9wZW5kaW5nQ29udGFpbmVyU2l6ZVJlcXVlc3RzLnJlbW92ZShzdGF0aWNfY2FzdDxDYWNo
ZWRJbWFnZUNsaWVudCo+KGMpKTsKIAogICAgIGlmIChtX3N2Z0ltYWdlQ2FjaGUpCi0gICAgICAg
IG1fc3ZnSW1hZ2VDYWNoZS0+cmVtb3ZlQ2xpZW50RnJvbUNhY2hlKHN0YXRpY19jYXN0PENhY2hl
ZEltYWdlQ2xpZW50Kj4oY2xpZW50KSk7CisgICAgICAgIG1fc3ZnSW1hZ2VDYWNoZS0+cmVtb3Zl
Q2xpZW50RnJvbUNhY2hlKHN0YXRpY19jYXN0PENhY2hlZEltYWdlQ2xpZW50Kj4oYykpOwogCi0g
ICAgQ2FjaGVkUmVzb3VyY2U6OmRpZFJlbW92ZUNsaWVudChjbGllbnQpOworICAgIENhY2hlZFJl
c291cmNlOjpkaWRSZW1vdmVDbGllbnQoYyk7CiB9CiAKIHZvaWQgQ2FjaGVkSW1hZ2U6OnN3aXRj
aENsaWVudHNUb1JldmFsaWRhdGVkUmVzb3VyY2UoKQpAQCAtMzY0LDE2ICszNjUsMTggQEAgaW5s
aW5lIHZvaWQgQ2FjaGVkSW1hZ2U6OmNsZWFySW1hZ2UoKQogICAgIG1faW1hZ2UuY2xlYXIoKTsK
IH0KIAotdm9pZCBDYWNoZWRJbWFnZTo6YWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKFNoYXJlZEJ1
ZmZlciYgZGF0YSkKK3ZvaWQgQ2FjaGVkSW1hZ2U6OmFkZEluY3JlbWVudGFsRGF0YUJ1ZmZlcihS
ZXNvdXJjZUJ1ZmZlciogZGF0YSkKIHsKLSAgICBtX2RhdGEgPSAmZGF0YTsKKyAgICBtX2RhdGEg
PSBkYXRhOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgY3JlYXRlSW1h
Z2UoKTsKIAogICAgIC8vIEhhdmUgdGhlIGltYWdlIHVwZGF0ZSBpdHMgZGF0YSBmcm9tIGl0cyBp
bnRlcm5hbCBidWZmZXIuCiAgICAgLy8gSXQgd2lsbCBub3QgZG8gYW55dGhpbmcgbm93LCBidXQg
d2lsbCBkZWxheSBkZWNvZGluZyB1bnRpbAogICAgIC8vIHF1ZXJpZWQgZm9yIGluZm8gKGxpa2Ug
c2l6ZSBvciBzcGVjaWZpYyBpbWFnZSBmcmFtZXMpLgotICAgIGJvb2wgc2l6ZUF2YWlsYWJsZSA9
IG1faW1hZ2UtPnNldERhdGEoJmRhdGEsIGZhbHNlKTsKKyAgICBib29sIHNpemVBdmFpbGFibGUg
PSBtX2ltYWdlLT5zZXREYXRhKG1fZGF0YS0+c2hhcmVkQnVmZmVyKCksIGZhbHNlKTsKICAgICBp
ZiAoIXNpemVBdmFpbGFibGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzk1LDI4ICszOTgsMjYg
QEAgdm9pZCBDYWNoZWRJbWFnZTo6YWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKFNoYXJlZEJ1ZmZl
ciYgZGF0YSkKICAgICBzZXRFbmNvZGVkU2l6ZShtX2ltYWdlLT5kYXRhKCkgPyBtX2ltYWdlLT5k
YXRhKCktPnNpemUoKSA6IDApOwogfQogCi12b2lkIENhY2hlZEltYWdlOjphZGREYXRhQnVmZmVy
KFNoYXJlZEJ1ZmZlciYgZGF0YSkKK3ZvaWQgQ2FjaGVkSW1hZ2U6OmFkZERhdGFCdWZmZXIoUmVz
b3VyY2VCdWZmZXIqIGRhdGEpCiB7Ci0gICAgQVNTRVJUKGRhdGFCdWZmZXJpbmdQb2xpY3koKSA9
PSBCdWZmZXJEYXRhKTsKKyAgICBBU1NFUlQobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3ko
KSA9PSBCdWZmZXJEYXRhKTsKICAgICBhZGRJbmNyZW1lbnRhbERhdGFCdWZmZXIoZGF0YSk7Ci0g
ICAgQ2FjaGVkUmVzb3VyY2U6OmFkZERhdGFCdWZmZXIoZGF0YSk7CiB9CiAKIHZvaWQgQ2FjaGVk
SW1hZ2U6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAg
IEFTU0VSVChkYXRhQnVmZmVyaW5nUG9saWN5KCkgPT0gRG9Ob3RCdWZmZXJEYXRhKTsKLSAgICBh
ZGRJbmNyZW1lbnRhbERhdGFCdWZmZXIoKlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0
aCkpOwotICAgIENhY2hlZFJlc291cmNlOjphZGREYXRhKGRhdGEsIGxlbmd0aCk7CisgICAgQVNT
RVJUKG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5KCkgPT0gRG9Ob3RCdWZmZXJEYXRhKTsK
KyAgICBhZGRJbmNyZW1lbnRhbERhdGFCdWZmZXIoUmVzb3VyY2VCdWZmZXI6OmNyZWF0ZShkYXRh
LCBsZW5ndGgpLmdldCgpKTsKIH0KIAotdm9pZCBDYWNoZWRJbWFnZTo6ZmluaXNoTG9hZGluZyhT
aGFyZWRCdWZmZXIqIGRhdGEpCit2b2lkIENhY2hlZEltYWdlOjpmaW5pc2hMb2FkaW5nKFJlc291
cmNlQnVmZmVyKiBkYXRhKQogewogICAgIG1fZGF0YSA9IGRhdGE7CiAgICAgaWYgKCFtX2ltYWdl
ICYmIGRhdGEpCiAgICAgICAgIGNyZWF0ZUltYWdlKCk7CiAKICAgICBpZiAobV9pbWFnZSkKLSAg
ICAgICAgbV9pbWFnZS0+c2V0RGF0YShkYXRhLCB0cnVlKTsKKyAgICAgICAgbV9pbWFnZS0+c2V0
RGF0YShtX2RhdGEtPnNoYXJlZEJ1ZmZlcigpLCB0cnVlKTsKIAogICAgIGlmICghbV9pbWFnZSB8
fCBtX2ltYWdlLT5pc051bGwoKSkgewogICAgICAgICAvLyBJbWFnZSBkZWNvZGluZyBmYWlsZWQ7
IHRoZSBpbWFnZSBkYXRhIGlzIG1hbGZvcm1lZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKaW5kZXggNTZkMmFhMWYzMzA4NmIyMzcwZGY0NjI1YzdlNGNiOGI3YWI1
NDE0Yi4uZmVlZjQ1MmM2Y2ZkMzY3MjQ3ODk0OWMxNmFjNjkwNjkzMzE1NDMzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTcxLDggKzcxLDggQEAgcHVi
bGljOgogICAgIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3Q7CiAgICAgYm9vbCBp
bWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0
YUJ1ZmZlcihTaGFyZWRCdWZmZXImKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNo
TG9hZGluZyhTaGFyZWRCdWZmZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0
YUJ1ZmZlcihSZXNvdXJjZUJ1ZmZlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmaW5p
c2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKikgb3ZlcnJpZGU7CiAKICAgICBlbnVtIFNpemVUeXBl
IHsKICAgICAgICAgVXNlZFNpemUsCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjcmVhdGVJbWFnZSgpOwogICAgIHZvaWQgY2xlYXJJbWFnZSgpOwogICAgIC8vIElmIG5vdCBu
dWxsLCBjaGFuZ2VSZWN0IGlzIHRoZSBjaGFuZ2VkIHBhcnQgb2YgdGhlIGltYWdlLgotICAgIHZv
aWQgbm90aWZ5T2JzZXJ2ZXJzKGNvbnN0IEludFJlY3QqIGNoYW5nZVJlY3QgPSBudWxscHRyKTsK
KyAgICB2b2lkIG5vdGlmeU9ic2VydmVycyhjb25zdCBJbnRSZWN0KiBjaGFuZ2VSZWN0ID0gMCk7
CiAgICAgdm9pZCBjaGVja1Nob3VsZFBhaW50QnJva2VuSW1hZ2UoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBzd2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKCkgb3ZlcnJpZGU7CkBAIC0x
MjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uQWR2YW5j
ZWQoY29uc3QgSW1hZ2UqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlZEluUmVj
dChjb25zdCBJbWFnZSosIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgYWRk
SW5jcmVtZW50YWxEYXRhQnVmZmVyKFNoYXJlZEJ1ZmZlciYpOworICAgIHZvaWQgYWRkSW5jcmVt
ZW50YWxEYXRhQnVmZmVyKFJlc291cmNlQnVmZmVyKik7CiAKICAgICB0eXBlZGVmIHN0ZDo6cGFp
cjxMYXlvdXRTaXplLCBmbG9hdD4gU2l6ZUFuZFpvb207CiAgICAgdHlwZWRlZiBIYXNoTWFwPGNv
bnN0IENhY2hlZEltYWdlQ2xpZW50KiwgU2l6ZUFuZFpvb20+IENvbnRhaW5lclNpemVSZXF1ZXN0
czsKQEAgLTEzMCw4ICsxMzAsOCBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPEltYWdlPiBtX2lt
YWdlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdJbWFnZUNhY2hlPiBtX3N2Z0ltYWdlQ2FjaGU7
Ci0gICAgdW5zaWduZWQgbV9pc01hbnVhbGx5Q2FjaGVkIDogMTsKLSAgICB1bnNpZ25lZCBtX3No
b3VsZFBhaW50QnJva2VuSW1hZ2UgOiAxOworICAgIHVuc2lnbmVkIGNoYXIgbV9pc01hbnVhbGx5
Q2FjaGVkIDogMTsKKyAgICB1bnNpZ25lZCBjaGFyIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSA6
IDE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA4MzNkYTY2MmE3MGZmMGZj
NGRmN2U1OWIxNzA3Yjk1YTZmN2VkNGFiLi41ZjI4MTMyYWU4ZGNlZGIzMTExZGY3MzljMjZkOTQx
OTExNzVkNmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmF3UmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
YXdSZXNvdXJjZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUNsaWVudFdhbGtlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5j
bHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmll
dy5oPgpAQCAtNDYsNyArNDYsNyBAQCBDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3Vy
Y2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFR5cGUgdHlwZQogICAgIEFTU0VS
VChpc01haW5PclJhd1Jlc291cmNlKCkpOwogfQogCi1jb25zdCBjaGFyKiBDYWNoZWRSYXdSZXNv
dXJjZTo6Y2FsY3VsYXRlSW5jcmVtZW50YWxEYXRhQ2h1bmsoU2hhcmVkQnVmZmVyKiBkYXRhLCB1
bnNpZ25lZCYgaW5jcmVtZW50YWxEYXRhTGVuZ3RoKQorY29uc3QgY2hhciogQ2FjaGVkUmF3UmVz
b3VyY2U6OmNhbGN1bGF0ZUluY3JlbWVudGFsRGF0YUNodW5rKFJlc291cmNlQnVmZmVyKiBkYXRh
LCB1bnNpZ25lZCYgaW5jcmVtZW50YWxEYXRhTGVuZ3RoKQogewogICAgIGluY3JlbWVudGFsRGF0
YUxlbmd0aCA9IDA7CiAgICAgaWYgKCFkYXRhKQpAQCAtNTgsMzcgKzU4LDM0IEBAIGNvbnN0IGNo
YXIqIENhY2hlZFJhd1Jlc291cmNlOjpjYWxjdWxhdGVJbmNyZW1lbnRhbERhdGFDaHVuayhTaGFy
ZWRCdWZmZXIqIGRhdGEsCiAgICAgcmV0dXJuIGRhdGEtPmRhdGEoKSArIHByZXZpb3VzRGF0YUxl
bmd0aDsKIH0KIAotdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6YWRkRGF0YUJ1ZmZlcihTaGFyZWRC
dWZmZXImIGRhdGEpCit2b2lkIENhY2hlZFJhd1Jlc291cmNlOjphZGREYXRhQnVmZmVyKFJlc291
cmNlQnVmZmVyKiBkYXRhKQogewogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jl
c291cmNlPiBwcm90ZWN0KHRoaXMpOwotICAgIEFTU0VSVChkYXRhQnVmZmVyaW5nUG9saWN5KCkg
PT0gQnVmZmVyRGF0YSk7Ci0gICAgbV9kYXRhID0gJmRhdGE7CisgICAgQVNTRVJUKG1fb3B0aW9u
cy5kYXRhQnVmZmVyaW5nUG9saWN5KCkgPT0gQnVmZmVyRGF0YSk7CisgICAgbV9kYXRhID0gZGF0
YTsKIAogICAgIHVuc2lnbmVkIGluY3JlbWVudGFsRGF0YUxlbmd0aDsKLSAgICBjb25zdCBjaGFy
KiBpbmNyZW1lbnRhbERhdGEgPSBjYWxjdWxhdGVJbmNyZW1lbnRhbERhdGFDaHVuaygmZGF0YSwg
aW5jcmVtZW50YWxEYXRhTGVuZ3RoKTsKLSAgICBzZXRFbmNvZGVkU2l6ZShkYXRhLnNpemUoKSk7
CisgICAgY29uc3QgY2hhciogaW5jcmVtZW50YWxEYXRhID0gY2FsY3VsYXRlSW5jcmVtZW50YWxE
YXRhQ2h1bmsoZGF0YSwgaW5jcmVtZW50YWxEYXRhTGVuZ3RoKTsKKyAgICBpZiAoZGF0YSkKKyAg
ICAgICAgc2V0RW5jb2RlZFNpemUoZGF0YS0+c2l6ZSgpKTsKICAgICBub3RpZnlDbGllbnRzRGF0
YVdhc1JlY2VpdmVkKGluY3JlbWVudGFsRGF0YSwgaW5jcmVtZW50YWxEYXRhTGVuZ3RoKTsKLSAg
ICBpZiAoZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09IERvTm90QnVmZmVyRGF0YSkgeworICAgIGlm
IChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09IERvTm90QnVmZmVyRGF0YSkgewog
ICAgICAgICBpZiAobV9sb2FkZXIpCiAgICAgICAgICAgICBtX2xvYWRlci0+c2V0RGF0YUJ1ZmZl
cmluZ1BvbGljeShEb05vdEJ1ZmZlckRhdGEpOwogICAgICAgICBjbGVhcigpOwotICAgICAgICBy
ZXR1cm47CiAgICAgfQotCi0gICAgQ2FjaGVkUmVzb3VyY2U6OmFkZERhdGFCdWZmZXIoZGF0YSk7
CiB9CiAKIHZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwg
dW5zaWduZWQgbGVuZ3RoKQogewotICAgIEFTU0VSVChkYXRhQnVmZmVyaW5nUG9saWN5KCkgPT0g
RG9Ob3RCdWZmZXJEYXRhKTsKKyAgICBBU1NFUlQobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xp
Y3koKSA9PSBEb05vdEJ1ZmZlckRhdGEpOwogICAgIG5vdGlmeUNsaWVudHNEYXRhV2FzUmVjZWl2
ZWQoZGF0YSwgbGVuZ3RoKTsKLSAgICBDYWNoZWRSZXNvdXJjZTo6YWRkRGF0YShkYXRhLCBsZW5n
dGgpOwogfQogCi12b2lkIENhY2hlZFJhd1Jlc291cmNlOjpmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1
ZmZlciogZGF0YSkKK3ZvaWQgQ2FjaGVkUmF3UmVzb3VyY2U6OmZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VCdWZmZXIqIGRhdGEpCiB7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVz
b3VyY2U+IHByb3RlY3QodGhpcyk7Ci0gICAgRGF0YUJ1ZmZlcmluZ1BvbGljeSBkYXRhQnVmZmVy
aW5nUG9saWN5ID0gdGhpcy0+ZGF0YUJ1ZmZlcmluZ1BvbGljeSgpOworICAgIERhdGFCdWZmZXJp
bmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSA9IG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9s
aWN5KCk7CiAgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gQnVmZmVyRGF0YSkgewogICAg
ICAgICBtX2RhdGEgPSBkYXRhOwogCkBAIC0xMDIsNyArOTksNyBAQCB2b2lkIENhY2hlZFJhd1Jl
c291cmNlOjpmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciogZGF0YSkKICAgICBtX2FsbG93RW5j
b2RlZERhdGFSZXBsYWNlbWVudCA9ICFtX2xvYWRlci0+aXNRdWlja0xvb2tSZXNvdXJjZSgpOwog
CiAgICAgQ2FjaGVkUmVzb3VyY2U6OmZpbmlzaExvYWRpbmcoZGF0YSk7Ci0gICAgaWYgKGRhdGFC
dWZmZXJpbmdQb2xpY3kgPT0gQnVmZmVyRGF0YSAmJiB0aGlzLT5kYXRhQnVmZmVyaW5nUG9saWN5
KCkgPT0gRG9Ob3RCdWZmZXJEYXRhKSB7CisgICAgaWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0g
QnVmZmVyRGF0YSAmJiBtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09IERvTm90QnVm
ZmVyRGF0YSkgewogICAgICAgICBpZiAobV9sb2FkZXIpCiAgICAgICAgICAgICBtX2xvYWRlci0+
c2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShEb05vdEJ1ZmZlckRhdGEpOwogICAgICAgICBjbGVhcigp
OwpAQCAtMjI1LDcgKzIyMiw3IEBAIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUhlYWRlckZvckNh
Y2hlUmV1c2UoSFRUUEhlYWRlck5hbWUgbmFtZSkKIAogYm9vbCBDYWNoZWRSYXdSZXNvdXJjZTo6
Y2FuUmV1c2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0KSBjb25zdAogewotICAg
IGlmIChkYXRhQnVmZmVyaW5nUG9saWN5KCkgPT0gRG9Ob3RCdWZmZXJEYXRhKQorICAgIGlmICht
X29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09IERvTm90QnVmZmVyRGF0YSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fcmVzb3VyY2VSZXF1ZXN0Lmh0dHBNZXRob2Qo
KSAhPSBuZXdSZXF1ZXN0Lmh0dHBNZXRob2QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKaW5kZXggMmNkNDU1YWNiMjUxZDA4MWZjMzRlYzBj
YzA2YmI5OWUzNTFhMTFjNC4uZjNjNjY4ZjJiZGI5ZmU0NmU5MzYyZTQyYjlkNjM3MjJkMDZjMmUy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmgKQEAgLTQ4LDkgKzQ4LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgYWRkRGF0YUJ1ZmZlcihTaGFyZWRCdWZmZXImKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkRGF0YUJ1ZmZlcihSZXNvdXJjZUJ1ZmZlciopIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoU2hhcmVkQnVmZmVyKikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVIVFRQU3RhdHVzQ29kZUVy
cm9ycygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
YWxsQ2xpZW50c1JlbW92ZWQoKSBvdmVycmlkZTsKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgYm9vbCBjYW5SZXVzZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIGNvbnN0IGNoYXIqIGNhbGN1bGF0ZUluY3JlbWVudGFsRGF0YUNo
dW5rKFNoYXJlZEJ1ZmZlciosIHVuc2lnbmVkJiBpbmNyZW1lbnRhbERhdGFMZW5ndGgpOworICAg
IGNvbnN0IGNoYXIqIGNhbGN1bGF0ZUluY3JlbWVudGFsRGF0YUNodW5rKFJlc291cmNlQnVmZmVy
KiwgdW5zaWduZWQmIGluY3JlbWVudGFsRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBub3RpZnlDbGll
bnRzRGF0YVdhc1JlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCk7CiAK
ICNpZiBVU0UoU09VUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IGNlZWU1OGMwMzI0NmY4YzhhZGVmZGYxNTEzNzZmMmIxY2U5YzM4YmIu
LjVhNGU0YTc3YzhmMmQ4Nzg5ZjA5MDFkN2EzYWM4ODA0NGNiOTk5ODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCIKICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgpAQCAtMTA3LDEwICsxMDgsMTAgQEAg
REVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVz
b3VyY2VMZWFrQ291bnRlciwgKCJDYWMKIAogQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkKLSAgICAsIG1fZGVjb2Rl
ZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVjb2RlZERhdGFEZWxl
dGlvblRpbWVyRmlyZWQsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJj
ZVR5cGUodHlwZSkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2xvYWRQ
cmlvcml0eShkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUodHlwZSkpCiAgICAgLCBtX3Jl
c3BvbnNlVGltZXN0YW1wKGN1cnJlbnRUaW1lKCkpCisgICAgLCBtX2RlY29kZWREYXRhRGVsZXRp
b25UaW1lcih0aGlzLCAmQ2FjaGVkUmVzb3VyY2U6OmRlY29kZWREYXRhRGVsZXRpb25UaW1lckZp
cmVkLCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5cGUp
KQogICAgICwgbV9sYXN0RGVjb2RlZEFjY2Vzc1RpbWUoMCkKICAgICAsIG1fbG9hZEZpbmlzaFRp
bWUoMCkKICAgICAsIG1fZW5jb2RlZFNpemUoMCkKQEAgLTI4NSwyMiArMjg2LDIyIEBAIHZvaWQg
Q2FjaGVkUmVzb3VyY2U6OmNoZWNrTm90aWZ5KCkKICAgICBpZiAoaXNMb2FkaW5nKCkgfHwgc3Rp
bGxOZWVkc0xvYWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VDbGll
bnRXYWxrZXI8Q2FjaGVkUmVzb3VyY2VDbGllbnQ+IHdhbGtlcihtX2NsaWVudHMpOwotICAgIHdo
aWxlIChDYWNoZWRSZXNvdXJjZUNsaWVudCogY2xpZW50ID0gd2Fsa2VyLm5leHQoKSkKLSAgICAg
ICAgY2xpZW50LT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICBDYWNoZWRSZXNvdXJjZUNsaWVu
dFdhbGtlcjxDYWNoZWRSZXNvdXJjZUNsaWVudD4gdyhtX2NsaWVudHMpOworICAgIHdoaWxlIChD
YWNoZWRSZXNvdXJjZUNsaWVudCogYyA9IHcubmV4dCgpKQorICAgICAgICBjLT5ub3RpZnlGaW5p
c2hlZCh0aGlzKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6YWRkRGF0YUJ1ZmZlcihTaGFy
ZWRCdWZmZXImKQordm9pZCBDYWNoZWRSZXNvdXJjZTo6YWRkRGF0YUJ1ZmZlcihSZXNvdXJjZUJ1
ZmZlciopCiB7Ci0gICAgQVNTRVJUKGRhdGFCdWZmZXJpbmdQb2xpY3koKSA9PSBCdWZmZXJEYXRh
KTsKKyAgICBBU1NFUlQobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3koKSA9PSBCdWZmZXJE
YXRhKTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJjZTo6YWRkRGF0YShjb25zdCBjaGFyKiwgdW5z
aWduZWQpCiB7Ci0gICAgQVNTRVJUKGRhdGFCdWZmZXJpbmdQb2xpY3koKSA9PSBEb05vdEJ1ZmZl
ckRhdGEpOworICAgIEFTU0VSVChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSgpID09IERv
Tm90QnVmZmVyRGF0YSk7CiB9CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2U6OmZpbmlzaExvYWRpbmco
U2hhcmVkQnVmZmVyKikKK3ZvaWQgQ2FjaGVkUmVzb3VyY2U6OmZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VCdWZmZXIqKQogewogICAgIHNldExvYWRpbmcoZmFsc2UpOwogICAgIGNoZWNrTm90aWZ5KCk7
CkBAIC0zOTAsMTUgKzM5MSwxNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjphZGRDbGllbnQoQ2Fj
aGVkUmVzb3VyY2VDbGllbnQqIGNsaWVudCkKICAgICAgICAgZGlkQWRkQ2xpZW50KGNsaWVudCk7
CiB9CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2U6OmRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNs
aWVudCogY2xpZW50KQordm9pZCBDYWNoZWRSZXNvdXJjZTo6ZGlkQWRkQ2xpZW50KENhY2hlZFJl
c291cmNlQ2xpZW50KiBjKQogewogICAgIGlmIChtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lci5p
c0FjdGl2ZSgpKQogICAgICAgICBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lci5zdG9wKCk7CiAK
LSAgICBpZiAobV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjay5yZW1vdmUoY2xpZW50KSkKLSAgICAg
ICAgbV9jbGllbnRzLmFkZChjbGllbnQpOworICAgIGlmIChtX2NsaWVudHNBd2FpdGluZ0NhbGxi
YWNrLmNvbnRhaW5zKGMpKSB7CisgICAgICAgIG1fY2xpZW50cy5hZGQoYyk7CisgICAgICAgIG1f
Y2xpZW50c0F3YWl0aW5nQ2FsbGJhY2sucmVtb3ZlKGMpOworICAgIH0KICAgICBpZiAoIWlzTG9h
ZGluZygpICYmICFzdGlsbE5lZWRzTG9hZCgpKQotICAgICAgICBjbGllbnQtPm5vdGlmeUZpbmlz
aGVkKHRoaXMpOworICAgICAgICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKIH0KIAogYm9vbCBD
YWNoZWRSZXNvdXJjZTo6YWRkQ2xpZW50VG9TZXQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGNsaWVu
dCkKQEAgLTQyMCw3ICs0MjMsNyBAQCBib29sIENhY2hlZFJlc291cmNlOjphZGRDbGllbnRUb1Nl
dChDYWNoZWRSZXNvdXJjZUNsaWVudCogY2xpZW50KQogICAgICAgICAvLyBUaGVyZWZvcmUsIHJh
dGhlciB0aGFuIGltbWVkaWF0ZWx5IHNlbmRpbmcgY2FsbGJhY2tzIG9uIGEgY2FjaGUgaGl0IGxp
a2Ugb3RoZXIgQ2FjaGVkUmVzb3VyY2VzLAogICAgICAgICAvLyB3ZSBzY2hlZHVsZSB0aGUgY2Fs
bGJhY2tzIGFuZCBlbnN1cmUgd2UgbmV2ZXIgZmluaXNoIHN5bmNocm9ub3VzbHkuCiAgICAgICAg
IEFTU0VSVCghbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjay5jb250YWlucyhjbGllbnQpKTsKLSAg
ICAgICAgbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjay5hZGQoY2xpZW50LCBzdGQ6Om1ha2VfdW5p
cXVlPENhbGxiYWNrPigqdGhpcywgKmNsaWVudCkpOworICAgICAgICBtX2NsaWVudHNBd2FpdGlu
Z0NhbGxiYWNrLmFkZChjbGllbnQsIENhY2hlZFJlc291cmNlQ2FsbGJhY2s6OnNjaGVkdWxlKHRo
aXMsIGNsaWVudCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03MjgsMjgg
KzczMSwyNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpzZXRMb2FkUHJpb3JpdHkoUmVzb3VyY2VM
b2FkUHJpb3JpdHkgbG9hZFByaW9yaXR5KQogICAgIG1fbG9hZFByaW9yaXR5ID0gbG9hZFByaW9y
aXR5OwogfQogCi1pbmxpbmUgQ2FjaGVkUmVzb3VyY2U6OkNhbGxiYWNrOjpDYWxsYmFjayhDYWNo
ZWRSZXNvdXJjZSYgcmVzb3VyY2UsIENhY2hlZFJlc291cmNlQ2xpZW50JiBjbGllbnQpCitDYWNo
ZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2VDYWxsYmFjazo6Q2FjaGVkUmVzb3VyY2VDYWxsYmFj
ayhDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIENhY2hlZFJlc291cmNlQ2xpZW50KiBjbGllbnQp
CiAgICAgOiBtX3Jlc291cmNlKHJlc291cmNlKQogICAgICwgbV9jbGllbnQoY2xpZW50KQotICAg
ICwgbV90aW1lcih0aGlzLCAmQ2FsbGJhY2s6OnRpbWVyRmlyZWQpCisgICAgLCBtX2NhbGxiYWNr
VGltZXIodGhpcywgJkNhY2hlZFJlc291cmNlQ2FsbGJhY2s6OnRpbWVyRmlyZWQpCiB7Ci0gICAg
bV90aW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgbV9jYWxsYmFja1RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKIH0KIAotaW5saW5lIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OkNhbGxiYWNrOjpjYW5jZWwo
KQordm9pZCBDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2VDYWxsYmFjazo6Y2FuY2VsKCkK
IHsKLSAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3RpbWVyLnN0b3AoKTsK
KyAgICBpZiAobV9jYWxsYmFja1RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fY2FsbGJhY2tU
aW1lci5zdG9wKCk7CiB9CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2U6OkNhbGxiYWNrOjp0aW1lckZp
cmVkKFRpbWVyPENhbGxiYWNrPiYpCit2b2lkIENhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJj
ZUNhbGxiYWNrOjp0aW1lckZpcmVkKFRpbWVyPENhY2hlZFJlc291cmNlQ2FsbGJhY2s+JikKIHsK
LSAgICBtX3Jlc291cmNlLmRpZEFkZENsaWVudCgmbV9jbGllbnQpOworICAgIG1fcmVzb3VyY2Ut
PmRpZEFkZENsaWVudChtX2NsaWVudCk7CiB9CiAKICNpZiBVU0UoRk9VTkRBVElPTikKLQotdm9p
ZCBDYWNoZWRSZXNvdXJjZTo6dHJ5UmVwbGFjZUVuY29kZWREYXRhKFNoYXJlZEJ1ZmZlciYgbmV3
QnVmZmVyKQordm9pZCBDYWNoZWRSZXNvdXJjZTo6dHJ5UmVwbGFjZUVuY29kZWREYXRhKFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBuZXdCdWZmZXIpCiB7CiAgICAgaWYgKCFtX2RhdGEpCiAgICAg
ICAgIHJldHVybjsKQEAgLTc2MCwxMiArNzYyLDExIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnRy
eVJlcGxhY2VFbmNvZGVkRGF0YShTaGFyZWRCdWZmZXImIG5ld0J1ZmZlcikKICAgICAvLyBXZSBo
YXZlIHRvIGRvIHRoZSBtZW1jbXAgYmVjYXVzZSB3ZSBjYW4ndCB0ZWxsIGlmIHRoZSByZXBsYWNl
bWVudCBmaWxlIGJhY2tlZCBkYXRhIGlzIGZvciB0aGUKICAgICAvLyBzYW1lIHJlc291cmNlIG9y
IGlmIHdlIG1hZGUgYSBzZWNvbmQgcmVxdWVzdCB3aXRoIHRoZSBzYW1lIFVSTCB3aGljaCBnYXZl
IHVzIGEgZGlmZmVyZW50CiAgICAgLy8gcmVzb3VyY2UuIFdlIGhhdmUgc2VlbiB0aGlzIGhhcHBl
biBmb3IgY2FjaGVkIFBPU1QgcmVzb3VyY2VzLgotICAgIGlmIChtX2RhdGEtPnNpemUoKSAhPSBu
ZXdCdWZmZXIuc2l6ZSgpIHx8IG1lbWNtcChtX2RhdGEtPmRhdGEoKSwgbmV3QnVmZmVyLmRhdGEo
KSwgbV9kYXRhLT5zaXplKCkpKQorICAgIGlmIChtX2RhdGEtPnNpemUoKSAhPSBuZXdCdWZmZXIt
PnNpemUoKSB8fCBtZW1jbXAobV9kYXRhLT5kYXRhKCksIG5ld0J1ZmZlci0+ZGF0YSgpLCBtX2Rh
dGEtPnNpemUoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZGF0YS0+dHJ5UmVwbGFjZUNv
bnRlbnRzV2l0aFBsYXRmb3JtQnVmZmVyKG5ld0J1ZmZlcik7CisgICAgbV9kYXRhLT50cnlSZXBs
YWNlU2hhcmVkQnVmZmVyQ29udGVudHMobmV3QnVmZmVyLmdldCgpKTsKIH0KLQogI2VuZGlmCiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXgg
YmY2ZTk5NzQxMGVjMjM3MDE4NjkyMjhhZDBjNThkYjQwZGEyOTZjYy4uOWZiOWIxNGY3ZDA0NDk2
NThjNmI1YTNkNDU5YzRkMGM5NGI4NzRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQ7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2U7CiBjbGFzcyBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjsKIGNsYXNzIEluc3BlY3RvclJlc291cmNlOworY2xhc3MgUmVzb3VyY2VC
dWZmZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNz
IFN1YnJlc291cmNlTG9hZGVyOwpAQCAtOTUsOSArOTYsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVhbCBTdHJp
bmcgZW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgdm9p
ZCBhZGREYXRhQnVmZmVyKFNoYXJlZEJ1ZmZlciYpOworICAgIHZpcnR1YWwgdm9pZCBhZGREYXRh
QnVmZmVyKFJlc291cmNlQnVmZmVyKik7CiAgICAgdmlydHVhbCB2b2lkIGFkZERhdGEoY29uc3Qg
Y2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoTG9h
ZGluZyhTaGFyZWRCdWZmZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoTG9hZGluZyhSZXNv
dXJjZUJ1ZmZlciopOwogICAgIHZpcnR1YWwgdm9pZCBlcnJvcihDYWNoZWRSZXNvdXJjZTo6U3Rh
dHVzKTsKIAogICAgIHZvaWQgc2V0UmVzb3VyY2VFcnJvcihjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikgeyBtX2Vycm9yID0gZXJyb3I7IH0KQEAgLTE4Niw3ICsxODcsNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdm9pZCBjbGVhckxvYWRlcigpOwogCi0gICAgU2hhcmVkQnVmZmVyKiByZXNvdXJj
ZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQorICAgIFJlc291cmNlQnVm
ZmVyKiByZXNvdXJjZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwpAQCAtMjQ0LDM1ICsyNDUsNTUgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBjYW5SZXVzZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAKICNpZiBVU0UoRk9VTkRBVElPTikKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHRyeVJlcGxhY2VFbmNvZGVkRGF0YShTaGFyZWRCdWZmZXImKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHRyeVJlcGxhY2VFbmNvZGVkRGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4p
OwogI2VuZGlmCiAKICNpZiBVU0UoU09VUCkKLSAgICB2aXJ0dWFsIGNoYXIqIGdldE9yQ3JlYXRl
UmVhZEJ1ZmZlcihzaXplX3QgLyogcmVxdWVzdGVkU2l6ZSAqLywgc2l6ZV90JiAvKiBhY3R1YWxT
aXplICovKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0
ZVJlYWRCdWZmZXIoc2l6ZV90IC8qIHJlcXVlc3RlZFNpemUgKi8sIHNpemVfdCYgLyogYWN0dWFs
U2l6ZSAqLykgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAKIHByb3RlY3RlZDoKKyAgICB2aXJ0dWFs
IHZvaWQgY2hlY2tOb3RpZnkoKTsKKwogICAgIHZvaWQgc2V0RW5jb2RlZFNpemUodW5zaWduZWQp
OwogICAgIHZvaWQgc2V0RGVjb2RlZFNpemUodW5zaWduZWQpOwogICAgIHZvaWQgZGlkQWNjZXNz
RGVjb2RlZERhdGEoZG91YmxlIHRpbWVTdGFtcCk7CiAKLSAgICAvLyBGSVhNRTogTWFrZSB0aGUg
cmVzdCBvZiB0aGVzZSBkYXRhIG1lbWJlcnMgcHJpdmF0ZSBhbmQgdXNlIGZ1bmN0aW9ucyBpbiBk
ZXJpdmVkIGNsYXNzZXMgaW5zdGVhZC4KICAgICBIYXNoQ291bnRlZFNldDxDYWNoZWRSZXNvdXJj
ZUNsaWVudCo+IG1fY2xpZW50czsKKworICAgIGNsYXNzIENhY2hlZFJlc291cmNlQ2FsbGJhY2sg
eworICAgIHB1YmxpYzoKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VDYWxsYmFjayhDYWNoZWRSZXNv
dXJjZSosIENhY2hlZFJlc291cmNlQ2xpZW50Kik7CisKKyAgICAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxDYWNoZWRSZXNvdXJjZUNhbGxiYWNrPiBzY2hlZHVsZShDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UsIENhY2hlZFJlc291cmNlQ2xpZW50KiBjbGllbnQpIHsgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8Q2FjaGVkUmVzb3VyY2VDYWxsYmFjaz4ocmVzb3VyY2UsIGNsaWVudCk7IH0KKyAg
ICAgICAgdm9pZCBjYW5jZWwoKTsKKyAgICBwcml2YXRlOgorICAgICAgICB2b2lkIHRpbWVyRmly
ZWQoVGltZXI8Q2FjaGVkUmVzb3VyY2VDYWxsYmFjaz4mKTsKKworICAgICAgICBDYWNoZWRSZXNv
dXJjZSogbV9yZXNvdXJjZTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VDbGllbnQqIG1fY2xpZW50
OworICAgICAgICBUaW1lcjxDYWNoZWRSZXNvdXJjZUNhbGxiYWNrPiBtX2NhbGxiYWNrVGltZXI7
CisgICAgfTsKKyAgICBIYXNoTWFwPENhY2hlZFJlc291cmNlQ2xpZW50Kiwgc3RkOjp1bmlxdWVf
cHRyPENhY2hlZFJlc291cmNlQ2FsbGJhY2s+PiBtX2NsaWVudHNBd2FpdGluZ0NhbGxiYWNrOwor
CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIFNlc3Npb25JRCBt
X3Nlc3Npb25JRDsKKyAgICBTdHJpbmcgbV9hY2NlcHQ7CiAgICAgUmVmUHRyPFN1YnJlc291cmNl
TG9hZGVyPiBtX2xvYWRlcjsKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9vcHRpb25zOwor
ICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1fbG9hZFByaW9yaXR5OworCiAgICAgUmVzb3VyY2VS
ZXNwb25zZSBtX3Jlc3BvbnNlOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZGF0YTsKKyAg
ICBkb3VibGUgbV9yZXNwb25zZVRpbWVzdGFtcDsKKworICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZl
cj4gbV9kYXRhOwogICAgIERlZmVycmFibGVPbmVTaG90VGltZXIgbV9kZWNvZGVkRGF0YURlbGV0
aW9uVGltZXI7CiAKIHByaXZhdGU6Ci0gICAgY2xhc3MgQ2FsbGJhY2s7Ci0KICAgICBib29sIGFk
ZENsaWVudFRvU2V0KENhY2hlZFJlc291cmNlQ2xpZW50Kik7CiAKICAgICB2b2lkIGRlY29kZWRE
YXRhRGVsZXRpb25UaW1lckZpcmVkKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tOb3RpZnko
KTsKICAgICB2aXJ0dWFsIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogICAgIGRvdWJsZSBmcmVzaG5lc3NMaWZldGltZShjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgY29uc3Q7CkBAIC0yODAsMTIgKzMwMSw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBhZGRBZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsK
ICAgICB2b2lkIGZhaWxCZWZvcmVTdGFydGluZygpOwogCi0gICAgSGFzaE1hcDxDYWNoZWRSZXNv
dXJjZUNsaWVudCosIHN0ZDo6dW5pcXVlX3B0cjxDYWxsYmFjaz4+IG1fY2xpZW50c0F3YWl0aW5n
Q2FsbGJhY2s7Ci0gICAgU2Vzc2lvbklEIG1fc2Vzc2lvbklEOwotICAgIFN0cmluZyBtX2FjY2Vw
dDsKLSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX2xvYWRQcmlvcml0eTsKLSAgICBkb3VibGUg
bV9yZXNwb25zZVRpbWVzdGFtcDsKLQogICAgIFN0cmluZyBtX2ZyYWdtZW50SWRlbnRpZmllckZv
clJlcXVlc3Q7CiAKICAgICBSZXNvdXJjZUVycm9yIG1fZXJyb3I7CkBAIC0zMjMsNyArMzM4LDcg
QEAgcHJpdmF0ZToKICAgICBDYWNoZWRSZXNvdXJjZSogbV9uZXh0SW5MaXZlUmVzb3VyY2VzTGlz
dDsKICAgICBDYWNoZWRSZXNvdXJjZSogbV9wcmV2SW5MaXZlUmVzb3VyY2VzTGlzdDsKIAotICAg
IENhY2hlZFJlc291cmNlTG9hZGVyKiBtX293bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyOyAvLyBv
bmx5IG5vbi1udWxsIGZvciByZXNvdXJjZXMgdGhhdCBhcmUgbm90IGluIHRoZSBjYWNoZQorICAg
IENhY2hlZFJlc291cmNlTG9hZGVyKiBtX293bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyOyAvLyBv
bmx5IG5vbi0wIGZvciByZXNvdXJjZXMgdGhhdCBhcmUgbm90IGluIHRoZSBjYWNoZQogICAgIAog
ICAgIC8vIElmIHRoaXMgZmllbGQgaXMgbm9uLW51bGwgd2UgYXJlIHVzaW5nIHRoZSByZXNvdXJj
ZSBhcyBhIHByb3h5IGZvciBjaGVja2luZyB3aGV0aGVyIGFuIGV4aXN0aW5nIHJlc291cmNlIGlz
IHN0aWxsIHVwIHRvIGRhdGUKICAgICAvLyB1c2luZyBIVFRQIElmLU1vZGlmaWVkLVNpbmNlL0lm
LU5vbmUtTWF0Y2ggaGVhZGVycy4gSWYgdGhlIHJlc3BvbnNlIGlzIDMwNCBhbGwgY2xpZW50cyBv
ZiB0aGlzIHJlc291cmNlIGFyZSBtb3ZlZApAQCAtMzQwLDIwICszNTUsNiBAQCBwcml2YXRlOgog
ICAgIFJlZGlyZWN0Q2hhaW5DYWNoZVN0YXR1cyBtX3JlZGlyZWN0Q2hhaW5DYWNoZVN0YXR1czsK
IH07CiAKLWNsYXNzIENhY2hlZFJlc291cmNlOjpDYWxsYmFjayB7Ci1wdWJsaWM6Ci0gICAgQ2Fs
bGJhY2soQ2FjaGVkUmVzb3VyY2UmLCBDYWNoZWRSZXNvdXJjZUNsaWVudCYpOwotCi0gICAgdm9p
ZCBjYW5jZWwoKTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8Q2FsbGJh
Y2s+Jik7Ci0KLSAgICBDYWNoZWRSZXNvdXJjZSYgbV9yZXNvdXJjZTsKLSAgICBDYWNoZWRSZXNv
dXJjZUNsaWVudCYgbV9jbGllbnQ7Ci0gICAgVGltZXI8Q2FsbGJhY2s+IG1fdGltZXI7Ci19Owot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DQUNIRURfUkVTT1VSQ0UoVG9DbGFzc05hbWUsIENhY2hlZFJlc291cmNlVHlwZSkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaApp
bmRleCA3NTk1MTEwNDk3MTZkMjg4YjNkZmE0YThlYzhmYjcxNjAyMzY4YmNmLi45NjkzM2UxM2Q1
NGQ3M2MyYzY0YTRiMTdjYzg0NzdjYzQ4MWU5NzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VDbGllbnQuaApAQCAtMjUsOCArMjUsOSBAQAog
I2lmbmRlZiBDYWNoZWRSZXNvdXJjZUNsaWVudF9oCiAjZGVmaW5lIENhY2hlZFJlc291cmNlQ2xp
ZW50X2gKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+
CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFJlc291cmNlOwogCiBjbGFzcyBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CkBAIC00MywxNCArNDQsMTMgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkNhY2hlZFJlc291cmNlQ2xpZW50KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcHJlY2F0
ZWREaWRSZWNlaXZlQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqKSB7IH0KLQorICAgIAog
ICAgIHN0YXRpYyBDYWNoZWRSZXNvdXJjZUNsaWVudFR5cGUgZXhwZWN0ZWRUeXBlKCkgeyByZXR1
cm4gQmFzZVJlc291cmNlVHlwZTsgfQogICAgIHZpcnR1YWwgQ2FjaGVkUmVzb3VyY2VDbGllbnRU
eXBlIHJlc291cmNlQ2xpZW50VHlwZSgpIGNvbnN0IHsgcmV0dXJuIGV4cGVjdGVkVHlwZSgpOyB9
CiAKIHByb3RlY3RlZDoKICAgICBDYWNoZWRSZXNvdXJjZUNsaWVudCgpIHsgfQogfTsKLQogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
VkdEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuY3BwCmluZGV4IGE1MjMwMjAxYjBmNzEwZDM5YTViZGJiMWE2ZDZhMmI4NTI2MDdkMzEu
LjMyYTYxYjNiM2E5Mzk4MDY5YTFkMmZiZmY1ZDc2ZTk2Zjg0YjU3YmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMjMsNyAr
MjMsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDYWNoZWRTVkdEb2N1bWVu
dC5oIgogCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUg
IlJlc291cmNlQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDcgKzUxLDcgQEAgU3RyaW5nIENhY2hlZFNW
R0RvY3VtZW50OjplbmNvZGluZygpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZW5jb2Rp
bmcoKS5uYW1lKCk7CiB9CiAKLXZvaWQgQ2FjaGVkU1ZHRG9jdW1lbnQ6OmZpbmlzaExvYWRpbmco
U2hhcmVkQnVmZmVyKiBkYXRhKQordm9pZCBDYWNoZWRTVkdEb2N1bWVudDo6ZmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUJ1ZmZlciogZGF0YSkKIHsKICAgICBpZiAoZGF0YSkgewogICAgICAgICAvLyBX
ZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBmcmFtZSBiZWNhdXNlIHRoZSBuZXcgZG9jdW1l
bnQgYmVsb25ncyB0byB0aGUgcGFyZW50IFVzZUVsZW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCmluZGV4IGE3OTFjZDgzMWQzNmZhNWM4
ZWZhNzU2Y2VlMmJjMWMwN2NhY2QzN2YuLmMxYzYwM2YzNDI5Y2MxZWM4YmE1NTBjMGM1NTAwZmI5
YWJjMjY2YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
VkdEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdE
b2N1bWVudC5oCkBAIC0zNywxNCArMzcsMTUgQEAgcHVibGljOgogCiAgICAgU1ZHRG9jdW1lbnQq
IGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5nZXQoKTsgfQogCitwcm90ZWN0
ZWQ6CisgICAgUmVmUHRyPFNWR0RvY3VtZW50PiBtX2RvY3VtZW50OworICAgIFJlZlB0cjxUZXh0
UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBTdHJpbmcgZW5jb2RpbmcoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgZmluaXNoTG9hZGluZyhTaGFyZWRCdWZmZXIqKSBvdmVycmlkZTsKLQotICAgIFJl
ZlB0cjxTVkdEb2N1bWVudD4gbV9kb2N1bWVudDsKLSAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVj
b2Rlcj4gbV9kZWNvZGVyOworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNl
QnVmZmVyKikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCmluZGV4IGY4YmMzM2M3YjMy
NTFkYzQyMzgwZjVjNDY4M2ZmNGU5NGUzNDlkOTIuLmY3MWE1ZThhYWVjZThiM2FiMTk1ZGU2NTRl
MTQxMWQzNzk1ZWEwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
Y3JpcHQuY3BwCkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJj
ZURlY29kZXIuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTc2LDEzICs3NiwxNCBA
QCBjb25zdCBTdHJpbmcmIENhY2hlZFNjcmlwdDo6c2NyaXB0KCkKICAgICAgICAgc2V0RGVjb2Rl
ZFNpemUobV9zY3JpcHQuc2l6ZUluQnl0ZXMoKSk7CiAgICAgfQogICAgIG1fZGVjb2RlZERhdGFE
ZWxldGlvblRpbWVyLnJlc3RhcnQoKTsKKyAgICAKICAgICByZXR1cm4gbV9zY3JpcHQ7CiB9CiAK
LXZvaWQgQ2FjaGVkU2NyaXB0OjpmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciogZGF0YSkKK3Zv
aWQgQ2FjaGVkU2NyaXB0OjpmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKiBkYXRhKQogewog
ICAgIG1fZGF0YSA9IGRhdGE7Ci0gICAgc2V0RW5jb2RlZFNpemUoZGF0YSA/IGRhdGEtPnNpemUo
KSA6IDApOworICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS5nZXQoKSA/IG1fZGF0YS0+c2l6ZSgp
IDogMCk7CiAgICAgQ2FjaGVkUmVzb3VyY2U6OmZpbmlzaExvYWRpbmcoZGF0YSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaAppbmRleCA5MzhlOTE4N2Nl
YTRjMDljMmQ3MGJlNjIxN2E2NDliZGQ3NzMyM2U5Li45MWM5ODZhMjU0YjljMzcxYzJmZDE5ZjNk
Zjk4OTQ1NzQ3ZTliZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNj
cmlwdC5oCkBAIC0zMCwzNSArMzAsMzYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBUZXh0UmVzb3VyY2VEZWNvZGVyOworICAgIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwor
ICAgIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiAKLWNsYXNzIENhY2hlZFNjcmlwdCBmaW5h
bCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7Ci1wdWJsaWM6Ci0gICAgQ2FjaGVkU2NyaXB0KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vzc2lvbklEKTsK
LSAgICB2aXJ0dWFsIH5DYWNoZWRTY3JpcHQoKTsKKyAgICBjbGFzcyBDYWNoZWRTY3JpcHQgZmlu
YWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgeworICAgIHB1YmxpYzoKKyAgICAgICAgQ2FjaGVk
U2NyaXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vz
c2lvbklEKTsKKyAgICAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0KCk7CiAKLSAgICBjb25zdCBT
dHJpbmcmIHNjcmlwdCgpOworICAgICAgICBjb25zdCBTdHJpbmcmIHNjcmlwdCgpOwogCi0gICAg
U3RyaW5nIG1pbWVUeXBlKCkgY29uc3Q7CisgICAgICAgIFN0cmluZyBtaW1lVHlwZSgpIGNvbnN0
OwogCiAjaWYgRU5BQkxFKE5PU05JRkYpCi0gICAgYm9vbCBtaW1lVHlwZUFsbG93ZWRCeU5vc25p
ZmYoKSBjb25zdDsKKyAgICAgICAgYm9vbCBtaW1lVHlwZUFsbG93ZWRCeU5vc25pZmYoKSBjb25z
dDsKICNlbmRpZgogCi1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBtYXlUcnlSZXBsYWNlRW5j
b2RlZERhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgcHJpdmF0ZToK
KyAgICAgICAgdmlydHVhbCBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVI
VFRQU3RhdHVzQ29kZUVycm9ycygpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkSWdub3JlSFRUUFN0YXR1c0NvZGVFcnJvcnMoKSBjb25zdCBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBlbmNvZGluZygpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciopIG92ZXJyaWRlOworICAgICAgICB2aXJ0
dWFsIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgICAgIHZp
cnR1YWwgU3RyaW5nIGVuY29kaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKCkgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95RGVjb2RlZERhdGEoKSBvdmVycmlkZTsKIAotICAgIFN0cmluZyBtX3Njcmlw
dDsKLSAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwotfTsKKyAgICAg
ICAgU3RyaW5nIG1fc2NyaXB0OworICAgICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4g
bV9kZWNvZGVyOworICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAppbmRleCA3MTU1OTIy
MDU3ZWVhZWRmMWYwNWQwZDA3ZmRmMGI1MGU2ZGRmYWNiLi43MDlmYWQ4NDQzYjdiYzFhMzhmMWVh
ODBkMjY0ZmYwZDI5M2Q5OTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkVGV4dFRyYWNrLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNl
RGVjb2Rlci5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQzLDI2ICs0NCwyNCBAQCBD
YWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgU2Vzc2lvbgogewogfQogCi12b2lkIENhY2hlZFRleHRUcmFjazo6dXBk
YXRlRGF0YShTaGFyZWRCdWZmZXIqIGRhdGEpCitDYWNoZWRUZXh0VHJhY2s6On5DYWNoZWRUZXh0
VHJhY2soKQogewotICAgIEFTU0VSVChkYXRhQnVmZmVyaW5nUG9saWN5KCkgPT0gQnVmZmVyRGF0
YSk7Cit9CisKK3ZvaWQgQ2FjaGVkVGV4dFRyYWNrOjphZGREYXRhQnVmZmVyKFJlc291cmNlQnVm
ZmVyKiBkYXRhKQoreworICAgIEFTU0VSVChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSgp
ID09IEJ1ZmZlckRhdGEpOwogICAgIG1fZGF0YSA9IGRhdGE7Ci0gICAgc2V0RW5jb2RlZFNpemUo
ZGF0YSA/IGRhdGEtPnNpemUoKSA6IDApOworICAgIHNldEVuY29kZWRTaXplKG1fZGF0YS5nZXQo
KSA/IG1fZGF0YS0+c2l6ZSgpIDogMCk7CiAKICAgICBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtl
cjxDYWNoZWRSZXNvdXJjZUNsaWVudD4gd2Fsa2VyKG1fY2xpZW50cyk7Ci0gICAgd2hpbGUgKENh
Y2hlZFJlc291cmNlQ2xpZW50KiBjbGllbnQgPSB3YWxrZXIubmV4dCgpKQorICAgIHdoaWxlIChD
YWNoZWRSZXNvdXJjZUNsaWVudCAqY2xpZW50ID0gd2Fsa2VyLm5leHQoKSkKICAgICAgICAgY2xp
ZW50LT5kZXByZWNhdGVkRGlkUmVjZWl2ZUNhY2hlZFJlc291cmNlKHRoaXMpOwogfQogCi12b2lk
IENhY2hlZFRleHRUcmFjazo6YWRkRGF0YUJ1ZmZlcihTaGFyZWRCdWZmZXImIGRhdGEpCi17Ci0g
ICAgdXBkYXRlRGF0YSgmZGF0YSk7Ci0gICAgQ2FjaGVkUmVzb3VyY2U6OmFkZERhdGFCdWZmZXIo
ZGF0YSk7Ci19Ci0KLXZvaWQgQ2FjaGVkVGV4dFRyYWNrOjpmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1
ZmZlciogZGF0YSkKK3ZvaWQgQ2FjaGVkVGV4dFRyYWNrOjpmaW5pc2hMb2FkaW5nKFJlc291cmNl
QnVmZmVyKiBkYXRhKQogewotICAgIHVwZGF0ZURhdGEoZGF0YSk7CisgICAgYWRkRGF0YUJ1ZmZl
cihkYXRhKTsKICAgICBDYWNoZWRSZXNvdXJjZTo6ZmluaXNoTG9hZGluZyhkYXRhKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4IDNj
MTEyN2U4M2I4OTliNDNiMzgwYTk2M2I5NjZkNjNlZTZiY2FkY2IuLjRjM2YzOGFkNDY4ZTE1MWE4
MDEyYTlkOWNlOTE0ZmIzOGIzYjJkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmgKQEAgLTM2LDEzICszNiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBDYWNoZWRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2Ug
ewogcHVibGljOgogICAgIENhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBT
ZXNzaW9uSUQpOworICAgIHZpcnR1YWwgfkNhY2hlZFRleHRUcmFjaygpOwogCiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBtYXlUcnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGFkZERhdGFCdWZmZXIoU2hhcmVk
QnVmZmVyJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoU2hhcmVk
QnVmZmVyKikgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHVwZGF0ZURhdGEoU2hhcmVkQnVmZmVyKik7
CisgICAgdmlydHVhbCB2b2lkIGFkZERhdGFCdWZmZXIoUmVzb3VyY2VCdWZmZXIqKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoTG9hZGluZyhSZXNvdXJjZUJ1ZmZlciopIG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCmluZGV4IDc3OTUyYjhhY2Mw
MTJlNzNlOWU3OWE5ZjRiODc2MzgyNzQ4MDM3ZjAuLjY2ZjFlYzVhN2FlNGJlYjMxNDUzMTU4ZGRl
MmY5OTZkMTliNDJlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRYU0xTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkWFNMU3R5bGVTaGVldC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU3R5bGVTaGVldENs
aWVudC5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVm
ZmVyLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIApAQCAtNDYsMTAgKzQ2LDYgQEAgQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVk
WFNMU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwKICAg
ICBzZXRBY2NlcHQoInRleHQveG1sLCBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL3hodG1s
K3htbCwgdGV4dC94c2wsIGFwcGxpY2F0aW9uL3Jzcyt4bWwsIGFwcGxpY2F0aW9uL2F0b20reG1s
Iik7CiB9CiAKLUNhY2hlZFhTTFN0eWxlU2hlZXQ6On5DYWNoZWRYU0xTdHlsZVNoZWV0KCkKLXsK
LX0KLQogdm9pZCBDYWNoZWRYU0xTdHlsZVNoZWV0OjpkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQqIGMpCiB7ICAKICAgICBBU1NFUlQoYy0+cmVzb3VyY2VDbGllbnRUeXBlKCkgPT0g
Q2FjaGVkU3R5bGVTaGVldENsaWVudDo6ZXhwZWN0ZWRUeXBlKCkpOwpAQCAtNjcsMTIgKzYzLDEy
IEBAIFN0cmluZyBDYWNoZWRYU0xTdHlsZVNoZWV0OjplbmNvZGluZygpIGNvbnN0CiAgICAgcmV0
dXJuIG1fZGVjb2Rlci0+ZW5jb2RpbmcoKS5uYW1lKCk7CiB9CiAKLXZvaWQgQ2FjaGVkWFNMU3R5
bGVTaGVldDo6ZmluaXNoTG9hZGluZyhTaGFyZWRCdWZmZXIqIGRhdGEpCit2b2lkIENhY2hlZFhT
TFN0eWxlU2hlZXQ6OmZpbmlzaExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqIGRhdGEpCiB7CiAgICAg
bV9kYXRhID0gZGF0YTsKLSAgICBzZXRFbmNvZGVkU2l6ZShkYXRhID8gZGF0YS0+c2l6ZSgpIDog
MCk7Ci0gICAgaWYgKGRhdGEpCi0gICAgICAgIG1fc2hlZXQgPSBtX2RlY29kZXItPmRlY29kZUFu
ZEZsdXNoKGRhdGEtPmRhdGEoKSwgZW5jb2RlZFNpemUoKSk7CisgICAgc2V0RW5jb2RlZFNpemUo
bV9kYXRhLmdldCgpID8gbV9kYXRhLT5zaXplKCkgOiAwKTsKKyAgICBpZiAobV9kYXRhLmdldCgp
KQorICAgICAgICBtX3NoZWV0ID0gbV9kZWNvZGVyLT5kZWNvZGVBbmRGbHVzaChtX2RhdGEtPmRh
dGEoKSwgZW5jb2RlZFNpemUoKSk7CiAgICAgc2V0TG9hZGluZyhmYWxzZSk7CiAgICAgY2hlY2tO
b3RpZnkoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRYU0xTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNM
U3R5bGVTaGVldC5oCmluZGV4IDBlMDBlNjc2NjZhNDA0YTFmYWQyOWFhMjk1MzlmM2U4YmY1NDFj
N2UuLmQ5OTIxYzJjNTgwMzE2NzJkYTIzODdhOGM2YjcyZGE1MjI1YzQ1YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaApAQCAtMjks
MjkgKzI5LDM0IEBACiAjaWYgRU5BQkxFKFhTTFQpCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOworICAgIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVy
OworICAgIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiAKLWNsYXNzIENhY2hlZFhTTFN0eWxl
U2hlZXQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewotcHVibGljOgotICAgIENhY2hl
ZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKLSAgICB2
aXJ0dWFsIH5DYWNoZWRYU0xTdHlsZVNoZWV0KCk7CisgICAgY2xhc3MgQ2FjaGVkWFNMU3R5bGVT
aGVldCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CisgICAgcHVibGljOgorICAgICAg
ICBDYWNoZWRYU0xTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7
CiAKLSAgICBjb25zdCBTdHJpbmcmIHNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9zaGVldDsgfQor
ICAgICAgICBjb25zdCBTdHJpbmcmIHNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9zaGVldDsgfQog
Ci1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBjaGVja05vdGlmeSgpIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgYm9vbCBtYXlUcnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNv
dXJjZUNsaWVudCopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRFbmNvZGluZyhjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFN0cmluZyBlbmNvZGluZygpIGNvbnN0
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFNoYXJlZEJ1ZmZlciop
IG92ZXJyaWRlOworICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCB2b2lkIGNoZWNrTm90
aWZ5KCkgb3ZlcnJpZGU7CiAKLSAgICBTdHJpbmcgbV9zaGVldDsKLSAgICBSZWZQdHI8VGV4dFJl
c291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwotfTsKKyAgICAgICAgU3RyaW5nIG1fc2hlZXQ7Cisg
ICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7CisKKyAgICBwcml2
YXRlOgorICAgICAgICB2aXJ0dWFsIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKSBvdmVycmlkZTsKKworICAgICAgICB2aXJ0
dWFsIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgICAgIHZp
cnR1YWwgU3RyaW5nIGVuY29kaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKikgb3ZlcnJpZGU7CisgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2YvU3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Yv
U3VicmVzb3VyY2VMb2FkZXJDRi5jcHAKaW5kZXggNjllMjk5N2Y0ZWNmNWIxNGMwNTUwZTJhMTll
MWE4NjExNmU4ZDFmYi4uNTc2NzYwNGFlZDUzOWVjOTllMTgwZDU5N2RlOWU5ODdjZDNlZjg4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NmL1N1YnJlc291cmNlTG9hZGVyQ0Yu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jZi9TdWJyZXNvdXJjZUxvYWRlckNGLmNw
cApAQCAtNTEsOCArNTEsOCBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0
YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQogICAgICAgICAgICAgLy8gYmVpbmcgY2FuY2Vs
bGVkLiBCYWlsIG91dCBpZiB3ZSBubyBsb25nZXIgaGF2ZSBhIGNhY2hlZCByZXNvdXJjZS4KICAg
ICAgICAgICAgIGlmICghbV9yZXNvdXJjZSkKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VEYXRhID0gdGhpcy0+cmVzb3VyY2VEYXRhKCkpCi0g
ICAgICAgICAgICAgICAgbV9yZXNvdXJjZS0+YWRkRGF0YUJ1ZmZlcigqcmVzb3VyY2VEYXRhKTsK
KyAgICAgICAgICAgIGlmIChSZXNvdXJjZUJ1ZmZlciogcmVzb3VyY2VEYXRhID0gdGhpcy0+cmVz
b3VyY2VEYXRhKCkpCisgICAgICAgICAgICAgICAgbV9yZXNvdXJjZS0+YWRkRGF0YUJ1ZmZlcihy
ZXNvdXJjZURhdGEpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgQ0ZEYXRh
UmVmIGNmRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEYXRhUmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGRhdGFBcnJheSwgaSkpOwogICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGRhdGEg
PSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIgKj4oQ0ZEYXRhR2V0Qnl0ZVB0cihjZkRhdGEp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25p
dG9yQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9y
Q29jb2EuaAppbmRleCBhMzUzOWI4YjE3ZjA4MWNmODIxZTc3OGEwNjIyYjU4OGZkNzdhNjRmLi5m
MTJlMzk5ODJhNDgzMjYzZTkxZWNjMWE1ZDNmNWI2MTI3MDBkMWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNvY29hLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5oCkBAIC00NSw3
ICs0NSw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBEaXNrQ2Fj
aGVNb25pdG9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCwgQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VCZWNhbWVGaWxlQmFja2Vk
KFNoYXJlZEJ1ZmZlciYpOworICAgIHZpcnR1YWwgdm9pZCByZXNvdXJjZUJlY2FtZUZpbGVCYWNr
ZWQoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KTsKIAogICAgIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVzb3VyY2VSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0K
ICAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9y
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvRGlza0NhY2hlTW9uaXRvckNv
Y29hLm1tCmluZGV4IDFjMWJkNWVlOTBmMGVhOGFlMjc0ZGFiYzc3MWVmYjEwZGQzODcxOGIuLmNh
NjA4ZjdkNjUxNzkxZTkyNWM4OWViNDI2N2RjYmY0NjliNmQ1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0Rpc2tDYWNoZU1vbml0b3JDb2NvYS5tbQpAQCAtMTAz
LDcgKzEwMyw3IEBAIERpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2VzCiAgICAgICAgIGlmICghZmlsZUJh
Y2tlZEJ1ZmZlcikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtb25pdG9yLT5yZXNv
dXJjZUJlY2FtZUZpbGVCYWNrZWQoKmZpbGVCYWNrZWRCdWZmZXIpOworICAgICAgICBtb25pdG9y
LT5yZXNvdXJjZUJlY2FtZUZpbGVCYWNrZWQoZmlsZUJhY2tlZEJ1ZmZlcik7CiAgICAgfTsKIAog
I2lmIFVTRShXRUJfVEhSRUFEKQpAQCAtMTIxLDcgKzEyMSw3IEBAIERpc2tDYWNoZU1vbml0b3I6
OkRpc2tDYWNoZU1vbml0b3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9u
SUQgc2VzCiAgICAgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJh
Y2tCbG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2tUb1J1biwgZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSk7CiB9CiAKLXZvaWQgRGlza0NhY2hlTW9uaXRvcjo6cmVzb3VyY2VCZWNhbWVGaWxlQmFj
a2VkKFNoYXJlZEJ1ZmZlciYgZmlsZUJhY2tlZEJ1ZmZlcikKK3ZvaWQgRGlza0NhY2hlTW9uaXRv
cjo6cmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxl
QmFja2VkQnVmZmVyKQogewogICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNh
Y2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChtX3Jlc291cmNlUmVxdWVzdCwgbV9zZXNzaW9uSUQp
OwogICAgIGlmICghcmVzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwCmluZGV4IDU2OTIxY2Q5Mzc3ZmMxMmUwZWUxZDAzZDkzNDQwNzFjNGFiNGNiZjMuLjU0
MDJlYjA4NjNjNThjMmFmMmIwNDhiYTlhYzc0NDc3ZmMxOTM0NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAi
SWNvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CkBAIC04NCwxNiArODUsMTYgQEAgdm9pZCBJY29uTG9hZGVyOjpub3RpZnlG
aW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAKICAgICAvLyBJZiB3ZSBnb3QgYSBz
dGF0dXMgY29kZSBpbmRpY2F0aW5nIGFuIGludmFsaWQgcmVzcG9uc2UsIHRoZW4gbGV0cwogICAg
IC8vIGlnbm9yZSB0aGUgZGF0YSBhbmQgbm90IHRyeSB0byBkZWNvZGUgdGhlIGVycm9yIHBhZ2Ug
YXMgYW4gaWNvbi4KLSAgICBhdXRvKiBkYXRhID0gcmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7
CisgICAgUmVmUHRyPFJlc291cmNlQnVmZmVyPiBkYXRhID0gcmVzb3VyY2UtPnJlc291cmNlQnVm
ZmVyKCk7CiAgICAgaW50IHN0YXR1cyA9IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBTdGF0dXND
b2RlKCk7CiAgICAgaWYgKHN0YXR1cyAmJiAoc3RhdHVzIDwgMjAwIHx8IHN0YXR1cyA+IDI5OSkp
Ci0gICAgICAgIGRhdGEgPSBudWxscHRyOworICAgICAgICBkYXRhID0gMDsKIAogICAgIHN0YXRp
YyBjb25zdCBjaGFyIHBkZk1hZ2ljTnVtYmVyW10gPSAiJVBERiI7CiAgICAgc3RhdGljIHVuc2ln
bmVkIHBkZk1hZ2ljTnVtYmVyTGVuZ3RoID0gc2l6ZW9mKHBkZk1hZ2ljTnVtYmVyKSAtIDE7CiAg
ICAgaWYgKGRhdGEgJiYgZGF0YS0+c2l6ZSgpID49IHBkZk1hZ2ljTnVtYmVyTGVuZ3RoICYmICFt
ZW1jbXAoZGF0YS0+ZGF0YSgpLCBwZGZNYWdpY051bWJlciwgcGRmTWFnaWNOdW1iZXJMZW5ndGgp
KSB7CiAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJJY29uTG9hZGVyOjpmaW5pc2hMb2FkaW5n
KCkgLSBJZ25vcmluZyBpY29uIGF0ICVzIGJlY2F1c2UgaXQgYXBwZWFycyB0byBiZSBhIFBERiIs
IHJlc291cmNlLT51cmwoKS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgIGRhdGEg
PSBudWxscHRyOworICAgICAgICBkYXRhID0gMDsKICAgICB9CiAKICAgICBMT0coSWNvbkRhdGFi
YXNlLCAiSWNvbkxvYWRlcjo6ZmluaXNoTG9hZGluZygpIC0gQ29tbWl0dGluZyBpY29uVVJMICVz
IHRvIGRhdGFiYXNlIiwgcmVzb3VyY2UtPnVybCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsK
QEAgLTEwMSw3ICsxMDIsNyBAQCB2b2lkIEljb25Mb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hl
ZFJlc291cmNlKiByZXNvdXJjZSkKICAgICAvLyBTZXR0aW5nIHRoZSBpY29uIGRhdGEgb25seSBh
ZnRlciBjb21taXR0aW5nIHRvIHRoZSBkYXRhYmFzZSBlbnN1cmVzIHRoYXQgdGhlIGRhdGEgaXMK
ICAgICAvLyBrZXB0IGluIG1lbW9yeSAoc28gaXQgZG9lcyBub3QgaGF2ZSB0byBiZSByZWFkIGZy
b20gdGhlIGRhdGFiYXNlIGFzeW5jaHJvbm91c2x5KSwgc2luY2UKICAgICAvLyB0aGVyZSBpcyBh
IHBhZ2UgVVJMIHJlZmVyZW5jaW5nIGl0LgotICAgIGljb25EYXRhYmFzZSgpLnNldEljb25EYXRh
Rm9ySWNvblVSTChkYXRhLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkpOworICAgIGljb25EYXRh
YmFzZSgpLnNldEljb25EYXRhRm9ySWNvblVSTChkYXRhID8gZGF0YS0+c2hhcmVkQnVmZmVyKCkg
OiAwLCByZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpOwogICAgIHN0b3BMb2FkaW5nKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlQnVmZmVyLm1tIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUJ1ZmZlci5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NGNmOWI3OTA5YzM3OTQyZGJjZDFhZjFlZDNiZjYyZWRiNGMxYmNlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUJ1ZmZlci5tbQpAQCAtMCwwICsx
LDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlc291cmNlQnVmZmVyLmgiCisKKyNpbmNsdWRl
ICJTaGFyZWRCdWZmZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZXRhaW5QdHI8TlNE
YXRhPiBSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlTlNEYXRhKCkKK3sKKyAgICByZXR1cm4gbV9zaGFy
ZWRCdWZmZXItPmNyZWF0ZU5TRGF0YSgpOworfQorCit2b2lkIFJlc291cmNlQnVmZmVyOjp0cnlS
ZXBsYWNlU2hhcmVkQnVmZmVyQ29udGVudHMoU2hhcmVkQnVmZmVyKiBuZXdDb250ZW50cykKK3sK
KyAgICBpZiAoIW1fc2hhcmVkQnVmZmVyKQorICAgICAgICBtX3NoYXJlZEJ1ZmZlciA9IG5ld0Nv
bnRlbnRzOworICAgIGVsc2UKKyAgICAgICAgbV9zaGFyZWRCdWZmZXItPnRyeVJlcGxhY2VDb250
ZW50c1dpdGhQbGF0Zm9ybUJ1ZmZlcihuZXdDb250ZW50cyk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvUmVzb3VyY2VM
b2FkZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFj
Lm1tCmluZGV4IDNlY2Q1OTdmZjI5NWY3ZDY3MDg2ODZmNzU4NDRjOWQ2Y2RmODhjYWYuLmEwMTVl
OTg3YjYwMzJkYTdlMTE2OGUyNjcyNGU4YzFiM2ZhMDkwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtMzEsMTAgKzMxLDEwIEBACiAK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50Lmgi
Ci0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKICNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJS
QVlfQ0FMTEJBQ0spCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5j
bHVkZSAiUmVzb3VyY2VCdWZmZXIuaCIKICNlbmRpZgogCiAjaWYgVVNFKENGTkVUV09SSykKQEAg
LTgzLDcgKzgzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFBcnJheShD
RkFycmF5UmVmIGRhdGFBcnJheSkKIAogICAgICAgICBpZiAobV9vcHRpb25zLmRhdGFCdWZmZXJp
bmdQb2xpY3koKSA9PSBCdWZmZXJEYXRhKSB7CiAgICAgICAgICAgICBpZiAoIW1fcmVzb3VyY2VE
YXRhKQotICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VEYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVh
dGUoKTsKKyAgICAgICAgICAgICAgICBtX3Jlc291cmNlRGF0YSA9IFJlc291cmNlQnVmZmVyOjpj
cmVhdGUoKTsKICAgICAgICAgICAgIG1fcmVzb3VyY2VEYXRhLT5hcHBlbmQoZGF0YSk7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggMDZi
ZGIzOGI1OTA2ZDhlYzExNGYwYzIxNWNhM2VkMWQzNGIxMjBhZS4uYTE2MTJkYjdmNDZmM2M0OTdl
ZTZhOWNkMjA0ZTM0Y2YxZjI0MWMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRC
dWZmZXIuY3BwCkBAIC0zMyw3ICszMyw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAh
VVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQotCiBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgc2VnbWVudFNpemUgPSAweDEwMDA7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2VnbWVudFBv
c2l0aW9uTWFzayA9IDB4MEZGRjsKIApAQCAtNTcsNyArNTYsNiBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgZnJlZVNlZ21lbnQoY2hhciogcCkKIHsKICAgICBmYXN0RnJlZShwKTsKIH0KLQogI2VuZGlm
CiAKIFNoYXJlZEJ1ZmZlcjo6U2hhcmVkQnVmZmVyKCkKQEAgLTIxNiw4ICsyMTQsOSBAQCB2b2lk
IFNoYXJlZEJ1ZmZlcjo6Y2xlYXIoKQogICAgIGNsZWFyUGxhdGZvcm1EYXRhKCk7CiAgICAgCiAj
aWYgIVVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKLSAgICBmb3IgKGNoYXIqIHNl
Z21lbnQgOiBtX3NlZ21lbnRzKQotICAgICAgICBmcmVlU2VnbWVudChzZWdtZW50KTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZWdtZW50cy5zaXplKCk7ICsraSkKKyAgICAgICAg
ZnJlZVNlZ21lbnQobV9zZWdtZW50c1tpXSk7CisKICAgICBtX3NlZ21lbnRzLmNsZWFyKCk7CiAj
ZWxzZQogICAgIG1fZGF0YUFycmF5LmNsZWFyKCk7CkBAIC0yMjcsMjYgKzIyNiwyNCBAQCB2b2lk
IFNoYXJlZEJ1ZmZlcjo6Y2xlYXIoKQogICAgIGNsZWFyRGF0YUJ1ZmZlcigpOwogfQogCi1QYXNz
UmVmPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjb3B5KCkgY29uc3QKK1Bhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNvcHkoKSBjb25zdAogewotICAgIFBhc3NSZWY8
U2hhcmVkQnVmZmVyPiBjbG9uZSB7IGFkb3B0UmVmKCpuZXcgU2hhcmVkQnVmZmVyKSB9OworICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IGNsb25lKGFkb3B0UmVmKG5ldyBTaGFyZWRCdWZmZXIpKTsK
ICAgICBpZiAoaGFzUGxhdGZvcm1EYXRhKCkpIHsKLSAgICAgICAgY2xvbmUuZ2V0KCkuYXBwZW5k
KGRhdGEoKSwgc2l6ZSgpKTsKKyAgICAgICAgY2xvbmUtPmFwcGVuZChkYXRhKCksIHNpemUoKSk7
CiAgICAgICAgIHJldHVybiBjbG9uZTsKICAgICB9CiAKLSAgICBjbG9uZS5nZXQoKS5tX3NpemUg
PSBtX3NpemU7Ci0gICAgY2xvbmUuZ2V0KCkubV9idWZmZXItPmRhdGEucmVzZXJ2ZUNhcGFjaXR5
KG1fc2l6ZSk7Ci0gICAgY2xvbmUuZ2V0KCkubV9idWZmZXItPmRhdGEuYXBwZW5kKG1fYnVmZmVy
LT5kYXRhLmRhdGEoKSwgbV9idWZmZXItPmRhdGEuc2l6ZSgpKTsKLQorICAgIGNsb25lLT5tX3Np
emUgPSBtX3NpemU7CisgICAgY2xvbmUtPm1fYnVmZmVyLT5kYXRhLnJlc2VydmVDYXBhY2l0eSht
X3NpemUpOworICAgIGNsb25lLT5tX2J1ZmZlci0+ZGF0YS5hcHBlbmQobV9idWZmZXItPmRhdGEu
ZGF0YSgpLCBtX2J1ZmZlci0+ZGF0YS5zaXplKCkpOwogI2lmICFVU0UoTkVUV09SS19DRkRBVEFf
QVJSQVlfQ0FMTEJBQ0spCi0gICAgZm9yIChjaGFyKiBzZWdtZW50IDogbV9zZWdtZW50cykKLSAg
ICAgICAgY2xvbmUuZ2V0KCkubV9idWZmZXItPmRhdGEuYXBwZW5kKHNlZ21lbnQsIHNlZ21lbnRT
aXplKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZWdtZW50cy5zaXplKCk7ICsr
aSkKKyAgICAgICAgY2xvbmUtPm1fYnVmZmVyLT5kYXRhLmFwcGVuZChtX3NlZ21lbnRzW2ldLCBz
ZWdtZW50U2l6ZSk7CiAjZWxzZQotICAgIGZvciAoYXV0byYgZGF0YSA6IG1fZGF0YUFycmF5KQot
ICAgICAgICBjbG9uZS5nZXQoKS5hcHBlbmQoZGF0YS5nZXQoKSk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fZGF0YUFycmF5LnNpemUoKTsgKytpKQorICAgICAgICBjbG9uZS0+YXBw
ZW5kKG1fZGF0YUFycmF5W2ldLmdldCgpKTsKICNlbmRpZgotCiAgICAgcmV0dXJuIGNsb25lOwog
fQogCkBAIC0yNzgsMTkgKzI3NSwxNyBAQCB2b2lkIFNoYXJlZEJ1ZmZlcjo6Y2xlYXJEYXRhQnVm
ZmVyKCkKIH0KIAogI2lmICFVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCi0KIHZv
aWQgU2hhcmVkQnVmZmVyOjpjb3B5QnVmZmVyQW5kQ2xlYXIoY2hhciogZGVzdGluYXRpb24sIHVu
c2lnbmVkIGJ5dGVzVG9Db3B5KSBjb25zdAogewotICAgIGZvciAoY2hhciogc2VnbWVudCA6IG1f
c2VnbWVudHMpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZWdtZW50cy5zaXpl
KCk7ICsraSkgewogICAgICAgICB1bnNpZ25lZCBlZmZlY3RpdmVCeXRlc1RvQ29weSA9IHN0ZDo6
bWluKGJ5dGVzVG9Db3B5LCBzZWdtZW50U2l6ZSk7Ci0gICAgICAgIG1lbWNweShkZXN0aW5hdGlv
biwgc2VnbWVudCwgZWZmZWN0aXZlQnl0ZXNUb0NvcHkpOworICAgICAgICBtZW1jcHkoZGVzdGlu
YXRpb24sIG1fc2VnbWVudHNbaV0sIGVmZmVjdGl2ZUJ5dGVzVG9Db3B5KTsKICAgICAgICAgZGVz
dGluYXRpb24gKz0gZWZmZWN0aXZlQnl0ZXNUb0NvcHk7CiAgICAgICAgIGJ5dGVzVG9Db3B5IC09
IGVmZmVjdGl2ZUJ5dGVzVG9Db3B5OwotICAgICAgICBmcmVlU2VnbWVudChzZWdtZW50KTsKKyAg
ICAgICAgZnJlZVNlZ21lbnQobV9zZWdtZW50c1tpXSk7CiAgICAgfQogICAgIG1fc2VnbWVudHMu
Y2xlYXIoKTsKIH0KLQogI2VuZGlmCiAKIGNvbnN0IFZlY3RvcjxjaGFyPiYgU2hhcmVkQnVmZmVy
OjpidWZmZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRl
eCBmNTkxMjlhMTNhZDg2MTljYjY0NmUzNDczM2UwYjZlOGMwNThmODQyLi5jY2IwMjlkNzk4MThm
NmQ5Y2JkN2FmYmU2NTUwNGUwNTY2OWI3M2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuaApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGVuZChD
RkRhdGFSZWYpOwogI2VuZGlmCiAKLSAgICBQYXNzUmVmPFNoYXJlZEJ1ZmZlcj4gY29weSgpIGNv
bnN0OworICAgIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjb3B5KCkgY29uc3Q7CiAgICAgCiAg
ICAgLy8gUmV0dXJuIHRoZSBudW1iZXIgb2YgY29uc2VjdXRpdmUgYnl0ZXMgYWZ0ZXIgInBvc2l0
aW9uIi4gImRhdGEiCiAgICAgLy8gcG9pbnRzIHRvIHRoZSBmaXJzdCBieXRlLgpAQCAtMTE4LDcg
KzExOCw3IEBAIHB1YmxpYzoKICAgICAvLyAgICAgIH0KICAgICBXRUJDT1JFX0VYUE9SVCB1bnNp
Z25lZCBnZXRTb21lRGF0YShjb25zdCBjaGFyKiYgZGF0YSwgdW5zaWduZWQgcG9zaXRpb24gPSAw
KSBjb25zdDsKIAotICAgIHZvaWQgdHJ5UmVwbGFjZUNvbnRlbnRzV2l0aFBsYXRmb3JtQnVmZmVy
KFNoYXJlZEJ1ZmZlciYpOworICAgIHZvaWQgdHJ5UmVwbGFjZUNvbnRlbnRzV2l0aFBsYXRmb3Jt
QnVmZmVyKFNoYXJlZEJ1ZmZlciopOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzUGxhdGZv
cm1EYXRhKCkgY29uc3Q7CiAKICAgICBzdHJ1Y3QgRGF0YUJ1ZmZlciA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxEYXRhQnVmZmVyPiB7CkBAIC0xNTgsNyArMTU4LDYgQEAgcHJpdmF0ZToK
ICNlbHNlCiAgICAgbXV0YWJsZSBWZWN0b3I8Y2hhcio+IG1fc2VnbWVudHM7CiAjZW5kaWYKLQog
I2lmIFVTRShDRikKICAgICBleHBsaWNpdCBTaGFyZWRCdWZmZXIoQ0ZEYXRhUmVmKTsKICAgICBS
ZXRhaW5QdHI8Q0ZEYXRhUmVmPiBtX2NmRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NmL1NoYXJlZEJ1ZmZlckNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NmL1NoYXJlZEJ1ZmZlckNGLmNwcAppbmRleCBiYmYxODVlMDA3MjNiMTNlNzYwOTNmYzJjMTY1
MWQzNjY1M2VlMDdkLi41Njc3MDdiZmM3ZmI5N2FkZTUxY2I5MzNiNTZjOGVkMGI1OGZhZmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwCkBAIC05
MiwxMyArOTIsMTMgQEAgdm9pZCBTaGFyZWRCdWZmZXI6OmNsZWFyUGxhdGZvcm1EYXRhKCkKICAg
ICBtX2NmRGF0YSA9IDA7CiB9CiAKLXZvaWQgU2hhcmVkQnVmZmVyOjp0cnlSZXBsYWNlQ29udGVu
dHNXaXRoUGxhdGZvcm1CdWZmZXIoU2hhcmVkQnVmZmVyJiBuZXdDb250ZW50cykKK3ZvaWQgU2hh
cmVkQnVmZmVyOjp0cnlSZXBsYWNlQ29udGVudHNXaXRoUGxhdGZvcm1CdWZmZXIoU2hhcmVkQnVm
ZmVyKiBuZXdDb250ZW50cykKIHsKLSAgICBpZiAoIW5ld0NvbnRlbnRzLm1fY2ZEYXRhKQorICAg
IGlmICghbmV3Q29udGVudHMtPm1fY2ZEYXRhKQogICAgICAgICByZXR1cm47CiAKICAgICBjbGVh
cigpOwotICAgIG1fY2ZEYXRhID0gbmV3Q29udGVudHMubV9jZkRhdGE7CisgICAgbV9jZkRhdGEg
PSBuZXdDb250ZW50cy0+bV9jZkRhdGE7CiB9CiAKIGJvb2wgU2hhcmVkQnVmZmVyOjptYXliZUFw
cGVuZFBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXIqIG5ld0NvbnRlbnRzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXIuaAppbmRleCA1MzJhYzg0MGE3OWVhNmE3NmMwNWNkMzc1YzkxZGVmZDgxOGY5
NmZhLi41ODkxZDhjNzcxYzNmNTY1N2I2MzJjYjE2OThiZjdmZGUyZjY5MmViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXJfaAogCiAjaWYgRU5BQkxFKFZJREVPKQotCiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtMzYsNiAr
MzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3Mg
UmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFNoYXJlZEJ1
ZmZlcjsKIAogY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyQ2xpZW50IHsKIHB1Ymxp
YzoKQEAgLTQzLDkgKzQzLDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZXNwb25z
ZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGF0YVJlY2VpdmVkKGNvbnN0IGNoYXIqLCBpbnQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBidWZm
ZXJSZWNlaXZlZChTaGFyZWRCdWZmZXIqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzQ29u
dHJvbENoZWNrRmFpbGVkKGNvbnN0IFJlc291cmNlRXJyb3ImKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbG9hZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJikgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IGxvYWRGaW5pc2hlZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBsb2FkRmluaXNoZWQoU2hhcmVk
QnVmZmVyKikgeyB9CiAjaWYgVVNFKFNPVVApCiAgICAgdmlydHVhbCBjaGFyKiBnZXRPckNyZWF0
ZVJlYWRCdWZmZXIoc2l6ZV90IC8qcmVxdWVzdGVkU2l6ZSovLCBzaXplX3QmIC8qYWN0dWFsU2l6
ZSovKSB7IHJldHVybiBudWxscHRyOyB9OwogI2VuZGlmCkBAIC02Nyw3ICs2OCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXIoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
ckNsaWVudD4gY2xpZW50KQorICAgIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcihzdGQ6OnVu
aXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyQ2xpZW50PiBjbGllbnQpCiAgICAg
ICAgIDogbV9jbGllbnQoV1RGOjptb3ZlKGNsaWVudCkpCiAgICAgewogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9XZWJD
b3JlQVZDRlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9XZWJDb3JlQVZDRlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA5
NzJkNjEzNWVkNjNiMGI4MGUyMzhkNzM4OTJlMDk5MjlhNjJiZDgzLi41ZjRiYjk3Y2M1N2JkMGZh
OGU1ZTNkMGUyMWM3ZDE1ZDlhMWUxYzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlJlc291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQppbmRl
eCAzZTY1YTUxODkxY2MwZDMxNzM5ZGI1N2U0OTFmMmMyN2NhM2IzOWE1Li5mMjBlNmEwNTg0Yzhk
NGZkMWNhNjA4YjA0YmFjYzg1MGM4MThlZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2Fk
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1w
b3J0ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2ltcG9ydCAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgiCisj
aW1wb3J0ICJSZXNvdXJjZUJ1ZmZlci5oIgogI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXJPcHRpb25z
LmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCkBA
IC0xNTEsNyArMTUyLDcgQEAgdm9pZCBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OmZ1bGZpbGxS
ZXF1ZXN0V2l0aFJlc291cmNlKENhY2hlZFJlc291cmNlKiByZXNvdXIKICAgICBpZiAoIWRhdGFS
ZXF1ZXN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBTaGFyZWRCdWZmZXIqIGRhdGEgPSByZXNv
dXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKKyAgICBTaGFyZWRCdWZmZXIqIGRhdGEgPSByZXNvdXJj
ZS0+cmVzb3VyY2VCdWZmZXIoKSA/IHJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpLT5zaGFyZWRC
dWZmZXIoKSA6IDA7CiAgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMTJmZGViYTliNjdmMjU2
ZWE0Y2U4M2NlYTA4MTlhNWQ0Y2RjMjM2MC4uZjlkNzk5MTIzYWIyYTQ1ZTU4MTg4YjY3NTFjYzhl
Y2IzZTE4YTFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5j
cHAKQEAgLTc0LDcgKzc0LDcgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQg
ZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyQ2wKICAgICAgICAgdmly
dHVhbCB2b2lkIGRhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChjb25zdCBSZXNvdXJjZUVy
cm9yJikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBsb2FkRmFpbGVkKGNvbnN0IFJl
c291cmNlRXJyb3ImKSBvdmVycmlkZTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGxvYWRGaW5pc2hl
ZCgpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9hZEZpbmlzaGVkKFNoYXJlZEJ1
ZmZlciopIG92ZXJyaWRlOwogfTsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGVTdHJlYW1pbmdDbGll
bnQgOiBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQsIHB1YmxpYyBTdHJlYW1pbmdDbGllbnQg
ewpAQCAtMTAzMSw3ICsxMDMxLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVu
dDo6bG9hZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICBnc3RfYXBwX3Ny
Y19lbmRfb2Zfc3RyZWFtKHNyYy0+cHJpdi0+YXBwc3JjKTsKIH0KIAotdm9pZCBDYWNoZWRSZXNv
dXJjZVN0cmVhbWluZ0NsaWVudDo6bG9hZEZpbmlzaGVkKCkKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VT
dHJlYW1pbmdDbGllbnQ6OmxvYWRGaW5pc2hlZChTaGFyZWRCdWZmZXIqKQogewogICAgIGhhbmRs
ZU5vdGlmeUZpbmlzaGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0
ZWJvYXJkTWFjLm1tCmluZGV4IDUwMWEzOGNhNTcyOWVjYjdhOTgxNjQ0OTQ3ZDcxZDMyN2YxZjJm
NGYuLmNlYTkwNDg1MzVhZjMzOTEwNDQ1NTM2YWY4YTUwZDc4NzMxMDJkZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC01MSw2ICs1MSw3IEBA
CiAjaW1wb3J0ICJQYXN0ZWJvYXJkU3RyYXRlZ3kuaCIKICNpbXBvcnQgIlBsYXRmb3JtU3RyYXRl
Z2llcy5oIgogI2ltcG9ydCAiUmVuZGVySW1hZ2UuaCIKKyNpbXBvcnQgIlJlc291cmNlQnVmZmVy
LmgiCiAjaW1wb3J0ICJUZXh0LmgiCiAjaW1wb3J0ICJXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCIK
ICNpbXBvcnQgIldlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NvdXAvU2hhcmVkQnVmZmVyU291cC5jcHAKaW5kZXggMjliY2RiNzQ0
MWU3ZTBmMTUwYWMwM2RkMzBhZjc5NDM4OGM3MjJhZS4uMzc3NzJmZThmZWQ0MGM0ZGRjNjVmMWI3
YzhjOTY2ZDQ5NDU3NDYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291
cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3Vw
L1NoYXJlZEJ1ZmZlclNvdXAuY3BwCkBAIC00NCw2ICs0NCwxMSBAQCB2b2lkIFNoYXJlZEJ1ZmZl
cjo6Y2xlYXJQbGF0Zm9ybURhdGEoKQogICAgIG1fc291cEJ1ZmZlci5yZXNldCgpOwogfQogCit2
b2lkIFNoYXJlZEJ1ZmZlcjo6dHJ5UmVwbGFjZUNvbnRlbnRzV2l0aFBsYXRmb3JtQnVmZmVyKFNo
YXJlZEJ1ZmZlciopCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKIHZvaWQgU2hh
cmVkQnVmZmVyOjptYXliZVRyYW5zZmVyUGxhdGZvcm1EYXRhKCkKIHsKICAgICBpZiAoIW1fc291
cEJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNv
dXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQppbmRl
eCBkZGI4YjYyMTdjMDcyOGEwZmI2M2Q4M2ZjNGNhYmYxNWE2YTQ3NzdlLi5iMDIyYzcxNTNiODM4
OWU3Y2RjNzY5MGJiOWE5NjljYjhhMjE3N2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEYXRhU291cmNlLm1tCkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VS
TC5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgpA
QCAtNDU4LDcgKzQ1OSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhO
U011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsCiAKIC0gKE5TRGF0YSAq
KWRhdGEKIHsKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtYWluUmVzb3VyY2VEYXRhID0gdG9Q
cml2YXRlKF9wcml2YXRlKS0+bG9hZGVyLT5tYWluUmVzb3VyY2VEYXRhKCk7CisgICAgUmVmUHRy
PFJlc291cmNlQnVmZmVyPiBtYWluUmVzb3VyY2VEYXRhID0gdG9Qcml2YXRlKF9wcml2YXRlKS0+
bG9hZGVyLT5tYWluUmVzb3VyY2VEYXRhKCk7CiAgICAgaWYgKCFtYWluUmVzb3VyY2VEYXRhKQog
ICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBtYWluUmVzb3VyY2VEYXRhLT5jcmVhdGVO
U0RhdGEoKS5hdXRvcmVsZWFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KaW5kZXggOTQ0YzVjODQyMjk1YmQzMzdkYmQ2YWMxMjRmOTEzNGU4YmQ2ZjEwMC4uMDg2
M2JkZWZhZWQ4ZGExZTFkYzliMmVhYzgyNmNhNjY2NDg3NGZjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xMDgsNiArMTA4LDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaW1wbGVGb250RGF0
YS5oPgpAQCAtMzk1NCw3ICszOTU1LDcgQEAgc3RhdGljIGJvb2wgbWF0Y2hlc0V4dGVuc2lvbk9y
RXF1aXZhbGVudChOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5nICpleHRlbnNpb24KICAgICBO
U1VSTCAqZHJhZ2dpbmdJbWFnZVVSTCA9IG5pbDsKICAgICAKICAgICBpZiAoV2ViQ29yZTo6Q2Fj
aGVkSW1hZ2UqIHRpZmZSZXNvdXJjZSA9IFtzZWxmIHByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNl
XSkgewotICAgICAgICBpZiAoYXV0byogYnVmZmVyID0gdGlmZlJlc291cmNlLT5yZXNvdXJjZUJ1
ZmZlcigpKSB7CisgICAgICAgIGlmIChSZXNvdXJjZUJ1ZmZlciAqYnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q2FjaGVkUmVzb3VyY2UqPih0aWZmUmVzb3VyY2UpLT5yZXNvdXJjZUJ1ZmZlcigpKSB7CiAg
ICAgICAgICAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IHRpZmZSZXNvdXJjZS0+cmVzcG9u
c2UoKS5uc1VSTFJlc3BvbnNlKCk7CiAgICAgICAgICAgICBkcmFnZ2luZ0ltYWdlVVJMID0gW3Jl
c3BvbnNlIFVSTF07CiAgICAgICAgICAgICB3cmFwcGVyID0gW1tbTlNGaWxlV3JhcHBlciBhbGxv
Y10gaW5pdFJlZ3VsYXJGaWxlV2l0aENvbnRlbnRzOmJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCkuZ2V0
KCldIGF1dG9yZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkRhdGFT
b3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YVNvdXJjZS5jcHAKaW5kZXggOTA3
NDUxOTkwNDBiOGE3NGIxYWY5YWVmODBlOWRhNjdlYjIzMTBjNC4uNGZiZDk5NjAxOGIzMDNmYmQ1
MmUwM2I4YTdhYTM5YzAxZmJjMTA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
RGF0YVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YVNvdXJjZS5jcHAK
QEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtMTgwLDcgKzE4MSw4IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRGF0YVNv
dXJjZTo6ZGF0YSgKICAgICBpZiAoIW1fbG9hZGVyKQogICAgICAgICByZXR1cm4gRV9GQUlMOwog
Ci0gICAgcmV0dXJuIE1lbW9yeVN0cmVhbTo6Y3JlYXRlSW5zdGFuY2UobV9sb2FkZXItPm1haW5S
ZXNvdXJjZURhdGEoKSkuY29weVJlZlRvKHN0cmVhbSk7CisgICAgUmVmUHRyPFJlc291cmNlQnVm
ZmVyPiBidWZmZXIgPSBtX2xvYWRlci0+bWFpblJlc291cmNlRGF0YSgpOworICAgIHJldHVybiBN
ZW1vcnlTdHJlYW06OmNyZWF0ZUluc3RhbmNlKGJ1ZmZlciA/IGJ1ZmZlci0+c2hhcmVkQnVmZmVy
KCkgOiAwKS5jb3B5UmVmVG8oc3RyZWFtKTsKIH0KIAogSFJFU1VMVCBXZWJEYXRhU291cmNlOjpy
ZXByZXNlbnRhdGlvbigvKiBbcmV0dmFsXVtvdXRdICovIElXZWJEb2N1bWVudFJlcHJlc2VudGF0
aW9uKiogcmVwKQpAQCAtMzAxLDcgKzMwMyw4IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
V2ViRGF0YVNvdXJjZTo6c3VicmVzb3VyY2VGb3JVUkwoCiAgICAgaWYgKCFjYWNoZWRSZXNvdXJj
ZSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgICpyZXNvdXJjZSA9IFdlYlJlc291cmNl
OjpjcmVhdGVJbnN0YW5jZShjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSwgY2FjaGVk
UmVzb3VyY2UtPnJlc3BvbnNlKCkpOworICAgIFJlc291cmNlQnVmZmVyKiBidWZmZXIgPSBjYWNo
ZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKKyAgICAqcmVzb3VyY2UgPSBXZWJSZXNvdXJj
ZTo6Y3JlYXRlSW5zdGFuY2UoYnVmZmVyID8gYnVmZmVyLT5zaGFyZWRCdWZmZXIoKSA6IDAsIGNh
Y2hlZFJlc291cmNlLT5yZXNwb25zZSgpKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dAppbmRleCAwYmUyODgyNWQyOTQzOTI5MzZlOWFjYTgxYWFlNjEwNTM1MjMwOWE0
Li5kZmRiODBjOGZmYTJmZTMxYTU1YjI1YTJhMDQyZDI5ZmI5ZGI0NTg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dApAQCAtMjM1LDYgKzIzNSw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKICAgICBTaGFyZWQvV2ViUmVuZGVy
TGF5ZXIuY3BwCiAgICAgU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKKyAgICBTaGFyZWQvV2Vi
UmVzb3VyY2VCdWZmZXIuY3BwCiAgICAgU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCiAgICAgU2hh
cmVkL1dlYldoZWVsRXZlbnQuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDhlM2UyNTgyZDUyODY3
OTQzOTkxMWM1ZDU5MDQ2MjY1ZjdlZGM5NjYuLjk1NGJiYTQ3NDE5OTIzM2ZhODQ1NmM5MDE3MWZj
YjliNjgwZTg5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0
aWZpY2F0ZUluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaD4KQEAgLTQwOCwyMCArNDA5LDE4IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpidWZmZXJpbmdUaW1lckZpcmVkKFRpbWVyPE5l
dHdvcmtSZXNvdXJjZUxvYWRlcj4mKQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2Vu
ZEJ1ZmZlcihXZWJDb3JlOjpTaGFyZWRCdWZmZXIqIGJ1ZmZlciwgaW50IGVuY29kZWREYXRhTGVu
Z3RoKQogewotICAgIEFTU0VSVChidWZmZXIpOwogICAgIEFTU0VSVCghaXNTeW5jaHJvbm91cygp
KTsKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQogICAgIFNoYXJlYWJsZVJlc291cmNlOjpIYW5k
bGUgc2hhcmVhYmxlUmVzb3VyY2VIYW5kbGU7Ci0gICAgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp0
cnlHZXRTaGFyZWFibGVIYW5kbGVGcm9tU2hhcmVkQnVmZmVyKHNoYXJlYWJsZVJlc291cmNlSGFu
ZGxlLCAqYnVmZmVyKTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnRyeUdldFNoYXJlYWJs
ZUhhbmRsZUZyb21TaGFyZWRCdWZmZXIoc2hhcmVhYmxlUmVzb3VyY2VIYW5kbGUsIGJ1ZmZlcik7
CiAgICAgaWYgKCFzaGFyZWFibGVSZXNvdXJjZUhhbmRsZS5pc051bGwoKSkgewotICAgICAgICAv
LyBTaW5jZSB3ZSdyZSBkZWxpdmVyaW5nIHRoaXMgcmVzb3VyY2UgYnkgb3Vyc2VsdmVzIGFsbCBh
dCBvbmNlIGFuZCBkb24ndCBuZWVkIGFueSBtb3JlIGRhdGEgb3IgY2FsbGJhY2tzIGZyb20gdGhl
IG5ldHdvcmsgbGF5ZXIsIGFib3J0IHRoZSBsb2FkZXIuCisgICAgICAgIC8vIFNpbmNlIHdlJ3Jl
IGRlbGl2ZXJpbmcgdGhpcyByZXNvdXJjZSBieSBvdXJzZWx2ZXMgYWxsIGF0IG9uY2UgYW5kIGRv
bid0IG5lZWQgYW55bW9yZSBkYXRhIG9yIGNhbGxiYWNrcyBmcm9tIHRoZSBuZXR3b3JrIGxheWVy
LCBhYm9ydCB0aGUgbG9hZGVyLgogICAgICAgICBhYm9ydCgpOwogICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2ZVJlc291cmNlKHNoYXJlYWJsZVJlc291
cmNlSGFuZGxlLCBjdXJyZW50VGltZSgpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5k
aWYKLQogICAgIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlKGJ1
ZmZlcik7CiAgICAgc2VuZEFib3J0aW5nT25GYWlsdXJlKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxv
YWRlcjo6RGlkUmVjZWl2ZURhdGEoZGF0YVJlZmVyZW5jZSwgZW5jb2RlZERhdGFMZW5ndGgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmgKaW5kZXggOWNlZTg2MThjMmU3MWRjNzYxNWQ5NTUyYzNiNDliM2NmMGEyYzY3
Yi4uMjczZTEzMTk5ZTgxOTJkM2Y2NjRjODhiMTZiMjg4YmE0ZWFhYzU0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
QEAgLTQ2LDYgKzQ2LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9u
c2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEJsb2JEYXRhRmlsZVJlZmVyZW5jZTsKK2NsYXNzIFJlc291cmNlQnVmZmVyOwogY2xhc3MgUmVz
b3VyY2VIYW5kbGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiB9CkBAIC05MSw3ICs5Miw3IEBA
IHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwKQogICAgIHN0YXRpYyB2b2lkIHRyeUdl
dFNoYXJlYWJsZUhhbmRsZUZyb21DRlVSTENhY2hlZFJlc3BvbnNlKFNoYXJlYWJsZVJlc291cmNl
OjpIYW5kbGUmLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKLSAgICBzdGF0aWMgdm9pZCB0cnlH
ZXRTaGFyZWFibGVIYW5kbGVGcm9tU2hhcmVkQnVmZmVyKFNoYXJlYWJsZVJlc291cmNlOjpIYW5k
bGUmLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKTsKKyAgICBzdGF0aWMgdm9pZCB0cnlHZXRTaGFy
ZWFibGVIYW5kbGVGcm9tU2hhcmVkQnVmZmVyKFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXIqKTsKICNlbmRpZgogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BB
Q0VfQVVUSF9DQUxMQkFDSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLmgKaW5kZXggNTgzY2VkYjY1ZmU3
MTljNDcxNWY5MWY2ZTFmY2E0MjgzNjlkNGNmNS4uYmQ4YzBiMGJhZThmOTU2YWI5MTFiNDUyNmVm
MzVlMWFjMzM5MDFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHJpdmF0ZToKICAgICBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNl
UmVmLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqKTsKIAogICAgIC8vIFdlYkNvcmU6OkRpc2tDYWNo
ZU1vbml0b3IKLSAgICB2aXJ0dWFsIHZvaWQgcmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXNvdXJjZUJl
Y2FtZUZpbGVCYWNrZWQoUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+KSBvdmVycmlk
ZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgogICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0
aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLm1t
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtEaXNrQ2FjaGVNb25p
dG9yLm1tCmluZGV4IDU1MWQwNzY5MzI3OWJiZmIxZjQyM2M0ZTUyN2I3ZjIzYWE3NTkzZmEuLmEy
M2M1OGJjNzZhODJhYWVlNzBkYzkxZmQ5MDdlYWNhNWEzYzUzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrRGlza0NhY2hlTW9uaXRvci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0Rpc2tDYWNoZU1v
bml0b3IubW0KQEAgLTU5LDEwICs1OSwxMCBAQCBOZXR3b3JrRGlza0NhY2hlTW9uaXRvcjo6TmV0
d29ya0Rpc2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZQogewog
fQogCi12b2lkIE5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yOjpyZXNvdXJjZUJlY2FtZUZpbGVCYWNr
ZWQoU2hhcmVkQnVmZmVyJiBmaWxlQmFja2VkQnVmZmVyKQordm9pZCBOZXR3b3JrRGlza0NhY2hl
TW9uaXRvcjo6cmVzb3VyY2VCZWNhbWVGaWxlQmFja2VkKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBmaWxlQmFja2VkQnVmZmVyKQogewogICAgIFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUgaGFu
ZGxlOwotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJv
bVNoYXJlZEJ1ZmZlcihoYW5kbGUsIGZpbGVCYWNrZWRCdWZmZXIpOworICAgIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6dHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJvbVNoYXJlZEJ1ZmZlcihoYW5kbGUs
IGZpbGVCYWNrZWRCdWZmZXIuZ2V0KCkpOwogICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCiAgICAg
ICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2FkZXJNYWMubW0KaW5kZXggZTEzMzdkMDM1M2Yz
ODBkZjZhYjg5OTk5ZThmZGNkMTRkMjYyZmY3Ni4uNDNhZWUwYTUwNzhjZjU5ZmVmMmIyOWJmZmE2
MzhlODZjNDE4ZTYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL05ldHdvcmtSZXNvdXJjZUxvYWRlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291cmNlTG9hZGVyTWFjLm1tCkBAIC04NCw3ICs4NCw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp0cnlHZXRTaGFyZWFibGVIYW5kbGVGcm9t
Q0ZVUkxDYWNoZWRSZXNwb25zZShTaGFyZWFiCiAgICAgdHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJv
bUNGRGF0YShoYW5kbGUsIGRhdGEpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
dHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJvbVNoYXJlZEJ1ZmZlcihTaGFyZWFibGVSZXNvdXJjZTo6
SGFuZGxlJiBoYW5kbGUsIFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQordm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnRyeUdldFNoYXJlYWJsZUhhbmRsZUZyb21TaGFyZWRCdWZmZXIoU2hhcmVhYmxl
UmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlLCBTaGFyZWRCdWZmZXIqIGJ1ZmZlcikKIHsKICAgICBz
dGF0aWMgQ0ZVUkxDYWNoZVJlZiBjYWNoZSA9IENGVVJMQ2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUo
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6dHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJvbVNoYXJlZEJ1ZmZl
cihTaGFyZWFibGVSZXNvdQogICAgIGlmICghY2FjaGUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IENGRGF0YVJlZiBkYXRhID0gYnVmZmVyLmV4aXN0aW5nQ0ZEYXRhKCk7CisgICAgQ0ZEYXRhUmVm
IGRhdGEgPSBidWZmZXItPmV4aXN0aW5nQ0ZEYXRhKCk7CiAgICAgaWYgKCFkYXRhKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTEwMiw4ICsxMDIsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6dHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJvbVNoYXJlZEJ1ZmZlcihTaGFyZWFibGVSZXNvdQog
CiAgICAgdHJ5R2V0U2hhcmVhYmxlSGFuZGxlRnJvbUNGRGF0YShoYW5kbGUsIGRhdGEpOwogfQot
Ci0jZW5kaWYgLy8gSU9TIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5
MAorI2VuZGlmIC8vIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAogCiBz
aXplX3QgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpmaWxlQmFja2VkUmVzb3VyY2VNaW5pbXVtU2l6
ZSgpCiB7CkBAIC0xMTEsNyArMTEwLDYgQEAgc2l6ZV90IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZmlsZUJhY2tlZFJlc291cmNlTWluaW11bVNpemUoKQogfQogCiAjaWYgVVNFKENGTkVUV09SSykK
LQogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQog
ewogICAgIEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBoYW5kbGUgPT0gbV9oYW5kbGUpOwpAQCAtMTM1
LDcgKzEzMyw2IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25z
ZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIE5TQ2FjCiAKICAgICBtX2hhbmRsZS0+Y29u
dGludWVXaWxsQ2FjaGVSZXNwb25zZShuc1Jlc3BvbnNlKTsKIH0KLQogI2VuZGlmIC8vICFVU0Uo
Q0ZORVRXT1JLKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9JUEMvRGF0YVJlZmVyZW5jZS5oCmluZGV4IGU2ODA2YjA3NDEzYWQyY2UyOTg5ZTk0Mjg5
YjlkMTg4MDNhOTI3ZDMuLjRmOGY0OGQ1YzFjYTc2ZWMxZTBmNTNhMTI1NmVhZjFkMzhjNjJjYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9EYXRhUmVmZXJlbmNlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL0RhdGFSZWZlcmVuY2UuaApAQCAtODMs
MjcgKzgzLDIxIEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fc2l6ZTsKIH07CiAKLWNsYXNzIFNo
YXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgOiBwdWJsaWMgRGF0YVJlZmVyZW5jZSB7CitjbGFzcyBT
aGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlOiBwdWJsaWMgRGF0YVJlZmVyZW5jZSB7CiBwdWJsaWM6
Ci0gICAgLy8gRklYTUU6IFRoaXMgY2xhc3MgZG9lc24ndCBoYW5kbGUgbnVsbCwgc28gdGhlIGFy
Z3VtZW50IHNob3VsZCBiZSBhIHJlZmVyZW5jZSBvciBQYXNzUmVmLgogICAgIFNoYXJlZEJ1ZmZl
ckRhdGFSZWZlcmVuY2UoV2ViQ29yZTo6U2hhcmVkQnVmZmVyKiBidWZmZXIpCi0gICAgICAgIDog
bV9idWZmZXIoYnVmZmVyKQogICAgIHsKKyAgICAgICAgbV9idWZmZXIgPSBidWZmZXI7CiAgICAg
fQogCi1wcml2YXRlOgotICAgIC8vIEZJWE1FOiBJdCBpcyBhIGJhZCBpZGVhIHRvIHZpb2xhdGUg
dGhlIExpc2tvdiBTdWJzdGl0dXRpb24gUHJpbmNpcGxlIGFzIHdlIGRvIGhlcmUuCi0gICAgLy8g
U2luY2Ugd2UgYXJlIHVzaW5nIERhdGFSZWZlcmVuY2UgYXMgYSBwb2x5bW9wcmhpYyBiYXNlIGNs
YXNzIGluIHRoaXMgZmFzaGlvbiwKLSAgICAvLyB0aGVuIHdlIG5lZWQgaXQgdG8gYmUgYSBiYXNl
IGNsYXNzIHRoYXQgZG9lcyBub3QgaGF2ZSBmdW5jdGlvbnMgc3VjaCBhcyBpc0VtcHR5LAotICAg
IC8vIHNpemUsIGRhdGEsIGFuZCB2ZWN0b3IsIGFsbCBvZiB3aGljaCB3aWxsIGRvIHRoZSB3cm9u
ZyB0aGluZyBpZiB0aGV5IGFyZSBjYWxsZWQuCi0gICAgLy8gRGVsZXRpbmcgdGhlc2UgZnVuY3Rp
b25zIGhlcmUgZG9lcyBub3QgcHJldmVudCB0aGVtIGZyb20gYmVpbmcgY2FsbGVkLgotICAgIGJv
b2wgaXNFbXB0eSgpIGNvbnN0ID0gZGVsZXRlOwotICAgIHNpemVfdCBzaXplKCkgY29uc3QgPSBk
ZWxldGU7CisgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci0+c2l6ZSgp
OyB9CiAgICAgY29uc3QgdWludDhfdCogZGF0YSgpIGNvbnN0ID0gZGVsZXRlOwogICAgIFZlY3Rv
cjx1aW50OF90PiB2ZWN0b3IoKSBjb25zdCA9IGRlbGV0ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmNvZGUo
QXJndW1lbnRFbmNvZGVyJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB+U2hhcmVkQnVm
ZmVyRGF0YVJlZmVyZW5jZSgpIHsgbV9idWZmZXIgPSAwOyB9CiAKK3ByaXZhdGU6CiAgICAgUmVm
UHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gbV9idWZmZXI7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGI5ZWIzMmUwYWE5
MjUwZTdhNDg1OTQyNGZiNTQ5ODMzY2ZhYTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlQnVmZmVy
LmgiCisKKyNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQorCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXZWJSZXNvdXJjZUJ1ZmZlcjo6V2ViUmVzb3VyY2VCdWZmZXIoUGFzc1JlZlB0cjxTaGFy
ZWFibGVSZXNvdXJjZT4gcmVzb3VyY2UpCisgICAgOiBtX3Jlc291cmNlKHJlc291cmNlKQorewor
ICAgIEFTU0VSVChtX3Jlc291cmNlKTsKK30KKworV2ViUmVzb3VyY2VCdWZmZXI6On5XZWJSZXNv
dXJjZUJ1ZmZlcigpCit7Cit9CisKK2NvbnN0IGNoYXIqIFdlYlJlc291cmNlQnVmZmVyOjpkYXRh
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4obV9y
ZXNvdXJjZS0+ZGF0YSgpKTsKK30KKwordW5zaWduZWQgV2ViUmVzb3VyY2VCdWZmZXI6OnNpemUo
KSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc291cmNlLT5zaXplKCk7Cit9CisKK2Jvb2wgV2Vi
UmVzb3VyY2VCdWZmZXI6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiAhbV9yZXNvdXJj
ZSB8fCAhbV9yZXNvdXJjZS0+c2l6ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJSZXNvdXJjZUJ1ZmZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5YjQ5NTlkNWM1MmU3NmI1ZDIzMmFk
YzZkNjA2MjU5OTcyZmJkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUmVzb3VyY2VCdWZmZXIuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJSZXNvdXJjZUJ1ZmZlcl9oCisjZGVmaW5lIFdlYlJlc291cmNlQnVmZmVyX2gKKwor
I2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlQnVmZmVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTaGFyZWFibGVSZXNv
dXJjZTsKKworY2xhc3MgV2ViUmVzb3VyY2VCdWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6UmVzb3Vy
Y2VCdWZmZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlJlc291cmNlQnVm
ZmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxTaGFyZWFibGVSZXNvdXJjZT4gcmVzb3VyY2UpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJSZXNvdXJjZUJ1ZmZlcihyZXNvdXJjZSkpOyB9CisKKyAgICB2
aXJ0dWFsIH5XZWJSZXNvdXJjZUJ1ZmZlcigpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBjb25z
dCBjaGFyKiBkYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB1bnNpZ25lZCBzaXpl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdCBvdmVy
cmlkZTsKKworcHJpdmF0ZToKKyAgICBXZWJSZXNvdXJjZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJl
YWJsZVJlc291cmNlPik7CisKKyAgICBSZWZQdHI8U2hhcmVhYmxlUmVzb3VyY2U+IG1fcmVzb3Vy
Y2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShTSEFS
RUFCTEVfUkVTT1VSQ0UpCisKKyNlbmRpZiAvLyBXZWJSZXNvdXJjZUJ1ZmZlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjBj
ODQzMDk2ZjI0OGQ1Y2YwOGYwN2JmNzk4ZmFjMWM0Y2IwMzljOC4uYWM5NWNmZDEzYzcyYTFmZGVm
YWNkYjRmMTA2YmVhNTRkMGYyZDRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODIxLDYgKzgyMSw4IEBACiAJCTUxMjEyN0M0
MTkwODIzOUEwMERBRjM1QyAvKiBXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTIxMjdDMjE5MDgyMzlBMDBEQUYz
NUMgLyogV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5oICovOyB9OwogCQk1MTIxNzQ2MDE2NEMyMEUz
MDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyMTc0NUUxNjRDMjBFMzAwMzdBNUMxIC8qIFNoYXJl
YWJsZVJlc291cmNlLmNwcCAqLzsgfTsKIAkJNTEyMTc0NjExNjRDMjBFMzAwMzdBNUMxIC8qIFNo
YXJlYWJsZVJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTIxNzQ1RjE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuaCAq
LzsgfTsKKwkJNTEyMTc0NjQxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNlQnVmZmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjE3NDYy
MTY0QzIxMzcwMDM3QTVDMSAvKiBXZWJSZXNvdXJjZUJ1ZmZlci5jcHAgKi87IH07CisJCTUxMjE3
NDY1MTY0QzIxMzcwMDM3QTVDMSAvKiBXZWJSZXNvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyMTc0NjMxNjRDMjEzNzAwMzdBNUMx
IC8qIFdlYlJlc291cmNlQnVmZmVyLmggKi87IH07CiAJCTUxMjNDRjFCMTMzRDI2MEEwMDU2Rjgw
MCAvKiBXS0ljb25EYXRhYmFzZUNHLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMjNDRjE5MTMzRDI2MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFz
ZUNHLmNwcCAqLzsgfTsKIAkJNTEyM0NGMUMxMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFi
YXNlQ0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MjNDRjFBMTMzRDI2MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFzZUNHLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEyOTA5OTIxODNBQ0VBRjAw
NTUyMkE2IC8qIFdlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTA5OTAxODNBQ0VBRjAwNTUyMkE2IC8qIFdl
YklEQlNlcnZlckNvbm5lY3Rpb24uY3BwICovOyB9OwpAQCAtMjg1MCw2ICsyODUyLDggQEAKIAkJ
NTEyMTI3QzIxOTA4MjM5QTAwREFGMzVDIC8qIFdlYlBhc3RlYm9hcmRPdmVycmlkZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTIxNzQ1RTE2NEMyMEUzMDAzN0E1QzEgLyog
U2hhcmVhYmxlUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2hhcmVhYmxlUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTIxNzQ1RjE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVhYmxlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTEyMTc0NjIxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNl
QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJlc291
cmNlQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyMTc0NjMxNjRD
MjEzNzAwMzdBNUMxIC8qIFdlYlJlc291cmNlQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlJlc291cmNlQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMjNDRjE5MTMzRDI2MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFzZUNHLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdLSWNvbkRhdGFiYXNlQ0cuY3Bw
OyBwYXRoID0gY2cvV0tJY29uRGF0YWJhc2VDRy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMjNDRjFBMTMzRDI2MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFzZUNHLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSWNvbkRhdGFiYXNlQ0cuaDsgcGF0aCA9
IGNnL1dLSWNvbkRhdGFiYXNlQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEy
OTA5OTAxODNBQ0VBRjAwNTUyMkE2IC8qIFdlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCU2VydmVyQ29ubmVjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NTIxLDYgKzQ1MjUsOCBAQAogCQkJ
CTM3OTQ4NDAyMTUwQzM1MDYwMEU1MkNFOSAvKiBXZWJSZW5kZXJMYXllci5oICovLAogCQkJCTM3
NjA4ODFDMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuY3BwICovLAogCQkJCTM3
NjA4ODFEMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuaCAqLywKKwkJCQk1MTIx
NzQ2MjE2NEMyMTM3MDAzN0E1QzEgLyogV2ViUmVzb3VyY2VCdWZmZXIuY3BwICovLAorCQkJCTUx
MjE3NDYzMTY0QzIxMzcwMDM3QTVDMSAvKiBXZWJSZXNvdXJjZUJ1ZmZlci5oICovLAogCQkJCUY2
MzQ0NDU1MTJBODg1QzgwMDA2MTJEOCAvKiBXZWJTZWN1cml0eU9yaWdpbi5oICovLAogCQkJCUE3
MkQ1RDdGMTIzNkNCQTgwMEE4OEIxNSAvKiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLywK
IAkJCQlDMDMzN0RENzEyN0E1MUI2MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVudC5jcHAgKi8sCkBA
IC03NTk2LDYgKzc2MDIsNyBAQAogCQkJCTUxRTM1MUY2MTgwRjVDNzUwMEU1M0JFOSAvKiBXZWJJ
REJGYWN0b3J5QmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQyOUVDRDAxOTJGMkMyRTAw
OTg0Qjc4IC8qIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzc2MDg4MUYxNTA0MTNFOTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTEyMTc0NjUxNjRDMjEzNzAwMzdBNUMxIC8qIFdlYlJlc291
cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzM2NzYzMDEzMEM5OTk4MDA2QzlERTIg
LyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYwODlC
MTkyNjdFRTUwMEI2MzkwQyAvKiBXS1VzZXJTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMz
MzY3NjU2MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKQEAgLTkyNzcsNiArOTI4NCw3IEBACiAJCQkJMzc5NDg0MDMxNTBD
MzUwNjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
MjhGM0U2MTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJFZGl0b3JDbGllbnRJT1MubW0gaW4gU291cmNl
cyAqLywKIAkJCQkzNzYwODgxRTE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTUxMjE3NDY0MTY0QzIxMzcwMDM3QTVDMSAvKiBXZWJSZXNv
dXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzM2NzYyRjEzMEM5OTk4MDA2QzlE
RTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEx
NUM3MTQxOTBGODlFNDAwRUNDNTE2IC8qIERhdGFiYXNlUHJvY2Vzc0lPUy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTMzRjlENUI5MTMxMkYxRUUwMDBENjgzRiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApp
bmRleCA2NzFhMTdlNTZjODQzNTBmZDg4YjJiMGQzM2VkZWIxMjIzOTkyYWVkLi43NzE5NjQ1NTg0
YzVjMGFhMmJjZjljYTUyNTRkM2U4OGQ2NTU4YmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMzAsMTAgKzMwLDEyIEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUJ1ZmZlci5oIgog
I2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIldlYlJlc291
cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291cmNlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAKQEAgLTkzLDcgKzk1LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmVzb3VyY2UtPnRyeVJl
cGxhY2VFbmNvZGVkRGF0YSgqYnVmZmVyKTsKKyAgICByZXNvdXJjZS0+dHJ5UmVwbGFjZUVuY29k
ZWREYXRhKGJ1ZmZlci5yZWxlYXNlKCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKaW5kZXggODhjYjA2NGUxMDcyOTNkNzkwOTY1YTA3NGFkYzEyY2RhYzgwZDY4Zi4u
MWE3ZjljMWU0NGYyNzAzM2YxZTQyMjFkNTFmNDM1ZGI0ODUwODdkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQb2xpY3kuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5n
cy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzVlYjQyM2NiMDJmMDU3MzUwZDM2ZWRjNTU0MDliOGNk
ZGVkODkyYS4uODVhZGZiYjJjMjBmM2IyZDc0MDdlOTY4OGZhZTk5MGIyOTA1YjBhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlv
bkNhY2hlSG9zdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggNmI5Mjg0MjVhZjQ3
YjUyYTExNDU2MTRlZjllOTNiNTUwNTRjMTM2Ny4uZGM5YWEwZjQyM2U5MDU2ODlmN2M3YWE3MzEw
YTUyYjczZGEwMTRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgRGF0YVJl
ZmVyZW5jZTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNs
YXNzIFByb3RlY3Rpb25TcGFjZTsKK2NsYXNzIFJlc291cmNlQnVmZmVyOwogY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKIGNsYXNzIFJlc291cmNlTG9hZGVyOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA5Y2UwYmVmZGJlYjU0MGI5M2Y2
OGVkZmI2OWRiMDQ1ZjgyY2IxYWRjLi45MWY4ZThmNjAyYWVmYzQwN2JmY2IyNDZjNDljY2Y4ZDYz
YzUzYWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzQsNiArNzQs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGx1Z2luRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2dyZXNzVHJhY2tlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC05MTgsNyArOTE5LDcgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZmluaXNoZWRMb2FkaW5nKERvY3VtZW50TG9hZGVyKiBsb2FkZXIp
CiAgICAgICAgICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtYWluUmVzb3VyY2VEYXRhID0gbG9hZGVy
LT5tYWluUmVzb3VyY2VEYXRhKCk7CisgICAgICAgICAgICBSZWZQdHI8UmVzb3VyY2VCdWZmZXI+
IG1haW5SZXNvdXJjZURhdGEgPSBsb2FkZXItPm1haW5SZXNvdXJjZURhdGEoKTsKICAgICAgICAg
ICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgdWludDhfdCo+KG1haW5SZXNvdXJjZURhdGEgPyBtYWluUmVzb3VyY2VEYXRhLT5kYXRhKCkg
OiAwKSwgbWFpblJlc291cmNlRGF0YSA/IG1haW5SZXNvdXJjZURhdGEtPnNpemUoKSA6IDApOwog
ICAgICAgICAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5p
c2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihsb2FkZXItPnJlc3BvbnNlKCku
c3VnZ2VzdGVkRmlsZW5hbWUoKSwgZGF0YVJlZmVyZW5jZSkpOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCA5ZGNlZTQ2
YjBiZWI5NWRhZGZhMzcyMDNjNWY2NGJkOTcyODdkZDdhLi41NGUwYjdkZmYyODdlNzhhYzQ0M2Vm
ODA4N2VmZDQyOTk3Y2IxYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CkBAIC0zMDQsNyArMzA1LDcgQEAgU3RyaW5nIFdlYkZyYW1lOjpzb3VyY2UoKSBjb25zdAog
ICAgIERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciA9IG1fY29yZUZyYW1lLT5sb2FkZXIo
KS5hY3RpdmVEb2N1bWVudExvYWRlcigpOwogICAgIGlmICghZG9jdW1lbnRMb2FkZXIpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtYWluUmVzb3Vy
Y2VEYXRhID0gZG9jdW1lbnRMb2FkZXItPm1haW5SZXNvdXJjZURhdGEoKTsKKyAgICBSZWZQdHI8
UmVzb3VyY2VCdWZmZXI+IG1haW5SZXNvdXJjZURhdGEgPSBkb2N1bWVudExvYWRlci0+bWFpblJl
c291cmNlRGF0YSgpOwogICAgIGlmICghbWFpblJlc291cmNlRGF0YSkKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogICAgIHJldHVybiBkZWNvZGVyLT5lbmNvZGluZygpLmRlY29kZShtYWluUmVz
b3VyY2VEYXRhLT5kYXRhKCksIG1haW5SZXNvdXJjZURhdGEtPnNpemUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggY2YwMGUxODczZDcy
MjFlM2FkZTk1NzY5ZTA5Y2M4NGMwZDk1N2U5Yi4uYmI3YWIxMGI0YTJjZDMwM2MxZWI5NWI5YWVk
NmRjOTY0YTk3N2I3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtMTM3LDYgKzEzNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJM
YXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVuZGVyVmlldy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oPgpAQCAtMjQzNCwxNiArMjQzNSwxNyBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkphdmFT
Y3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmIHNjcmlwdCwgdWludDY0X3QgY2FsbGJhY2tJ
RAogICAgIC8vIE5PVEU6IFdlIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aGVuIHJ1bm5pbmcgc2NyaXB0
cyB0aGF0IHRoZSBvYmplY3RzIHdlIGRlcGVuZCBvbiBkb24ndAogICAgIC8vIGRpc2FwcGVhciBk
dXJpbmcgc2NyaXB0IGV4ZWN1dGlvbi4KIAorICAgIC8vIFJldGFpbiB0aGUgU2VyaWFsaXplZFNj
cmlwdFZhbHVlIGF0IHRoaXMgbGV2ZWwgc28gaXQgKGFuZCB0aGUgaW50ZXJuYWwgZGF0YSkgbGl2
ZXMKKyAgICAvLyBsb25nIGVub3VnaCBmb3IgdGhlIERhdGFSZWZlcmVuY2UgdG8gYmUgZW5jb2Rl
ZCBieSB0aGUgc2VudCBtZXNzYWdlLgogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHNlcmlhbGl6ZWRSZXN1bHRWYWx1ZTsKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVy
ZW5jZTsKKwogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25WTSgpKTsK
ICAgICBpZiAoSlNWYWx1ZSByZXN1bHRWYWx1ZSA9IG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+
c2NyaXB0KCkuZXhlY3V0ZVNjcmlwdChzY3JpcHQsIHRydWUpLmpzVmFsdWUoKSkgewotICAgICAg
ICBzZXJpYWxpemVkUmVzdWx0VmFsdWUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSht
X21haW5GcmFtZS0+anNDb250ZXh0KCksCi0gICAgICAgICAgICB0b1JlZihtX21haW5GcmFtZS0+
Y29yZUZyYW1lKCktPnNjcmlwdCgpLmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSktPmdsb2JhbEV4ZWMoKSwgcmVzdWx0VmFsdWUpLCBudWxscHRyKTsKKyAgICAgICAgaWYgKChz
ZXJpYWxpemVkUmVzdWx0VmFsdWUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShtX21h
aW5GcmFtZS0+anNDb250ZXh0KCksIHRvUmVmKG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+c2Ny
aXB0KCkuZ2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKS0+Z2xvYmFsRXhlYygp
LCByZXN1bHRWYWx1ZSksIDApKSkKKyAgICAgICAgICAgIGRhdGFSZWZlcmVuY2UgPSBzZXJpYWxp
emVkUmVzdWx0VmFsdWUtPmRhdGEoKTsKICAgICB9CiAKLSAgICBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YVJlZmVyZW5jZTsKLSAgICBpZiAoc2VyaWFsaXplZFJlc3VsdFZhbHVlKQotICAgICAgICBk
YXRhUmVmZXJlbmNlID0gc2VyaWFsaXplZFJlc3VsdFZhbHVlLT5kYXRhKCk7CiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTY3JpcHRWYWx1ZUNhbGxiYWNrKGRhdGFSZWZlcmVuY2Us
IGNhbGxiYWNrSUQpKTsKIH0KIApAQCAtMjQ1NiwxNCArMjQ1OCwxNSBAQCB2b2lkIFdlYlBhZ2U6
OmdldENvbnRlbnRzQXNTdHJpbmcodWludDY0X3QgY2FsbGJhY2tJRCkKICNpZiBFTkFCTEUoTUhU
TUwpCiB2b2lkIFdlYlBhZ2U6OmdldENvbnRlbnRzQXNNSFRNTERhdGEodWludDY0X3QgY2FsbGJh
Y2tJRCwgYm9vbCB1c2VCaW5hcnlFbmNvZGluZykKIHsKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YVJlZmVyZW5jZTsKKwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IHVzZUJp
bmFyeUVuY29kaW5nCiAgICAgICAgID8gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YVVz
aW5nQmluYXJ5RW5jb2RpbmcobV9wYWdlLmdldCgpKQogICAgICAgICA6IE1IVE1MQXJjaGl2ZTo6
Z2VuZXJhdGVNSFRNTERhdGEobV9wYWdlLmdldCgpKTsKIAotICAgIC8vIEZJWE1FOiBVc2UgU2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZS4KLSAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVy
ZW5jZTsKICAgICBpZiAoYnVmZmVyKQogICAgICAgICBkYXRhUmVmZXJlbmNlID0gSVBDOjpEYXRh
UmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZlci0+ZGF0YSgp
KSwgYnVmZmVyLT5zaXplKCkpOworCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
YXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwogfQogI2VuZGlmCkBAIC0y
NDg2LDE3ICsyNDg5LDIwIEBAIHN0YXRpYyBGcmFtZSogZnJhbWVXaXRoU2VsZWN0aW9uKFBhZ2Uq
IHBhZ2UpCiAKIHZvaWQgV2ViUGFnZTo6Z2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YSh1aW50
NjRfdCBjYWxsYmFja0lEKQogeworICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNl
OworCiAjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IGFy
Y2hpdmU7CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKLSAgICBpZiAoRnJhbWUqIGZy
YW1lID0gZnJhbWVXaXRoU2VsZWN0aW9uKG1fcGFnZS5nZXQoKSkpCi0gICAgICAgIGRhdGEgPSBM
ZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKGZyYW1lKS0+cmF3RGF0YVJlcHJl
c2VudGF0aW9uKCk7Ci0jZW5kaWYKIAotICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJl
bmNlOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmIChkYXRhKQorICAgIEZyYW1lKiBmcmFt
ZSA9IGZyYW1lV2l0aFNlbGVjdGlvbihtX3BhZ2UuZ2V0KCkpOworICAgIGlmIChmcmFtZSkgewor
ICAgICAgICBhcmNoaXZlID0gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlRnJvbVNlbGVjdGlvbihm
cmFtZSk7CisgICAgICAgIGRhdGEgPSBhcmNoaXZlLT5yYXdEYXRhUmVwcmVzZW50YXRpb24oKTsK
ICAgICAgICAgZGF0YVJlZmVyZW5jZSA9IElQQzo6RGF0YVJlZmVyZW5jZShDRkRhdGFHZXRCeXRl
UHRyKGRhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgoZGF0YS5nZXQoKSkpOworICAgIH0KICNl
bmRpZgorCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0
YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwogfQogCkBAIC0yNTE5LDIwICsyNTI1LDI0IEBAIHZv
aWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKIAogdm9pZCBXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IGJ1ZmZlcjsKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsK
KworICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gYnVmZmVyOworICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IHBkZlJlc291cmNlOwogICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNz
OjpzaGFyZWQoKS53ZWJGcmFtZShmcmFtZUlEKSkgewotICAgICAgICBpZiAoUGx1Z2luVmlldyog
cGx1Z2luVmlldyA9IHBsdWdpblZpZXdGb3JGcmFtZShmcmFtZS0+Y29yZUZyYW1lKCkpKQotICAg
ICAgICAgICAgYnVmZmVyID0gcGx1Z2luVmlldy0+bGl2ZVJlc291cmNlRGF0YSgpOwotICAgICAg
ICBpZiAoIWJ1ZmZlcikgewotICAgICAgICAgICAgaWYgKERvY3VtZW50TG9hZGVyKiBsb2FkZXIg
PSBmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCi0gICAgICAg
ICAgICAgICAgYnVmZmVyID0gbG9hZGVyLT5tYWluUmVzb3VyY2VEYXRhKCk7CisgICAgICAgIGlm
IChQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKGZyYW1lLT5jb3Jl
RnJhbWUoKSkpIHsKKyAgICAgICAgICAgIGlmICgocGRmUmVzb3VyY2UgPSBwbHVnaW5WaWV3LT5s
aXZlUmVzb3VyY2VEYXRhKCkpKQorICAgICAgICAgICAgICAgIGRhdGFSZWZlcmVuY2UgPSBJUEM6
OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocGRmUmVzb3Vy
Y2UtPmRhdGEoKSksIHBkZlJlc291cmNlLT5zaXplKCkpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGRhdGFSZWZlcmVuY2UuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciA9IGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKSkgeworICAgICAgICAgICAgICAgIGlmICgoYnVmZmVyID0gbG9hZGVyLT5tYWluUmVzb3Vy
Y2VEYXRhKCkpKQorICAgICAgICAgICAgICAgICAgICBkYXRhUmVmZXJlbmNlID0gSVBDOjpEYXRh
UmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGJ1ZmZlci0+ZGF0YSgp
KSwgYnVmZmVyLT5zaXplKCkpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCi0g
ICAgLy8gRklYTUU6IFVzZSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLgotICAgIElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwotICAgIGlmIChidWZmZXIpCi0gICAgICAgIGRhdGFS
ZWZlcmVuY2UgPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90Kj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPnNpemUoKSk7CiAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkp
OwogfQogCkBAIC0yNTUxLDM4ICsyNTYxLDM4IEBAIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gcmVzb3VyY2VEYXRhRm9yRnJhbWUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHJlCiAK
IHZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxTdHJpbmcsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7
CisgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CisgICAgVVJMIHJlc291cmNl
VVJMKFVSTCgpLCByZXNvdXJjZVVSTFN0cmluZyk7CisKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVy
PiBidWZmZXI7CiAgICAgaWYgKFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgp
LndlYkZyYW1lKGZyYW1lSUQpKSB7Ci0gICAgICAgIFVSTCByZXNvdXJjZVVSTChVUkwoKSwgcmVz
b3VyY2VVUkxTdHJpbmcpOwogICAgICAgICBidWZmZXIgPSByZXNvdXJjZURhdGFGb3JGcmFtZShm
cmFtZS0+Y29yZUZyYW1lKCksIHJlc291cmNlVVJMKTsKICAgICAgICAgaWYgKCFidWZmZXIpIHsK
ICAgICAgICAgICAgIC8vIFRyeSB0byBnZXQgdGhlIHJlc291cmNlIGRhdGEgZnJvbSB0aGUgY2Fj
aGUuCiAgICAgICAgICAgICBidWZmZXIgPSBjYWNoZWRSZXNwb25zZURhdGFGb3JVUkwocmVzb3Vy
Y2VVUkwpOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKGJ1ZmZlcikKKyAgICAgICAgICAgIGRh
dGFSZWZlcmVuY2UgPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPnNpemUoKSk7CiAgICAgfQogCi0gICAg
Ly8gRklYTUU6IFVzZSBTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLgotICAgIElQQzo6RGF0YVJl
ZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwotICAgIGlmIChidWZmZXIpCi0gICAgICAgIGRhdGFSZWZl
cmVuY2UgPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90
Kj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPnNpemUoKSk7CiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwog
fQogCiB2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CisgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFSZWZl
cmVuY2U7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBk
YXRhOwotICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJG
cmFtZShmcmFtZUlEKSkKLSAgICAgICAgZGF0YSA9IGZyYW1lLT53ZWJBcmNoaXZlRGF0YShudWxs
cHRyLCBudWxscHRyKTsKKyAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2hh
cmVkKCkud2ViRnJhbWUoZnJhbWVJRCkpIHsKKyAgICAgICAgaWYgKChkYXRhID0gZnJhbWUtPndl
YkFyY2hpdmVEYXRhKDAsIDApKSkKKyAgICAgICAgICAgIGRhdGFSZWZlcmVuY2UgPSBJUEM6OkRh
dGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVuZ3Ro
KGRhdGEuZ2V0KCkpKTsKKyAgICB9CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsK
ICNlbmRpZgogCi0gICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgaWYgKGRhdGEpCi0gICAgICAgIGRhdGFSZWZlcmVuY2UgPSBJUEM6
OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihkYXRhLmdldCgpKSwgQ0ZEYXRhR2V0TGVu
Z3RoKGRhdGEuZ2V0KCkpKTsKLSNlbmRpZgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGNhbGxiYWNrSUQpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmlu
ZGV4IGNkODIzMDUzM2E1YzczMGYzNjhkZDgwMjgyZGRkZWQ2Mzc5MGIzOGIuLjc1NTcxY2I5YTYx
NTE1MjQyMWI0ZmRlZGIzMjA5ZjNhYTc1NGYzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTUxLDcgKzUxLDYgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvQ2hyb21lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ROUy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9FbGVtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0VsZW1lbnRBbmNlc3Rv
ckl0ZXJhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GbG9hdFF1YWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+
CkBAIC04Miw2ICs4MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckltYWdlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1JlbmRlclRoZW1lSU9TLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZp
ZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4KQEAgLTE4NDIsMTEgKzE4NDIsMTAgQEAgdm9p
ZCBXZWJQYWdlOjpnZXRBdXRvY29ycmVjdGlvbkNvbnRleHQoU3RyaW5nJiBjb250ZXh0QmVmb3Jl
LCBTdHJpbmcmIG1hcmtlZFRleHQKIAogc3RhdGljIEVsZW1lbnQqIGNvbnRhaW5pbmdMaW5rRWxl
bWVudChFbGVtZW50KiBlbGVtZW50KQogewotICAgIGZvciAoYXV0byYgY3VycmVudEVsZW1lbnQg
OiBlbGVtZW50TGluZWFnZShlbGVtZW50KSkgewotICAgICAgICBpZiAoY3VycmVudEVsZW1lbnQu
aXNMaW5rKCkpCi0gICAgICAgICAgICByZXR1cm4gJmN1cnJlbnRFbGVtZW50OwotICAgIH0KLSAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBmb3IgKEVsZW1lbnQqIGN1cnJlbnRFbGVtZW50ID0gZWxl
bWVudDsgY3VycmVudEVsZW1lbnQ7IGN1cnJlbnRFbGVtZW50ID0gY3VycmVudEVsZW1lbnQtPnBh
cmVudEVsZW1lbnQoKSkKKyAgICAgICAgaWYgKGN1cnJlbnRFbGVtZW50LT5pc0xpbmsoKSkKKyAg
ICAgICAgICAgIHJldHVybiBjdXJyZW50RWxlbWVudDsKKyAgICByZXR1cm4gMDsKIH0KIAogdm9p
ZCBXZWJQYWdlOjpnZXRQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludFBvaW50JiBwb2ludCwg
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIGluZm8pCkBAIC0xOTUwLDc3ICsxOTQ5
LDczIEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybUFjdGlvbk9uRWxlbWVudCh1aW50MzJfdCBhY3Rp
b24pCiAgICAgaWYgKCFpczxIVE1MRWxlbWVudD4obV9pbnRlcmFjdGlvbk5vZGUuZ2V0KCkpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBIVE1MRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEhU
TUxFbGVtZW50PigqbV9pbnRlcmFjdGlvbk5vZGUpOwotICAgIGlmICghZWxlbWVudC5yZW5kZXJl
cigpKQorICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG1f
aW50ZXJhY3Rpb25Ob2RlLmdldCgpKTsKKyAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChzdGF0aWNfY2FzdDxTaGVldEFjdGlvbj4oYWN0aW9u
KSA9PSBTaGVldEFjdGlvbjo6Q29weSkgewotICAgICAgICBpZiAoaXM8UmVuZGVySW1hZ2U+KCpl
bGVtZW50LnJlbmRlcmVyKCkpKSB7Ci0gICAgICAgICAgICBFbGVtZW50KiBsaW5rRWxlbWVudCA9
IGNvbnRhaW5pbmdMaW5rRWxlbWVudCgmZWxlbWVudCk7CisgICAgICAgIGlmIChpczxSZW5kZXJJ
bWFnZT4oKmVsZW1lbnQtPnJlbmRlcmVyKCkpKSB7CisgICAgICAgICAgICBFbGVtZW50KiBsaW5r
RWxlbWVudCA9IGNvbnRhaW5pbmdMaW5rRWxlbWVudChlbGVtZW50KTsKKyAgICAgICAgCiAgICAg
ICAgICAgICBpZiAoIWxpbmtFbGVtZW50KQotICAgICAgICAgICAgICAgIG1faW50ZXJhY3Rpb25O
b2RlLT5kb2N1bWVudCgpLmZyYW1lKCktPmVkaXRvcigpLndyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQo
KlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLCBlbGVtZW50LCBkb3duY2FzdDxS
ZW5kZXJJbWFnZT4oKmVsZW1lbnQucmVuZGVyZXIoKSkuY2FjaGVkSW1hZ2UoKS0+dXJsKCksIFN0
cmluZygpKTsKKyAgICAgICAgICAgICAgICBtX2ludGVyYWN0aW9uTm9kZS0+ZG9jdW1lbnQoKS5m
cmFtZSgpLT5lZGl0b3IoKS53cml0ZUltYWdlVG9QYXN0ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JDb3B5QW5kUGFzdGUoKSwgKmVsZW1lbnQsIGRvd25jYXN0PFJlbmRlckltYWdlPigqZWxl
bWVudC0+cmVuZGVyZXIoKSkuY2FjaGVkSW1hZ2UoKS0+dXJsKCksIFN0cmluZygpKTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBtX2ludGVyYWN0aW9uTm9kZS0+ZG9jdW1lbnQo
KS5mcmFtZSgpLT5lZGl0b3IoKS5jb3B5VVJMKGxpbmtFbGVtZW50LT5kb2N1bWVudCgpLmNvbXBs
ZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhsaW5rRWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyKSkpLCBsaW5rRWxlbWVudC0+dGV4dENv
bnRlbnQoKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5pc0xpbmsoKSkgewotICAgICAg
ICAgICAgbV9pbnRlcmFjdGlvbk5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKS0+ZWRpdG9yKCkuY29w
eVVSTChlbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxp
bmdIVE1MU3BhY2VzKGVsZW1lbnQuZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRy
KSkpLCBlbGVtZW50LnRleHRDb250ZW50KCkpOworICAgICAgICAgICAgICAgIG1faW50ZXJhY3Rp
b25Ob2RlLT5kb2N1bWVudCgpLmZyYW1lKCktPmVkaXRvcigpLmNvcHlVUkwobGlua0VsZW1lbnQt
PmRvY3VtZW50KCkuY29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2Vz
KGxpbmtFbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0cikpKSwgbGlua0Vs
ZW1lbnQtPnRleHRDb250ZW50KCkpOworICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQtPmlzTGlu
aygpKSB7CisgICAgICAgICAgICBtX2ludGVyYWN0aW9uTm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgp
LT5lZGl0b3IoKS5jb3B5VVJMKGVsZW1lbnQtPmRvY3VtZW50KCkuY29tcGxldGVVUkwoc3RyaXBM
ZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFt
ZXM6OmhyZWZBdHRyKSkpLCBlbGVtZW50LT50ZXh0Q29udGVudCgpKTsKICAgICAgICAgfQogICAg
IH0gZWxzZSBpZiAoc3RhdGljX2Nhc3Q8U2hlZXRBY3Rpb24+KGFjdGlvbikgPT0gU2hlZXRBY3Rp
b246OlNhdmVJbWFnZSkgewotICAgICAgICBpZiAoIWlzPFJlbmRlckltYWdlPigqZWxlbWVudC5y
ZW5kZXJlcigpKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgQ2FjaGVkSW1hZ2UqIGNh
Y2hlZEltYWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCplbGVtZW50LnJlbmRlcmVyKCkpLmNh
Y2hlZEltYWdlKCk7Ci0gICAgICAgIGlmICghY2FjaGVkSW1hZ2UpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIFNoYXJlZEJ1ZmZlciogYnVmZmVyID0gY2FjaGVkSW1hZ2UtPnJlc291cmNl
QnVmZmVyKCk7Ci0gICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICBpZiAoIWlzPFJlbmRlcklt
YWdlPigqZWxlbWVudC0+cmVuZGVyZXIoKSkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IHVpbnQ2NF90IGJ1ZmZlclNpemUgPSBidWZmZXItPnNpemUoKTsKLSAgICAgICAgUmVmUHRyPFNo
YXJlZE1lbW9yeT4gc2hhcmVkTWVtb3J5QnVmZmVyID0gU2hhcmVkTWVtb3J5OjpjcmVhdGUoYnVm
ZmVyU2l6ZSk7Ci0gICAgICAgIG1lbWNweShzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSwgYnVm
ZmVyLT5kYXRhKCksIGJ1ZmZlclNpemUpOwotICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBo
YW5kbGU7Ci0gICAgICAgIHNoYXJlZE1lbW9yeUJ1ZmZlci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwg
U2hhcmVkTWVtb3J5OjpSZWFkT25seSk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2F2ZUltYWdlVG9MaWJyYXJ5KGhhbmRsZSwgYnVmZmVyU2l6ZSkpOworICAgICAgICBp
ZiAoQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCplbGVt
ZW50LT5yZW5kZXJlcigpKS5jYWNoZWRJbWFnZSgpKSB7CisgICAgICAgICAgICBTaGFyZWRNZW1v
cnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZm
ZXIgPSBjYWNoZWRJbWFnZS0+cmVzb3VyY2VCdWZmZXIoKS0+c2hhcmVkQnVmZmVyKCk7CisgICAg
ICAgICAgICBpZiAoYnVmZmVyKSB7CisgICAgICAgICAgICAgICAgdWludDY0X3QgYnVmZmVyU2l6
ZSA9IGJ1ZmZlci0+c2l6ZSgpOworICAgICAgICAgICAgICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+
IHNoYXJlZE1lbW9yeUJ1ZmZlciA9IFNoYXJlZE1lbW9yeTo6Y3JlYXRlKGJ1ZmZlclNpemUpOwor
ICAgICAgICAgICAgICAgIG1lbWNweShzaGFyZWRNZW1vcnlCdWZmZXItPmRhdGEoKSwgYnVmZmVy
LT5kYXRhKCksIGJ1ZmZlclNpemUpOworICAgICAgICAgICAgICAgIHNoYXJlZE1lbW9yeUJ1ZmZl
ci0+Y3JlYXRlSGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisgICAgICAg
ICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTYXZlSW1hZ2VUb0xpYnJhcnko
aGFuZGxlLCBidWZmZXJTaXplKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0Fzc2lzdGFibGVFbGVtZW50KEVsZW1lbnQmIG5vZGUp
CitzdGF0aWMgaW5saW5lIGJvb2wgaXNBc3Npc3RhYmxlTm9kZShOb2RlKiBub2RlKQogewotICAg
IGlmIChpczxIVE1MU2VsZWN0RWxlbWVudD4obm9kZSkpCisgICAgaWYgKGlzPEhUTUxTZWxlY3RF
bGVtZW50Pigqbm9kZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChpczxIVE1MVGV4
dEFyZWFFbGVtZW50Pihub2RlKSkKLSAgICAgICAgcmV0dXJuICFkb3duY2FzdDxIVE1MVGV4dEFy
ZWFFbGVtZW50Pihub2RlKS5pc1JlYWRPbmx5Tm9kZSgpOwotICAgIGlmIChpczxIVE1MSW5wdXRF
bGVtZW50Pihub2RlKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVsZW1lbnQg
PSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlKTsKLSAgICAgICAgLy8gRklYTUU6IFRo
aXMgbGF1bmRyeSBsaXN0IG9mIHR5cGVzIGlzIG5vdCBhIGdvb2Qgd2F5IHRvIGZhY3RvciB0aGlz
LiBOZWVkIGEgc3VpdGFibGUgZnVuY3Rpb24gb24gSFRNTElucHV0RWxlbWVudCBpdHNlbGYuCi0g
ICAgICAgIHJldHVybiAhaW5wdXRFbGVtZW50LmlzUmVhZE9ubHlOb2RlKCkgJiYgKGlucHV0RWxl
bWVudC5pc1RleHRGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc0RhdGVGaWVsZCgpIHx8IGlucHV0
RWxlbWVudC5pc0RhdGVUaW1lTG9jYWxGaWVsZCgpIHx8IGlucHV0RWxlbWVudC5pc01vbnRoRmll
bGQoKSB8fCBpbnB1dEVsZW1lbnQuaXNUaW1lRmllbGQoKSk7CisgICAgaWYgKGlzPEhUTUxUZXh0
QXJlYUVsZW1lbnQ+KCpub2RlKSkKKyAgICAgICAgcmV0dXJuICFkb3duY2FzdDxIVE1MVGV4dEFy
ZWFFbGVtZW50Pigqbm9kZSkuaXNSZWFkT25seU5vZGUoKTsKKyAgICBpZiAoaXM8SFRNTElucHV0
RWxlbWVudD4oKm5vZGUpKSB7CisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQgPSBk
b3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSk7CisgICAgICAgIHJldHVybiAhZWxlbWVu
dC5pc1JlYWRPbmx5Tm9kZSgpICYmIChlbGVtZW50LmlzVGV4dEZpZWxkKCkgfHwgZWxlbWVudC5p
c0RhdGVGaWVsZCgpIHx8IGVsZW1lbnQuaXNEYXRlVGltZUxvY2FsRmllbGQoKSB8fCBlbGVtZW50
LmlzTW9udGhGaWVsZCgpIHx8IGVsZW1lbnQuaXNUaW1lRmllbGQoKSk7CiAgICAgfQotICAgIHJl
dHVybiBub2RlLmlzQ29udGVudEVkaXRhYmxlKCk7CisKKyAgICByZXR1cm4gbm9kZS0+aXNDb250
ZW50RWRpdGFibGUoKTsKIH0KIAotc3RhdGljIGlubGluZSBFbGVtZW50KiBuZXh0QXNzaXN0YWJs
ZUVsZW1lbnQoTm9kZSogc3RhcnROb2RlLCBQYWdlJiBwYWdlLCBib29sIGlzRm9yd2FyZCkKK3N0
YXRpYyBpbmxpbmUgRWxlbWVudCogbmV4dEZvY3VzYWJsZUVsZW1lbnQoTm9kZSogc3RhcnROb2Rl
LCBQYWdlKiBwYWdlLCBib29sIGlzRm9yd2FyZCkKIHsKLSAgICBpZiAoIWlzPEVsZW1lbnQ+KHN0
YXJ0Tm9kZSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgUmVmUHRyPEtleWJvYXJk
RXZlbnQ+IGtleSA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZSgpOwogCiAgICAgRWxlbWVudCogbmV4
dEVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50PihzdGFydE5vZGUpOwogICAgIGRvIHsKLSAgICAg
ICAgbmV4dEVsZW1lbnQgPSBpc0ZvcndhcmQKLSAgICAgICAgICAgID8gcGFnZS5mb2N1c0NvbnRy
b2xsZXIoKS5uZXh0Rm9jdXNhYmxlRWxlbWVudChGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNO
YXZpZ2F0aW9uU2NvcGVPZigmbmV4dEVsZW1lbnQtPmRvY3VtZW50KCkpLCBuZXh0RWxlbWVudCwg
a2V5LmdldCgpKQotICAgICAgICAgICAgOiBwYWdlLmZvY3VzQ29udHJvbGxlcigpLnByZXZpb3Vz
Rm9jdXNhYmxlRWxlbWVudChGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9jdXNOYXZpZ2F0aW9uU2Nv
cGVPZigmbmV4dEVsZW1lbnQtPmRvY3VtZW50KCkpLCBuZXh0RWxlbWVudCwga2V5LmdldCgpKTsK
LSAgICB9IHdoaWxlIChuZXh0RWxlbWVudCAmJiAhaXNBc3Npc3RhYmxlRWxlbWVudCgqbmV4dEVs
ZW1lbnQpKTsKKyAgICAgICAgbmV4dEVsZW1lbnQgPSBpc0ZvcndhcmQgPyBwYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS5uZXh0Rm9jdXNhYmxlRWxlbWVudChGb2N1c05hdmlnYXRpb25TY29wZTo6Zm9j
dXNOYXZpZ2F0aW9uU2NvcGVPZigmbmV4dEVsZW1lbnQtPmRvY3VtZW50KCkpLCBuZXh0RWxlbWVu
dCwga2V5LmdldCgpKQorICAgICAgICAgICAgOiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5wcmV2
aW91c0ZvY3VzYWJsZUVsZW1lbnQoRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OmZvY3VzTmF2aWdhdGlv
blNjb3BlT2YoJm5leHRFbGVtZW50LT5kb2N1bWVudCgpKSwgbmV4dEVsZW1lbnQsIGtleS5nZXQo
KSk7CisgICAgfSB3aGlsZSAobmV4dEVsZW1lbnQgJiYgIWlzQXNzaXN0YWJsZU5vZGUobmV4dEVs
ZW1lbnQpKTsKIAogICAgIHJldHVybiBuZXh0RWxlbWVudDsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIGhhc0Fzc2lzdGFibGVFbGVtZW50KE5vZGUqIHN0YXJ0Tm9kZSwgUGFnZSYgcGFnZSwgYm9v
bCBpc0ZvcndhcmQpCitzdGF0aWMgaW5saW5lIGJvb2wgaGFzRm9jdXNhYmxlRWxlbWVudChOb2Rl
KiBzdGFydE5vZGUsIFBhZ2UqIHBhZ2UsIGJvb2wgaXNGb3J3YXJkKQogewotICAgIHJldHVybiBu
ZXh0QXNzaXN0YWJsZUVsZW1lbnQoc3RhcnROb2RlLCBwYWdlLCBpc0ZvcndhcmQpOworICAgIHJl
dHVybiBuZXh0Rm9jdXNhYmxlRWxlbWVudChzdGFydE5vZGUsIHBhZ2UsIGlzRm9yd2FyZCkgIT0g
bmlsOwogfQogCiB2b2lkIFdlYlBhZ2U6OmZvY3VzTmV4dEFzc2lzdGVkTm9kZShib29sIGlzRm9y
d2FyZCkKIHsKLSAgICBFbGVtZW50KiBuZXh0RWxlbWVudCA9IG5leHRBc3Npc3RhYmxlRWxlbWVu
dChtX2Fzc2lzdGVkTm9kZS5nZXQoKSwgKm1fcGFnZSwgaXNGb3J3YXJkKTsKKyAgICBFbGVtZW50
KiBuZXh0RWxlbWVudCA9IG5leHRGb2N1c2FibGVFbGVtZW50KG1fYXNzaXN0ZWROb2RlLmdldCgp
LCBtX3BhZ2UuZ2V0KCksIGlzRm9yd2FyZCk7CiAgICAgbV91c2VySXNJbnRlcmFjdGluZyA9IHRy
dWU7CiAgICAgaWYgKG5leHRFbGVtZW50KQogICAgICAgICBuZXh0RWxlbWVudC0+Zm9jdXMoKTsK
QEAgLTIwNjEsOCArMjA1Niw4IEBAIHZvaWQgV2ViUGFnZTo6Z2V0QXNzaXN0ZWROb2RlSW5mb3Jt
YXRpb24oQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mIGluZm9ybWF0aW9uKQogICAgIGluZm9ybWF0
aW9uLm1pbmltdW1TY2FsZUZhY3RvciA9IG1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKTsKICAgICBp
bmZvcm1hdGlvbi5tYXhpbXVtU2NhbGVGYWN0b3IgPSBtYXhpbXVtUGFnZVNjYWxlRmFjdG9yKCk7
CiAgICAgaW5mb3JtYXRpb24uYWxsb3dzVXNlclNjYWxpbmcgPSBtX3ZpZXdwb3J0Q29uZmlndXJh
dGlvbi5hbGxvd3NVc2VyU2NhbGluZygpOwotICAgIGluZm9ybWF0aW9uLmhhc05leHROb2RlID0g
aGFzQXNzaXN0YWJsZUVsZW1lbnQobV9hc3Npc3RlZE5vZGUuZ2V0KCksICptX3BhZ2UsIHRydWUp
OwotICAgIGluZm9ybWF0aW9uLmhhc1ByZXZpb3VzTm9kZSA9IGhhc0Fzc2lzdGFibGVFbGVtZW50
KG1fYXNzaXN0ZWROb2RlLmdldCgpLCAqbV9wYWdlLCBmYWxzZSk7CisgICAgaW5mb3JtYXRpb24u
aGFzTmV4dE5vZGUgPSBoYXNGb2N1c2FibGVFbGVtZW50KG1fYXNzaXN0ZWROb2RlLmdldCgpLCBt
X3BhZ2UuZ2V0KCksIHRydWUpOworICAgIGluZm9ybWF0aW9uLmhhc1ByZXZpb3VzTm9kZSA9IGhh
c0ZvY3VzYWJsZUVsZW1lbnQobV9hc3Npc3RlZE5vZGUuZ2V0KCksIG1fcGFnZS5nZXQoKSwgZmFs
c2UpOwogCiAgICAgaWYgKGlzPEhUTUxTZWxlY3RFbGVtZW50PigqbV9hc3Npc3RlZE5vZGUpKSB7
CiAgICAgICAgIEhUTUxTZWxlY3RFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8SFRNTFNlbGVj
dEVsZW1lbnQ+KCptX2Fzc2lzdGVkTm9kZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>