<?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>171624</bug_id>
          
          <creation_ts>2017-05-03 15:27:13 -0700</creation_ts>
          <short_desc>Rename webProcessDidCrashWithReason callback to webProcessDidTerminate and stop calling webProcessDidCrash for client terminations</short_desc>
          <delta_ts>2017-05-05 11:11:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit 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>171565</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1304309</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-03 15:27:13 -0700</bug_when>
    <thetext>WebPageProxy::processDidCrash() is called twice in case of termination due to resource limits after r216129.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304467</commentid>
    <comment_count>1</comment_count>
      <attachid>309001</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-03 19:03:40 -0700</bug_when>
    <thetext>Created attachment 309001
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304470</commentid>
    <comment_count>2</comment_count>
      <attachid>309002</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-03 19:16:23 -0700</bug_when>
    <thetext>Created attachment 309002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304987</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-04 20:51:47 -0700</bug_when>
    <thetext>ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305143</commentid>
    <comment_count>4</comment_count>
      <attachid>309002</attachid>
    <who name="">mitz</who>
    <bug_when>2017-05-05 09:20:38 -0700</bug_when>
    <thetext>Comment on attachment 309002
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=309002&amp;action=review

&gt; Source/WebKit2/ChangeLog:3
&gt; +        Rename webProcessDidCrashWithReason delegate to webProcessDidTerminate and stop calling webProcessDidCrash for client terminations

“delegate” is a term normally used in Cocoa API. C APIs usually call these things “clients” and “client callbacks”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305161</commentid>
    <comment_count>5</comment_count>
      <attachid>309180</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-05 10:00:22 -0700</bug_when>
    <thetext>Created attachment 309180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305208</commentid>
    <comment_count>6</comment_count>
      <attachid>309180</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-05 11:11:50 -0700</bug_when>
    <thetext>Comment on attachment 309180
Patch

Clearing flags on attachment: 309180

Committed r216249: &lt;http://trac.webkit.org/changeset/216249&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305209</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-05 11:11:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309001</attachid>
            <date>2017-05-03 19:03:40 -0700</date>
            <delta_ts>2017-05-03 19:16:21 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>171624_webProcessDidTerminate_wip.patch</filename>
            <type>text/plain</type>
            <size>34841</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzVGVybWluYXRpb25SZWFzb24uaApzaW1pbGFy
aXR5IGluZGV4IDkwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0Ny
YXNoUmVhc29uLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzVGVybWlu
YXRpb25SZWFzb24uaAppbmRleCAzNDE3ZjcwOGYzOS4uNmExZjQ5MmVjNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgKQEAgLTI3LDExICsyNywx
MSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotZW51bSBjbGFzcyBQcm9jZXNzQ3Jhc2hSZWFz
b24gewotICAgIFRlcm1pbmF0aW9uRHVlVG9NZW1vcnlVc2FnZSwKLSAgICBUZXJtaW5hdGlvbkR1
ZVRvQ1BVVXNhZ2UsCi0gICAgVGVybWluYXRpb25SZXF1ZXN0ZWRCeUNsaWVudCwKLSAgICBPdGhl
cgorZW51bSBjbGFzcyBQcm9jZXNzVGVybWluYXRpb25SZWFzb24geworICAgIEV4Y2VlZGVkTWVt
b3J5TGltaXQsCisgICAgRXhjZWVkZWRDUFVMaW1pdCwKKyAgICBSZXF1ZXN0ZWRCeUNsaWVudCwK
KyAgICBDcmFzaAogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0FQSU5hdmlnYXRpb25DbGllbnQuaAppbmRleCA4YTNlMWE3ZGE5Ni4uZTQ1OTQ4N2NjODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVu
dC5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAi
UGx1Z2luTW9kdWxlSW5mby5oIgotI2luY2x1ZGUgIlByb2Nlc3NDcmFzaFJlYXNvbi5oIgorI2lu
Y2x1ZGUgIlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIgogI2luY2x1ZGUgIlNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViS2l0OjpX
ZWJQYWdlUHJveHkmLCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkqKSB7IH0K
IAogICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbiBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhp
cyBjbGllbnQuCi0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaChXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6UHJvY2Vzc0NyYXNoUmVhc29uKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcHJvY2Vzc0RpZFRlcm1pbmF0ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJl
Y29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggZDk0
YTllOWQyZGQuLjFiNjZhYjM2NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiSFRUUENvb2tpZUFjY2Vw
dFBvbGljeS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlw
ZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIKLSNpbmNsdWRlICJQcm9jZXNzQ3Jh
c2hSZWFzb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCIKICNpbmNs
dWRlICJSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCIKICNpbmNsdWRlICJXS0J1bmRsZUhpdFRlc3RS
ZXN1bHQuaCIKICNpbmNsdWRlICJXS0NvbnRleHQuaCIKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNs
dWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlICJXS1ByZWZlcmVuY2VzUmVmLmgiCiAjaW5jbHVkZSAi
V0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCIKLSNpbmNsdWRlICJXS1Byb2Nlc3NDcmFzaFJlYXNv
bi5oIgorI2luY2x1ZGUgIldLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAi
V0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIgogI2luY2x1ZGUgIldLUmVzb3VyY2VDYWNoZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKQEAgLTIzNSwyMCArMjM1LDIwIEBA
IGlubGluZSBXS0NhY2hlTW9kZWwgdG9BUEkoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHJl
dHVybiBrV0tDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7CiB9CiAKLWlubGluZSBXS1Byb2Nlc3ND
cmFzaFJlYXNvbiB0b0FQSShQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29uKQoraW5saW5lIFdLUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHRvQVBJKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFz
b24pCiB7CiAgICAgc3dpdGNoIChyZWFzb24pIHsKLSAgICBjYXNlIFByb2Nlc3NDcmFzaFJlYXNv
bjo6VGVybWluYXRpb25EdWVUb01lbW9yeVVzYWdlOgotICAgICAgICByZXR1cm4ga1dLUHJvY2Vz
c0NyYXNoUmVhc29uVGVybWluYXRpb25EdWVUb01lbW9yeVVzYWdlOwotICAgIGNhc2UgUHJvY2Vz
c0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvbkR1ZVRvQ1BVVXNhZ2U6Ci0gICAgICAgIHJldHVybiBr
V0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvbkR1ZVRvQ1BVVXNhZ2U7Ci0gICAgY2FzZSBQ
cm9jZXNzQ3Jhc2hSZWFzb246OlRlcm1pbmF0aW9uUmVxdWVzdGVkQnlDbGllbnQ6Ci0gICAgICAg
IHJldHVybiBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvblJlcXVlc3RlZEJ5Q2xpZW50
OwotICAgIGNhc2UgUHJvY2Vzc0NyYXNoUmVhc29uOjpPdGhlcjoKLSAgICAgICAgcmV0dXJuIGtX
S1Byb2Nlc3NDcmFzaFJlYXNvbk90aGVyOworICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uOjpFeGNlZWRlZE1lbW9yeUxpbWl0OgorICAgICAgICByZXR1cm4ga1dLUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uRXhjZWVkZWRNZW1vcnlMaW1pdDsKKyAgICBjYXNlIFByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbjo6RXhjZWVkZWRDUFVMaW1pdDoKKyAgICAgICAgcmV0dXJuIGtXS1Byb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbkV4Y2VlZGVkQ1BVTGltaXQ7CisgICAgY2FzZSBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50OgorICAgICAgICByZXR1cm4ga1dLUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uUmVxdWVzdGVkQnlDbGllbnQ7CisgICAgY2FzZSBQcm9jZXNzVGVy
bWluYXRpb25SZWFzb246OkNyYXNoOgorICAgICAgICByZXR1cm4ga1dLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uQ3Jhc2g7CiAgICAgfQogCi0gICAgcmV0dXJuIGtXS1Byb2Nlc3NDcmFzaFJlYXNv
bk90aGVyOworICAgIHJldHVybiBrV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb25DcmFzaDsKIH0K
IAogaW5saW5lIEZvbnRTbW9vdGhpbmdMZXZlbCB0b0ZvbnRTbW9vdGhpbmdMZXZlbChXS0ZvbnRT
bW9vdGhpbmdMZXZlbCB3a0xldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAppbmRleCA0YWU3NTJiOGFjYS4uNjNjNDk4MDcyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBXS1Bh
Z2VTZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKFdLUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1Jl
ZiBlbmNvZGluZ05hbWUKIAogdm9pZCBXS1BhZ2VUZXJtaW5hdGUoV0tQYWdlUmVmIHBhZ2VSZWYp
CiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT50ZXJtaW5hdGVQcm9jZXNzKCk7CisgICAgdG9JbXBs
KHBhZ2VSZWYpLT5wcm9jZXNzKCkucmVxdWVzdFRlcm1pbmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlv
blJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQpOwogfQogCiBXS1N0cmluZ1JlZiBXS1BhZ2VHZXRT
ZXNzaW9uSGlzdG9yeVVSTFZhbHVlVHlwZSgpCkBAIC0yNDAwLDEzICsyNDAwLDE1IEBAIHZvaWQg
V0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdL
UGFnZU5hdmlnYXRpb25DbGllCiAgICAgICAgICAgICBtX2NsaWVudC5kaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UodG9BUEkoJnBhZ2UpLCB0b0FQSShhdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2
b2lkIHByb2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6UHJvY2Vzc0Ny
YXNoUmVhc29uIHJlYXNvbikgb3ZlcnJpZGUKKyAgICAgICAgdm9pZCBwcm9jZXNzRGlkVGVybWlu
YXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpQcm9jZXNzVGVybWluYXRpb25SZWFzb24g
cmVhc29uKSBvdmVycmlkZQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAobV9jbGllbnQud2Vi
UHJvY2Vzc0RpZENyYXNoKQotICAgICAgICAgICAgICAgIG1fY2xpZW50LndlYlByb2Nlc3NEaWRD
cmFzaCh0b0FQSSgmcGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAg
ICBpZiAobV9jbGllbnQud2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZSkgeworICAgICAgICAgICAgICAg
IG1fY2xpZW50LndlYlByb2Nlc3NEaWRUZXJtaW5hdGUodG9BUEkoJnBhZ2UpLCB0b0FQSShyZWFz
b24pLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKG1fY2xpZW50LndlYlByb2Nlc3NEaWRD
cmFzaFdpdGhSZWFzb24pCi0gICAgICAgICAgICAgICAgbV9jbGllbnQud2ViUHJvY2Vzc0RpZENy
YXNoV2l0aFJlYXNvbih0b0FQSSgmcGFnZSksIHRvQVBJKHJlYXNvbiksIG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7CisgICAgICAgICAgICBpZiAobV9jbGllbnQud2ViUHJvY2Vzc0RpZENyYXNo
ICYmIHJlYXNvbiAhPSBXZWJLaXQ6OlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVk
QnlDbGllbnQpCisgICAgICAgICAgICAgICAgbV9jbGllbnQud2ViUHJvY2Vzc0RpZENyYXNoKHRv
QVBJKCZwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCiAgICAg
ICAgIFJlZlB0cjxBUEk6OkRhdGE+IHdlYkNyeXB0b01hc3RlcktleShXZWJQYWdlUHJveHkmIHBh
Z2UpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaAppbmRleCBkNzFkNGViNWM0YS4uZWQxNTQ4ZmY4NWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYXZpZ2F0
aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5h
dmlnYXRpb25DbGllbnQuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1Bh
Z2VMb2FkVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudHMuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQbHVnaW5Mb2FkUG9saWN5Lmg+Ci0jaW5jbHVk
ZSA8V2ViS2l0L1dLUHJvY2Vzc0NyYXNoUmVhc29uLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJD
IiB7CkBAIC02Niw3ICs2Niw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25EaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYWxsYmFjaykoV0tQYWdlCiAKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkQ3Jhc2hDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi10eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VOYXZpZ2F0aW9uV2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbkNhbGxiYWNrKShXS1BhZ2VS
ZWYgcGFnZSwgV0tQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29uLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkVGVybWlu
YXRlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiBy
ZWFzb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiB0eXBlZGVmIFdLRGF0YVJlZiAoKldL
UGFnZU5hdmlnYXRpb25Db3B5V2ViQ3J5cHRvTWFzdGVyS2V5Q2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICAKQEAgLTE0MCw3ICsxNDAsNyBAQCB0
eXBlZGVmIHN0cnVjdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjEgewogICAgIFdLUGFnZU5hdmln
YXRpb25EaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90IGRpZFJlbW92ZU5hdmlnYXRp
b25HZXN0dXJlU25hcHNob3Q7CiAKICAgICAvLyBWZXJzaW9uIDEuCi0gICAgV0tQYWdlTmF2aWdh
dGlvbldlYlByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb25DYWxsYmFjayB3ZWJQcm9jZXNzRGlkQ3Jh
c2hXaXRoUmVhc29uOworICAgIFdLUGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkVGVybWluYXRl
Q2FsbGJhY2sgd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZTsKIH0gV0tQYWdlTmF2aWdhdGlvbkNsaWVu
dFYxOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1Byb2Nlc3NDcmFzaFJlYXNvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgKc2ltaWxhcml0eSBpbmRl
eCA4NiUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vz
c0NyYXNoUmVhc29uLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oCmluZGV4IGI0NzYyMDNmNDIwLi42MjBlODVhODZm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0Ny
YXNoUmVhc29uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uLmgKQEAgLTMyLDEyICszMiwxMiBAQCBleHRlcm4gIkMiIHsKICNl
bmRpZgogCiBlbnVtIHsKLSAgICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvbkR1ZVRv
TWVtb3J5VXNhZ2UgPSAwLAotICAgIGtXS1Byb2Nlc3NDcmFzaFJlYXNvblRlcm1pbmF0aW9uRHVl
VG9DUFVVc2FnZSwKLSAgICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvblJlcXVlc3Rl
ZEJ5Q2xpZW50LAotICAgIGtXS1Byb2Nlc3NDcmFzaFJlYXNvbk90aGVyLAorICAgIGtXS1Byb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbkV4Y2VlZGVkTWVtb3J5TGltaXQgPSAwLAorICAgIGtXS1Byb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbkV4Y2VlZGVkQ1BVTGltaXQsCisgICAga1dLUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uUmVxdWVzdGVkQnlDbGllbnQsCisgICAga1dLUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uQ3Jhc2gsCiB9OwotdHlwZWRlZiB1aW50MzJfdCBXS1Byb2Nlc3NDcmFzaFJlYXNvbjsK
K3R5cGVkZWYgdWludDMyX3QgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb247CiAKICNpZmRlZiBf
X2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCBiZDRiZjQyODZjOS4uMTk5YzM5N2NkMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zNzcyLDcgKzM3
NzIsNyBAQCAtIChXS05hdmlnYXRpb24gKilfcmVsb2FkRXhwaXJlZE9ubHkKIAogLSAodm9pZClf
a2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVzZXRTdGF0ZQogewotICAgIF9wYWdlLT50ZXJtaW5h
dGVQcm9jZXNzKCk7CisgICAgX3BhZ2UtPnByb2Nlc3MoKS5yZXF1ZXN0VGVybWluYXRpb24oV2Vi
S2l0OjpQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KTsKIH0KIAog
I2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUuaAppbmRleCAwYWQzNDc4MTFiOS4uN2E5YzNjNWIxOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKQEAgLTMy
LDcgKzMyLDcgQEAKICNpbXBvcnQgIkFQSUhpc3RvcnlDbGllbnQuaCIKICNpbXBvcnQgIkFQSU5h
dmlnYXRpb25DbGllbnQuaCIKICNpbXBvcnQgIlBhZ2VMb2FkU3RhdGUuaCIKLSNpbXBvcnQgIlBy
b2Nlc3NDcmFzaFJlYXNvbi5oIgorI2ltcG9ydCAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgi
CiAjaW1wb3J0ICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAK
ICAgICAgICAgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFdlYlBh
Z2VQcm94eSYsIFdlYlByb3RlY3Rpb25TcGFjZSopIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkmLCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5Kikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgcHJvY2Vzc0RpZENy
YXNoKFdlYlBhZ2VQcm94eSYsIFByb2Nlc3NDcmFzaFJlYXNvbikgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgcHJvY2Vzc0RpZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmLCBQcm9jZXNzVGVybWluYXRp
b25SZWFzb24pIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25z
aXZlKFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHByb2Nlc3NEaWRCZWNv
bWVVbnJlc3BvbnNpdmUoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IGE0NTk4Mjll
ZjEyLi4wMjdkYjUwZWY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC03MTAsNyArNzEwLDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShXZWJQYWcKICAgICBbc3RhdGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZT4+KG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSkgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUu
bV93ZWJWaWV3IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTp3cmFwcGVyKCphdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSldOwogfQogCi12b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6cHJvY2Vzc0RpZENyYXNoKFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJLaXQ6OlByb2Nlc3NDcmFzaFJlYXNvbikKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50Ojpwcm9jZXNzRGlkVGVybWluYXRlKFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdl
LCBXZWJLaXQ6OlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbikKIHsKICAgICBpZiAoIW1fbmF2aWdh
dGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViQ29udGVudFBy
b2Nlc3NEaWRUZXJtaW5hdGUgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoKQogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDg5MDA2YWJjOGEw
Li41ODk4MzAzNzhjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTI0MDQsMTYgKzI0MDQsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Q3VzdG9tVGV4
dEVuY29kaW5nTmFtZShjb25zdCBTdHJpbmcmIGVuY29kaW5nTmFtZSkKICAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoZW5jb2Rp
bmdOYW1lKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dGVybWluYXRlUHJv
Y2VzcygpCi17Ci0gICAgLy8gTk9URTogVGhpcyB1c2VzIGEgY2hlY2sgb2YgbV9pc1ZhbGlkIHJh
dGhlciB0aGFuIGNhbGxpbmcgaXNWYWxpZCgpIHNpbmNlCi0gICAgLy8gd2Ugd2FudCB0aGlzIHRv
IHJ1biBldmVuIGZvciBwYWdlcyBiZWluZyBjbG9zZWQgb3IgdGhhdCBhbHJlYWR5IGNsb3NlZC4K
LSAgICBpZiAoIW1faXNWYWxpZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wcm9jZXNzLT5y
ZXF1ZXN0VGVybWluYXRpb24oKTsKLX0KLQogU2Vzc2lvblN0YXRlIFdlYlBhZ2VQcm94eTo6c2Vz
c2lvblN0YXRlKGNvbnN0IHN0ZDo6ZnVuY3Rpb248Ym9vbCAoV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSYpPiYgZmlsdGVyKSBjb25zdAogewogICAgIFNlc3Npb25TdGF0ZSBzZXNzaW9uU3RhdGU7CkBA
IC01MjkyLDcgKzUyODIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvY2Vzc0lz
UmVzcG9uc2l2ZSgpCiAgICAgbV9wYWdlTG9hZFN0YXRlLmRpZENoYW5nZVByb2Nlc3NJc1Jlc3Bv
bnNpdmUoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaChQcm9jZXNz
Q3Jhc2hSZWFzb24gcmVhc29uKQordm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRUZXJtaW5h
dGUoUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAgICBBU1NFUlQobV9pc1Zh
bGlkKTsKIApAQCAtNTMxNSw4ICs1MzA1LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NE
aWRDcmFzaChQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29uKQogICAgIG5hdmlnYXRpb25TdGF0ZSgp
LmNsZWFyQWxsTmF2aWdhdGlvbnMoKTsKIAogICAgIGlmIChtX25hdmlnYXRpb25DbGllbnQpCi0g
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+cHJvY2Vzc0RpZENyYXNoKCp0aGlzLCByZWFzb24p
OwotICAgIGVsc2UKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlkVGVybWlu
YXRlKCp0aGlzLCByZWFzb24pOworICAgIGVsc2UgaWYgKHJlYXNvbiAhPSBQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KQogICAgICAgICBtX2xvYWRlckNsaWVudC0+
cHJvY2Vzc0RpZENyYXNoKCp0aGlzKTsKIAogICAgIGlmIChtX2NvbnRyb2xsZWRCeUF1dG9tYXRp
b24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiNDhkNjQ2
OTMzYS4uNDdjM2U2Mjc2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVk
ZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJQYWdlTG9hZFN0YXRlLmgiCi0jaW5jbHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCisjaW5j
bHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90
dGxlci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFi
bGVCaXRtYXAuaCIKQEAgLTY4Nyw4ICs2ODcsNiBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZXN0
aW1hdGVkUHJvZ3Jlc3MoKSBjb25zdDsKIAotICAgIHZvaWQgdGVybWluYXRlUHJvY2VzcygpOwot
CiAgICAgU2Vzc2lvblN0YXRlIHNlc3Npb25TdGF0ZShjb25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2wg
KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKT4mID0gbnVsbHB0cikgY29uc3Q7CiAgICAgUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gcmVzdG9yZUZyb21TZXNzaW9uU3RhdGUoU2Vzc2lvblN0YXRlLCBi
b29sIG5hdmlnYXRlKTsKIApAQCAtODU4LDcgKzg1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZSgpOwogICAgIHZvaWQgcHJvY2Vzc0RpZEJlY29t
ZVJlc3BvbnNpdmUoKTsKLSAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaChQcm9jZXNzQ3Jhc2hSZWFz
b24pOworICAgIHZvaWQgcHJvY2Vzc0RpZFRlcm1pbmF0ZShQcm9jZXNzVGVybWluYXRpb25SZWFz
b24pOwogICAgIHZvaWQgd2lsbENoYW5nZVByb2Nlc3NJc1Jlc3BvbnNpdmUoKTsKICAgICB2b2lk
IGRpZENoYW5nZVByb2Nlc3NJc1Jlc3BvbnNpdmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5NWI3NGNjYTE2Yy4uODMwMTM1YzE1MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC02
MDAsNyArNjAwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVj
dGlvbiYpCiAgICAgc2h1dERvd24oKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0g
cGFnZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYWdlc1tpXS0+cHJvY2Vzc0Rp
ZENyYXNoKFByb2Nlc3NDcmFzaFJlYXNvbjo6T3RoZXIpOworICAgICAgICBwYWdlc1tpXS0+cHJv
Y2Vzc0RpZFRlcm1pbmF0ZShQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkNyYXNoKTsKIAogfQog
CkBAIC04NDcsNyArODQ3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVE
YXRhRm9yT3JpZ2lucyhTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQKICAgICB9KTsKIH0K
IAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlcXVlc3RUZXJtaW5hdGlvbigpCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6cmVxdWVzdFRlcm1pbmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiBy
ZWFzb24pCiB7CiAgICAgaWYgKHN0YXRlKCkgPT0gU3RhdGU6OlRlcm1pbmF0ZWQpCiAgICAgICAg
IHJldHVybjsKQEAgLTg2Myw3ICs4NjMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVxdWVz
dFRlcm1pbmF0aW9uKCkKICAgICBzaHV0RG93bigpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDAs
IHNpemUgPSBwYWdlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHBhZ2VzW2ldLT5w
cm9jZXNzRGlkQ3Jhc2goUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvblJlcXVlc3RlZEJ5
Q2xpZW50KTsKKyAgICAgICAgcGFnZXNbaV0tPnByb2Nlc3NEaWRUZXJtaW5hdGUocmVhc29uKTsK
IH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkKQEAg
LTExMjcsNTkgKzExMjcsMjQgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NUZXJtaW5h
dGVkKCkKICAgICBtX2JhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyLnByb2Nlc3NUZXJtaW5h
dGVkKCk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8UmVmUHRyPFdlYlBhZ2VQcm94eT4+IHBhZ2VzQ29w
eShXVEY6Okl0ZXJhdG9yUmFuZ2U8V2ViUHJvY2Vzc1Byb3h5OjpXZWJQYWdlUHJveHlNYXA6OmNv
bnN0X2l0ZXJhdG9yOjpWYWx1ZXM+IHBhZ2VzKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmxvZ0Rp
YWdub3N0aWNNZXNzYWdlRm9yUmVzb3VyY2VMaW1pdFRlcm1pbmF0aW9uKGNvbnN0IFN0cmluZyYg
bGltaXRLZXkpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxXZWJQYWdlUHJveHk+PiB2ZWN0b3I7Ci0g
ICAgZm9yIChhdXRvJiBwYWdlIDogcGFnZXMpCi0gICAgICAgIHZlY3Rvci5hcHBlbmQocGFnZSk7
Ci0gICAgcmV0dXJuIHZlY3RvcjsKLX0KLQotc3RhdGljIFN0cmluZyBkaWFnbm9zdGljTG9nZ2lu
Z0tleUZvclRlcm1pbmF0aW9uUmVhc29uKFRlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKLXsKLSAg
ICBzd2l0Y2ggKHJlYXNvbikgewotICAgIGNhc2UgVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVk
QWN0aXZlTWVtb3J5TGltaXQ6Ci0gICAgICAgIHJldHVybiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXRLZXkoKTsKLSAgICBjYXNlIFRlcm1pbmF0aW9uUmVh
c29uOjpFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQ6Ci0gICAgICAgIHJldHVybiBEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdEtleSgpOwotICAgIGNh
c2UgVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0OgotICAgICAg
ICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleGNlZWRlZEJhY2tncm91bmRDUFVMaW1p
dEtleSgpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgfQotfQotCi1zdGF0aWMgUHJvY2Vzc0NyYXNoUmVhc29uIHRvUHJvY2Vzc0NyYXNo
UmVhc29uKFRlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKLXsKLSAgICBzd2l0Y2ggKHJlYXNvbikg
ewotICAgIGNhc2UgVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXQ6
Ci0gICAgY2FzZSBUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0
OgotICAgICAgICByZXR1cm4gUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvbkR1ZVRvTWVt
b3J5VXNhZ2U7Ci0gICAgY2FzZSBUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRCYWNrZ3JvdW5k
Q1BVTGltaXQ6Ci0gICAgICAgIHJldHVybiBQcm9jZXNzQ3Jhc2hSZWFzb246OlRlcm1pbmF0aW9u
RHVlVG9DUFVVc2FnZTsKLSAgICB9Ci0gICAgcmV0dXJuIFByb2Nlc3NDcmFzaFJlYXNvbjo6T3Ro
ZXI7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNv
dXJjZUxpbWl0cyhUZXJtaW5hdGlvblJlYXNvbiByZWFzb24pCi17Ci0gICAgZm9yIChhdXRvJiBw
YWdlIDogcGFnZXNDb3B5KHBhZ2VzKCkpKSB7Ci0gICAgICAgIHBhZ2UtPmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6c2ltdWxhdGVkUGFnZUNyYXNoS2V5KCksIGRp
YWdub3N0aWNMb2dnaW5nS2V5Rm9yVGVybWluYXRpb25SZWFzb24ocmVhc29uKSwgU2hvdWxkU2Ft
cGxlOjpObyk7Ci0gICAgICAgIHBhZ2UtPnRlcm1pbmF0ZVByb2Nlc3MoKTsKLSAgICAgICAgcGFn
ZS0+cHJvY2Vzc0RpZENyYXNoKHRvUHJvY2Vzc0NyYXNoUmVhc29uKHJlYXNvbikpOwotICAgIH0K
KyAgICBpZiAocGFnZUNvdW50KCkpCisgICAgICAgICgqcGFnZXMoKS5iZWdpbigpKS0+bG9nRGlh
Z25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzaW11bGF0ZWRQYWdlQ3Jhc2hL
ZXkoKSwgbGltaXRLZXksIFNob3VsZFNhbXBsZTo6Tm8pOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6ZGlkRXhjZWVkQWN0aXZlTWVtb3J5TGltaXQoKQogewogICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFBlcmZvcm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRB
Y3RpdmVNZW1vcnlMaW1pdCgpIFRlcm1pbmF0aW5nIFdlYlByb2Nlc3MgdGhhdCBoYXMgZXhjZWVk
ZWQgdGhlIGFjdGl2ZSBtZW1vcnkgbGltaXQiLCB0aGlzKTsKLSAgICB0ZXJtaW5hdGVQcm9jZXNz
RHVlVG9SZXNvdXJjZUxpbWl0cyhUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRBY3RpdmVNZW1v
cnlMaW1pdCk7CisgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VGb3JSZXNvdXJjZUxpbWl0VGVybWlu
YXRpb24oRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0S2V5
KCkpOworICAgIHJlcXVlc3RUZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4
Y2VlZGVkTWVtb3J5TGltaXQpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVk
SW5hY3RpdmVNZW1vcnlMaW1pdCgpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJST1IoUGVyZm9ybWFu
Y2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5
TGltaXQoKSBUZXJtaW5hdGluZyBXZWJQcm9jZXNzIHRoYXQgaGFzIGV4Y2VlZGVkIHRoZSBpbmFj
dGl2ZSBtZW1vcnkgbGltaXQiLCB0aGlzKTsKLSAgICB0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNv
dXJjZUxpbWl0cyhUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0
KTsKKyAgICBsb2dEaWFnbm9zdGljTWVzc2FnZUZvclJlc291cmNlTGltaXRUZXJtaW5hdGlvbihE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdEtleSgpKTsK
KyAgICByZXF1ZXN0VGVybWluYXRpb24oUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRl
ZE1lbW9yeUxpbWl0KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEJhY2tn
cm91bmRDUFVMaW1pdCgpCkBAIC0xMjAwLDcgKzExNjUsOCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6ZGlkRXhjZWVkQmFja2dyb3VuZENQVUxpbWl0KCkKICAgICB9CiAKICAgICBSRUxFQVNFX0xP
R19FUlJPUihQZXJmb3JtYW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhj
ZWVkQmFja2dyb3VuZENQVUxpbWl0KCkgVGVybWluYXRpbmcgYmFja2dyb3VuZCBXZWJQcm9jZXNz
IHRoYXQgaGFzIGV4Y2VlZGVkIHRoZSBiYWNrZ3JvdW5kIENQVSBsaW1pdCIsIHRoaXMpOwotICAg
IHRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKFRlcm1pbmF0aW9uUmVhc29uOjpF
eGNlZWRlZEJhY2tncm91bmRDUFVMaW1pdCk7CisgICAgbG9nRGlhZ25vc3RpY01lc3NhZ2VGb3JS
ZXNvdXJjZUxpbWl0VGVybWluYXRpb24oRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleGNlZWRlZEJh
Y2tncm91bmRDUFVMaW1pdEtleSgpKTsKKyAgICByZXF1ZXN0VGVybWluYXRpb24oUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQVUxpbWl0KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNz
UHJveHk6OnVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxNTRhNmZkZTdjYi4uYmM3OGQy
MzBmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAg
LTU1LDEyICs1NSw2IEBAIHN0cnVjdCBQbHVnaW5JbmZvOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotZW51bSBjbGFzcyBUZXJtaW5hdGlvblJlYXNvbiB7Ci0gICAgRXhjZWVkZWRBY3RpdmVNZW1v
cnlMaW1pdCwKLSAgICBFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQsCi0gICAgRXhjZWVkZWRC
YWNrZ3JvdW5kQ1BVTGltaXQsCi19OwotCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xh
c3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW07CkBAIC0xNDIsNyArMTM2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZVN1ZGRl
blRlcm1pbmF0aW9uKCk7CiAgICAgYm9vbCBpc1N1ZGRlblRlcm1pbmF0aW9uRW5hYmxlZCgpIHsg
cmV0dXJuICFtX251bWJlck9mVGltZXNTdWRkZW5UZXJtaW5hdGlvbldhc0Rpc2FibGVkOyB9CiAK
LSAgICB2b2lkIHJlcXVlc3RUZXJtaW5hdGlvbigpOworICAgIHZvaWQgcmVxdWVzdFRlcm1pbmF0
aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+
IHRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMoQVBJOjpPYmplY3QqKTsKICAgICBzdGF0aWMgUmVm
UHRyPEFQSTo6T2JqZWN0PiB0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKEFQSTo6T2JqZWN0Kik7
CkBAIC0yNDcsNyArMjQxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY2FuVGVybWluYXRlQ2hp
bGRQcm9jZXNzKCk7CiAKLSAgICB2b2lkIHRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGlt
aXRzKFRlcm1pbmF0aW9uUmVhc29uKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlRm9y
UmVzb3VyY2VMaW1pdFRlcm1pbmF0aW9uKGNvbnN0IFN0cmluZyYgbGltaXRLZXkpOwogCiAgICAg
UmVzcG9uc2l2ZW5lc3NUaW1lciBtX3Jlc3BvbnNpdmVuZXNzVGltZXI7CiAgICAgQmFja2dyb3Vu
ZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyIG1fYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGlt
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZDUzYjk5YWZlNjMuLmM0ZjYxODZmMjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04OTgsOCArODk4LDggQEAK
IAkJNDFGQUY1RjgxRTNDMTAyMTAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNjFFM0MwQjQ3
MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDFGQUY1RjkxRTNDMTAy
NTAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY3MUUzQzBCNDcwMDFBRTY3OCAvKiBMaWJX
ZWJSVENSZXNvbHZlci5jcHAgKi87IH07CiAJCTQ0NTBBRUMwMURDM0ZBRTUwMDk5NDNGMiAvKiBT
aGFyZWRNZW1vcnlDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2Eu
Y3BwICovOyB9OwotCQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4MkMgLyogV0tQcm9jZXNzQ3Jhc2hS
ZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2M0ZENDgyMUVCOTRF
QzAwMEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9j
ZXNzQ3Jhc2hSZWFzb24uaCAqLzsgfTsKKwkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJDIC8qIFdL
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87
IH07CiAJCTQ2QTJCNjA4MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3Bv
bnNpdmVuZXNzVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHAgKi87IH07CiAJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAv
KiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAv
KiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJNEEzQ0Mx
OEExOUIwNjNFNzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
NDEwRjM5MTlBRjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgKi87IH07CkBAIC0zMTIwLDggKzMxMjAsOCBAQAogCQk0MUZBRjVGNjFFM0Mw
QjQ3MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTGliV2ViUlRDUmVzb2x2ZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkFGNUY3
MUUzQzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJXZWJSVENSZXNvbHZlci5jcHA7IHBhdGggPSBOZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFyZWRNZW1vcnlDb2NvYS5j
cHA7IHBhdGggPSBjb2NvYS9TaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJl
YXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Byb2Nlc3NDcmFzaFJl
YXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NjNGRDQ4MTFFQjk0RUFEMDBB
Mjk4MkMgLyogUHJvY2Vzc0NyYXNoUmVhc29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByb2Nlc3NDcmFzaFJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYzRkQ0ODExRUI5NEVBRDAw
QTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9j
ZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dy
b3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQ5MzIsNyArNDkzMiw3IEBACiAJCQkJQkNDNDNBQjkxMjdCOTVEQzAw
MzE3RjE2IC8qIFBsYXRmb3JtUG9wdXBNZW51RGF0YS5oICovLAogCQkJCUUxOEM5MkYzMTJEQjlF
NzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwICovLAogCQkJCUUxQ0MxQjhFMTJEN0VBREYwMDYy
NTgzOCAvKiBQcmludEluZm8uaCAqLywKLQkJCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyog
UHJvY2Vzc0NyYXNoUmVhc29uLmggKi8sCisJCQkJNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJDIC8q
IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovLAogCQkJCUY2QTBDMTNGMTMyODFFNkUwMDcw
NDMwRiAvKiBSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1
MDBGMDA2RDAgLyogUlRDTmV0d29yay5jcHAgKi8sCiAJCQkJNDEwNDgyQ0MxREREMkZCNTAwRjAw
NkQwIC8qIFJUQ05ldHdvcmsuaCAqLywKQEAgLTcwMTMsNyArNzAxMyw3IEBACiAJCQkJQkNENTk3
Q0YxMTJCNTZBQzAwRUM4QzIzIC8qIFdLUHJlZmVyZW5jZXMuY3BwICovLAogCQkJCUJDRDU5N0NF
MTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzUmVmLmggKi8sCiAJCQkJNzYyQjc0ODQx
MjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggKi8sCi0JCQkJNDYz
RkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc0NyYXNoUmVhc29uLmggKi8sCisJCQkJ
NDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgg
Ki8sCiAJCQkJNTEyRjU4RjMxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmNw
cCAqLywKIAkJCQk1MTJGNThGNDEyQTg4QTU0MDA2Mjk1MzAgLyogV0tQcm90ZWN0aW9uU3BhY2Uu
aCAqLywKIAkJCQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VU
eXBlcy5oICovLApAQCAtODUxNiw3ICs4NTE2LDcgQEAKIAkJCQkxQUMxMzM4NjE4NTkwQzQ2MDBG
M0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDYzRkQ0
ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NDcmFzaFJlYXNvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E0
MTg3QjNCN0QwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDc5RDE4N0IzQjYwMDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nVHJlZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjczLDcgKzg2NzMsNyBAQAogCQkJ
CTFDOEUyQTM2MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUM4RTI4MzQxMjc1RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDYzRkQ0ODAxRUI5
NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTFDODkxRDY2MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNw
ZWN0b3JVSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNCQkU0QTExOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NUJBODJCMUJB
MzhFNjEwMDdDRDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhODg3ZTE1NTg3NS4uODVjNzAxNWI5YWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjYsNyArMTI2LDcgQEAKIAkJM0ZCRDFCNEExRDNENjZB
QjAwRTZENkZBIC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkQxQjQ5MUQzOUQx
REIwMEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLzsgfTsKIAkJ
NDQ4RDdFNDcxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDhEN0U0NTFF
QTZDNTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCAqLzsgfTsKIAkJ
NDYzOTdCOTUxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM5N0I5NDFEQzJDODUwMDA5QTc4QUUgLyog
RE9NTm9kZS5tbSAqLzsgfTsKLQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nlc3NE
aWRDcmFzaFdpdGhSZWFzb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRDcmFzaFdp
dGhSZWFzb24uY3BwICovOyB9OworCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vz
c0RpZFRlcm1pbmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjQ3QjEyNTFFQkEzQjczMDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5j
cHAgKi87IH07CiAJCTQ2QzUxOURBMUQzNTVBQjIwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxs
RW50cmllcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2QzUxOUQ4MUQzNTVBNzMwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSAq
LzsgfTsKIAkJNDZDNTE5RTYxRDM1NjNGRDAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRy
aWVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZDNTE5RTIxRDM1NjI5NjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVz
Lmh0bWwgKi87IH07CiAJCTQ2QzUxOUU3MUQzNTYzRkQwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VO
dWxsRW50cmllcy5sb2NhbHN0b3JhZ2UgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNTE5RTMxRDM1NjI5NjAwREFBNTFBIC8qIExvY2FsU3Rv
cmFnZU51bGxFbnRyaWVzLmxvY2Fsc3RvcmFnZSAqLzsgfTsKQEAgLTEwNjAsNyArMTA2MCw3IEBA
CiAJCTQ0OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW52aXJvbm1lbnRVdGls
aXRpZXNUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIyQzExNEEw
RTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk0NjQ3QjEyNTFFQkEzQjczMDA0MUQ3RUYgLyogUHJvY2Vzc0RpZENy
YXNoV2l0aFJlYXNvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0RpZFRlcm1pbmF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzUxOUQ4MUQzNTVBNzMwMERBQTUx
QSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NkM1MTlFMjFEMzU2Mjk2MDBEQUE1MUEgLyogTG9jYWxTdG9yYWdl
TnVsbEVudHJpZXMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IExvY2FsU3RvcmFn
ZU51bGxFbnRyaWVzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzUxOUUz
MUQzNTYyOTYwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5sb2NhbHN0b3JhZ2Ug
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBw
YXRoID0gTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9yYWdlOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjEwOCw3ICsyMTA4LDcgQEAKIAkJCQkwNzY2REQxRjFBNUFENTIw
MDAyM0UzQkIgLyogUGVuZGluZ0FQSVJlcXVlc3RVUkwuY3BwICovLAogCQkJCTMzM0I5Q0UxMTI3
N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovLAogCQkJCUY2RkRE
REQyMTQyNDFBRDQwMDRGMTcyOSAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlD
YWxsYmFjay5jcHAgKi8sCi0JCQkJNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NE
aWRDcmFzaFdpdGhSZWFzb24uY3BwICovLAorCQkJCTQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAv
KiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCAqLywKIAkJCQk4QTNBRjkzQTE2QzlFRDI3MDBEMjQ4
QzEgLyogUmVsb2FkUGFnZUFmdGVyQ3Jhc2guY3BwICovLAogCQkJCTJERDdEM0E5MTc4MjA1RDAw
MDI2RTFFMyAvKiBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAgKi8sCiAJCQkJOEEy
Qzc1MEQxNkNFRDk1NTAwMjRGMzUyIC8qIFJlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwICovLApA
QCAtMjg1Miw3ICsyODUyLDcgQEAKIAkJCQk3Q0NFN0VFRTFBNDExQUU2MDA0NDdDNEMgLyogRG93
bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0QkZB
NjhFMUU0QUQwODAwMDE1NDI5OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUExNTUwMjJBMUUwNTAyMEIwMEEyNEM1NyAvKiBEdXBsaWNhdGVDb21w
bGV0aW9uSGFuZGxlckNhbGxzLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNDY0N0IxMjYxRUJBM0I4
NTAwNDFEN0VGIC8qIFByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkUxQTQxMUE3RTAwNDQ3QzRDIC8qIER5bmFtaWNE
ZXZpY2VTY2FsZUZhY3Rvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJGODkyMURENTk5QjYw
MEIwMDMyOCAvKiBFYXJseUtWT0NyYXNoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAx
QTQxMUE5QTAwNDQ3QzRDIC8qIEVkaXRvckNvbW1hbmRzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNo
V2l0aFJlYXNvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vz
c0RpZFRlcm1pbmF0ZS5jcHAKc2ltaWxhcml0eSBpbmRleCA2MSUKcmVuYW1lIGZyb20gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Byb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24uY3Bw
CnJlbmFtZSB0byBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZFRl
cm1pbmF0ZS5jcHAKaW5kZXggZTdhZWE1ZWY0OTMuLmJiZTQ2YTllOGRlIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNv
bi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Byb2Nlc3NEaWRU
ZXJtaW5hdGUuY3BwCkBAIC0zMCwxMSArMzAsMTQgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUgIlRlc3QuaCIK
KyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1Jl
dGFpblB0ci5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CiAKIHN0YXRpYyBib29sIGxvYWRCZWZvcmVDcmFzaCA9IGZhbHNlOworc3RhdGljIGJvb2wg
Y2xpZW50VGVybWluYXRpb25IYW5kbGVyQ2FsbGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBjcmFz
aEhhbmRsZXJDYWxsZWQgPSBmYWxzZTsKIAogc3RhdGljIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlv
bihXS1BhZ2VSZWYgcGFnZSwgV0tOYXZpZ2F0aW9uUmVmIG5hdmlnYXRpb24sIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTQ3LDcgKzUwLDIwIEBAIHN0YXRp
YyB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhdGlvblJl
ZiBuYXZpZ2F0aW9uLCBXS1R5CiAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOwogfQogCi1zdGF0aWMg
dm9pZCBkaWRDcmFzaFdpdGhSZWFzb24oV0tQYWdlUmVmIHBhZ2UsIFdLUHJvY2Vzc0NyYXNoUmVh
c29uIHJlYXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3N0YXRpYyB2b2lkIHdlYlByb2Nl
c3NXYXNUZXJtaW5hdGVkQnlDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIFdLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uIHJlYXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICAvLyBUZXN0
IGlmIGZpcnN0IGxvYWQgYWN0dWFsbHkgd29ya2VkLgorICAgIEVYUEVDVF9UUlVFKGxvYWRCZWZv
cmVDcmFzaCk7CisKKyAgICAvLyBTaG91bGQgb25seSBiZSBjYWxsZWQgb25jZS4KKyAgICBFWFBF
Q1RfRkFMU0UoY2xpZW50VGVybWluYXRpb25IYW5kbGVyQ2FsbGVkKTsKKworICAgIEVYUEVDVF9F
UShrV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb25SZXF1ZXN0ZWRCeUNsaWVudCwgcmVhc29uKTsK
KworICAgIGNsaWVudFRlcm1pbmF0aW9uSGFuZGxlckNhbGxlZCA9IHRydWU7Cit9CisKK3N0YXRp
YyB2b2lkIHdlYlByb2Nlc3NDcmFzaGVkKFdLUGFnZVJlZiBwYWdlLCBXS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbiByZWFzb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgLy8gVGVz
dCBpZiBmaXJzdCBsb2FkIGFjdHVhbGx5IHdvcmtlZC4KICAgICBFWFBFQ1RfVFJVRShsb2FkQmVm
b3JlQ3Jhc2gpOwpAQCAtNTUsMTIgKzcxLDEyIEBAIHN0YXRpYyB2b2lkIGRpZENyYXNoV2l0aFJl
YXNvbihXS1BhZ2VSZWYgcGFnZSwgV0tQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29uLCBjb25zCiAg
ICAgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UuCiAgICAgRVhQRUNUX0ZBTFNFKGNyYXNo
SGFuZGxlckNhbGxlZCk7CiAKLSAgICBFWFBFQ1RfRVEoa1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVy
bWluYXRpb25SZXF1ZXN0ZWRCeUNsaWVudCwgcmVhc29uKTsKKyAgICBFWFBFQ1RfRVEoa1dLUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uQ3Jhc2gsIHJlYXNvbik7CiAKICAgICBjcmFzaEhhbmRsZXJD
YWxsZWQgPSB0cnVlOwogfQogCi1URVNUKFdlYktpdDIsIFByb2Nlc3NEaWRDcmFzaFdpdGhSZWFz
b25SZXF1ZXN0ZWRCeUNsaWVudCkKK1RFU1QoV2ViS2l0MiwgUHJvY2Vzc0RpZFRlcm1pbmF0ZVJl
cXVlc3RlZEJ5Q2xpZW50KQogewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4
dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7CiAgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcoY29udGV4dC5nZXQoKSk7CkBAIC02OSwxNiArODUsNDMgQEAgVEVTVChXZWJLaXQyLCBQcm9j
ZXNzRGlkQ3Jhc2hXaXRoUmVhc29uUmVxdWVzdGVkQnlDbGllbnQpCiAgICAgbWVtc2V0KCZuYXZp
Z2F0aW9uQ2xpZW50LCAwLCBzaXplb2YobmF2aWdhdGlvbkNsaWVudCkpOwogICAgIG5hdmlnYXRp
b25DbGllbnQuYmFzZS52ZXJzaW9uID0gMTsKICAgICBuYXZpZ2F0aW9uQ2xpZW50LmRpZEZpbmlz
aE5hdmlnYXRpb24gPSBkaWRGaW5pc2hOYXZpZ2F0aW9uOwotICAgIG5hdmlnYXRpb25DbGllbnQu
d2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbiA9IGRpZENyYXNoV2l0aFJlYXNvbjsKKyAgICBu
YXZpZ2F0aW9uQ2xpZW50LndlYlByb2Nlc3NEaWRUZXJtaW5hdGUgPSB3ZWJQcm9jZXNzV2FzVGVy
bWluYXRlZEJ5Q2xpZW50OwogCiAgICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2Vi
Vmlldy5wYWdlKCksICZuYXZpZ2F0aW9uQ2xpZW50LmJhc2UpOwogCisgICAgbG9hZEJlZm9yZUNy
YXNoID0gZmFsc2U7CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soV0tV
UkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikpOwogICAgIC8vIExvYWQgYSBi
bGFuayBwYWdlIGFuZCBuZXh0IGtpbGxzIFdlYlByb2Nlc3MuCiAgICAgV0tQYWdlTG9hZFVSTCh3
ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKICAgICBVdGlsOjpydW4oJmxvYWRCZWZvcmVDcmFz
aCk7CisKICAgICBXS1BhZ2VUZXJtaW5hdGUod2ViVmlldy5wYWdlKCkpOwogCisgICAgVXRpbDo6
cnVuKCZjbGllbnRUZXJtaW5hdGlvbkhhbmRsZXJDYWxsZWQpOworfQorCitURVNUKFdlYktpdDIs
IFByb2Nlc3NEaWRUZXJtaW5hdGVXaXRoUmVhc29uQ3Jhc2gpCit7CisgICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgIFdLUGFnZU5hdmln
YXRpb25DbGllbnRWMSBuYXZpZ2F0aW9uQ2xpZW50OworICAgIG1lbXNldCgmbmF2aWdhdGlvbkNs
aWVudCwgMCwgc2l6ZW9mKG5hdmlnYXRpb25DbGllbnQpKTsKKyAgICBuYXZpZ2F0aW9uQ2xpZW50
LmJhc2UudmVyc2lvbiA9IDE7CisgICAgbmF2aWdhdGlvbkNsaWVudC5kaWRGaW5pc2hOYXZpZ2F0
aW9uID0gZGlkRmluaXNoTmF2aWdhdGlvbjsKKyAgICBuYXZpZ2F0aW9uQ2xpZW50LndlYlByb2Nl
c3NEaWRUZXJtaW5hdGUgPSB3ZWJQcm9jZXNzQ3Jhc2hlZDsKKworICAgIFdLUGFnZVNldFBhZ2VO
YXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmbmF2aWdhdGlvbkNsaWVudC5iYXNlKTsK
KworICAgIGxvYWRCZWZvcmVDcmFzaCA9IGZhbHNlOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVm
PiB1cmwgPSBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIp
KTsKKyAgICAvLyBMb2FkIGEgYmxhbmsgcGFnZSBhbmQgbmV4dCBraWxscyBXZWJQcm9jZXNzLgor
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CisgICAgVXRpbDo6
cnVuKCZsb2FkQmVmb3JlQ3Jhc2gpOworCisgICAgLy8gU2ltdWxhdGUgYSBjcmFzaCBieSBraWxs
aW5nIHRoZSBXZWJQcm9jZXNzLgorICAgIGtpbGwoV0tQYWdlR2V0UHJvY2Vzc0lkZW50aWZpZXIo
d2ViVmlldy5wYWdlKCkpLCBTSUdLSUxMKTsKKwogICAgIFV0aWw6OnJ1bigmY3Jhc2hIYW5kbGVy
Q2FsbGVkKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309002</attachid>
            <date>2017-05-03 19:16:23 -0700</date>
            <delta_ts>2017-05-05 10:00:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171624-20170503191622.patch</filename>
            <type>text/plain</type>
            <size>50437</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWViM2RiZjFkZGVhOGFh
MjUyMGIwM2FiNmYwZGY3ZDAxY2Q2MWI0ZC4uNmFlMmVhY2NjNDc3NmQxMDRmNzFmMTg2MGE2MjUz
MjA0NTZmNGM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE3LTA1LTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHdlYlByb2Nlc3NE
aWRDcmFzaFdpdGhSZWFzb24gZGVsZWdhdGUgdG8gd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZSBhbmQg
c3RvcCBjYWxsaW5nIHdlYlByb2Nlc3NEaWRDcmFzaCBmb3IgY2xpZW50IHRlcm1pbmF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNjI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93LXVw
IGZpeGVzIGFmdGVyIHIyMTYxMjkgYmFzZWQgb24gZmVlZGJhY2sgSSBoYXZlIHJlY2VpdmVkOgor
ICAgICAgICAtIFJlbmFtZSB3ZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uIGRlbGVnYXRlIGZ1
bmN0aW9uIHRvIHdlYlByb2Nlc3NEaWRUZXJtaW5hdGUgZ2l2ZW4gdGhhdCB0aGlzIGlzIGNhbGxl
ZAorICAgICAgICAgIGZvciBub24tY3Jhc2hlcyAoZS5nLiB0ZXJtaW5hdGlvbnMgcmVxdWVzdGVk
IGJ5IHRoZSBjbGllbnQpLgorICAgICAgICAtIFJlbmFtZSBXS1Byb2Nlc3NDcmFzaFJlYXNvbiAv
IFByb2Nlc3NDcmFzaFJlYXNvbiB0byBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiAvIFByb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbgorICAgICAgICAgIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBu
ZXcgbmFtaW5nLgorICAgICAgICAtIFN0b3AgY2FsbGluZyBwcm9jZXNzRGlkQ3Jhc2ggLyB3ZWJQ
cm9jZXNzRGlkQ3Jhc2ggZm9yIHRlcm1pbmF0aW9ucyByZXF1ZXN0ZWQgYnkgdGhlIGNsaWVudCwg
dG8gbWFpbnRhaW4KKyAgICAgICAgICBwcmUtcjIxNjEyOSBiZWhhdmlvci4gVGhvc2UgYXJlIG5v
dCBjcmFzaGVzIChUaGUgY2xpZW50IHVzZWQgYW4gQVBJIHN1Y2ggYXMgV0tQYWdlVGVybWluYXRl
UHJvY2VzcygpKS4KKyAgICAgICAgICB3ZWJQcm9jZXNzRGlkVGVybWluYXRlIHdpbGwgc3RpbGwg
YmUgY2FsbGVkIHRob3VnaC4KKyAgICAgICAgLSBGaXggYSBidWcgd2hlcmUgLSBmb3IgdGVybWlu
YXRpb25zIGR1ZSB0byByZXNvdXJjZSBsaW1pdHMgLSBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRD
cmFzaCgpIHdhcyBnZXR0aW5nCisgICAgICAgICAgY2FsbGVkIHR3aWNlOiBGaXJzdCBieSBXZWJQ
cm9jZXNzUHJveHk6OnJlcXVlc3RUZXJtaW5hdGlvbigpIHdpdGggcmVhc29uICJSZXF1ZXN0ZWRC
eUNsaWVudCIgdGhlbiBhCisgICAgICAgICAgc2Vjb25kIHRpbWUgYnkgV2ViUHJvY2Vzc1Byb3h5
Ojp0ZXJtaW5hdGVQcm9jZXNzRHVlVG9SZXNvdXJjZUxpbWl0cygpIHdpdGggdGhlIHByb3BlciBy
ZWFzb24uCisKKyAgICAgICAgKiBTaGFyZWQvUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0NyYXNoUmVhc29uLmguCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CisgICAgICAgIChB
UEk6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRUZXJtaW5hdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlVGVybWlu
YXRlKToKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0NyYXNoUmVhc29uLmguCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVzZXRTdGF0ZV0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRUZXJtaW5hdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnByb2Nlc3NEaWRUZXJtaW5hdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6cmVxdWVzdFRlcm1pbmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVzc2FnZUZvclJlc291cmNlTGltaXRUZXJtaW5hdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQWN0aXZlTWVt
b3J5TGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZElu
YWN0aXZlTWVtb3J5TGltaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRp
ZEV4Y2VlZEJhY2tncm91bmRDUFVMaW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAxNy0wNS0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYWludGFpbiBpbnRlcmFjdGlvbiBpbmZvcm1hdGlvbiBVUkwgYXMgYSBVUkwsIG5v
dCBhIHN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NDcmFz
aFJlYXNvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NDcmFzaFJlYXNvbi5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDE3ZjcwOGYzOTU0Y2M4MThlYTQyNTY4MmUz
MDQ5NjJkYzc1MTlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaAorKysgL2Rldi9u
dWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWVudW0gY2xhc3MgUHJvY2Vzc0NyYXNoUmVhc29uIHsKLSAgICBUZXJt
aW5hdGlvbkR1ZVRvTWVtb3J5VXNhZ2UsCi0gICAgVGVybWluYXRpb25EdWVUb0NQVVVzYWdlLAot
ICAgIFRlcm1pbmF0aW9uUmVxdWVzdGVkQnlDbGllbnQsCi0gICAgT3RoZXIKLX07Ci0KLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzVGVybWluYXRpb25SZWFzb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzVGVybWluYXRpb25SZWFzb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42YTFmNDkyZWM0ZmMwMzQ5OGM0ZDJlY2Q5MDM0MGEyZDU0OWFiNWZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bi5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHsKKyAg
ICBFeGNlZWRlZE1lbW9yeUxpbWl0LAorICAgIEV4Y2VlZGVkQ1BVTGltaXQsCisgICAgUmVxdWVz
dGVkQnlDbGllbnQsCisgICAgQ3Jhc2gKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggOGEzZTFhN2RhOTZiNmNk
NTJhOWQ0NTQ2ZWIxYjg4ZjUwMDIwNGM2My4uZTQ1OTQ4N2NjODJlZmM5ZmViOGRiMDcyNDJiNWRk
MDYyYTU5YTYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFQSURhdGEu
aCIKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCi0jaW5jbHVkZSAiUHJvY2Vzc0NyYXNo
UmVhc29uLmgiCisjaW5jbHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVk
ZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgpAQCAtODMsNyArODMsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eSopIHsgfQogCiAgICAgLy8gRklYTUU6IFRoZXNlIGZ1bmN0aW9uIHNob3VsZCBub3Qg
YmUgcGFydCBvZiB0aGlzIGNsaWVudC4KLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNo
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpQcm9jZXNzQ3Jhc2hSZWFzb24pIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkVGVybWluYXRlKFdlYktpdDo6V2ViUGFnZVByb3h5
JiwgV2ViS2l0OjpQcm9jZXNzVGVybWluYXRpb25SZWFzb24pIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdlYktpdDo6V2Vi
UGFnZVByb3h5JikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaAppbmRleCBkOTRhOWU5ZDJkZGJkM2Y5NDE4M2VhOGJhOGU0ZWQwYjI2YTEyYjYyLi4xYjY2
YWIzNjY1MWEwNDA0MDllYjRhMGY4YWQwMjNmMzUyMDEyMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAi
SFRUUENvb2tpZUFjY2VwdFBvbGljeS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdE1lZGlhVHlwZS5oIgogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIKLSNpbmNs
dWRlICJQcm9jZXNzQ3Jhc2hSZWFzb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCIKICNpbmNsdWRlICJX
S0J1bmRsZUhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJXS0NvbnRleHQuaCIKQEAgLTQxLDcg
KzQxLDcgQEAKICNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlICJXS1ByZWZlcmVuY2VzUmVm
LmgiCiAjaW5jbHVkZSAiV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCIKLSNpbmNsdWRlICJXS1By
b2Nlc3NDcmFzaFJlYXNvbi5oIgorI2luY2x1ZGUgIldLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
LmgiCiAjaW5jbHVkZSAiV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oIgogI2luY2x1ZGUgIldLUmVz
b3VyY2VDYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKQEAgLTIz
NSwyMCArMjM1LDIwIEBAIGlubGluZSBXS0NhY2hlTW9kZWwgdG9BUEkoQ2FjaGVNb2RlbCBjYWNo
ZU1vZGVsKQogICAgIHJldHVybiBrV0tDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7CiB9CiAKLWlu
bGluZSBXS1Byb2Nlc3NDcmFzaFJlYXNvbiB0b0FQSShQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29u
KQoraW5saW5lIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHRvQVBJKFByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbiByZWFzb24pCiB7CiAgICAgc3dpdGNoIChyZWFzb24pIHsKLSAgICBjYXNlIFBy
b2Nlc3NDcmFzaFJlYXNvbjo6VGVybWluYXRpb25EdWVUb01lbW9yeVVzYWdlOgotICAgICAgICBy
ZXR1cm4ga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25EdWVUb01lbW9yeVVzYWdlOwot
ICAgIGNhc2UgUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvbkR1ZVRvQ1BVVXNhZ2U6Ci0g
ICAgICAgIHJldHVybiBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvbkR1ZVRvQ1BVVXNh
Z2U7Ci0gICAgY2FzZSBQcm9jZXNzQ3Jhc2hSZWFzb246OlRlcm1pbmF0aW9uUmVxdWVzdGVkQnlD
bGllbnQ6Ci0gICAgICAgIHJldHVybiBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvblJl
cXVlc3RlZEJ5Q2xpZW50OwotICAgIGNhc2UgUHJvY2Vzc0NyYXNoUmVhc29uOjpPdGhlcjoKLSAg
ICAgICAgcmV0dXJuIGtXS1Byb2Nlc3NDcmFzaFJlYXNvbk90aGVyOworICAgIGNhc2UgUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZE1lbW9yeUxpbWl0OgorICAgICAgICByZXR1cm4g
a1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uRXhjZWVkZWRNZW1vcnlMaW1pdDsKKyAgICBjYXNl
IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRDUFVMaW1pdDoKKyAgICAgICAgcmV0
dXJuIGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbkV4Y2VlZGVkQ1BVTGltaXQ7CisgICAgY2Fz
ZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50OgorICAgICAgICBy
ZXR1cm4ga1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uUmVxdWVzdGVkQnlDbGllbnQ7CisgICAg
Y2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkNyYXNoOgorICAgICAgICByZXR1cm4ga1dL
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uQ3Jhc2g7CiAgICAgfQogCi0gICAgcmV0dXJuIGtXS1By
b2Nlc3NDcmFzaFJlYXNvbk90aGVyOworICAgIHJldHVybiBrV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb25DcmFzaDsKIH0KIAogaW5saW5lIEZvbnRTbW9vdGhpbmdMZXZlbCB0b0ZvbnRTbW9vdGhp
bmdMZXZlbChXS0ZvbnRTbW9vdGhpbmdMZXZlbCB3a0xldmVsKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA0YWU3NTJiOGFjYWEwNDA2NjFmMDg3ZWM3ZGQ5
NTQwYTg2YTRlMDljLi42M2M0OTgwNzI2NmUxZjhlMzcxOTI4Yjc4MTQ2ZDZkNTM2OGI4YjNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNDIyLDcgKzQy
Miw3IEBAIHZvaWQgV0tQYWdlU2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShXS1BhZ2VSZWYgcGFn
ZVJlZiwgV0tTdHJpbmdSZWYgZW5jb2RpbmdOYW1lCiAKIHZvaWQgV0tQYWdlVGVybWluYXRlKFdL
UGFnZVJlZiBwYWdlUmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+dGVybWluYXRlUHJvY2Vz
cygpOworICAgIHRvSW1wbChwYWdlUmVmKS0+cHJvY2VzcygpLnJlcXVlc3RUZXJtaW5hdGlvbihQ
cm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KTsKIH0KIAogV0tTdHJp
bmdSZWYgV0tQYWdlR2V0U2Vzc2lvbkhpc3RvcnlVUkxWYWx1ZVR5cGUoKQpAQCAtMjQwMCwxMyAr
MjQwMCwxNSBAQCB2b2lkIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBw
YWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZQogICAgICAgICAgICAgbV9jbGllbnQu
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHRvQVBJKCZwYWdlKSwgdG9BUEkoYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAg
ICB9CiAKLSAgICAgICAgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJLaXQ6OlByb2Nlc3NDcmFzaFJlYXNvbiByZWFzb24pIG92ZXJyaWRlCisgICAgICAgIHZvaWQg
cHJvY2Vzc0RpZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6UHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uIHJlYXNvbikgb3ZlcnJpZGUKICAgICAgICAgewotICAgICAgICAgICAg
aWYgKG1fY2xpZW50LndlYlByb2Nlc3NEaWRDcmFzaCkKLSAgICAgICAgICAgICAgICBtX2NsaWVu
dC53ZWJQcm9jZXNzRGlkQ3Jhc2godG9BUEkoJnBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOworICAgICAgICAgICAgaWYgKG1fY2xpZW50LndlYlByb2Nlc3NEaWRUZXJtaW5hdGUpIHsK
KyAgICAgICAgICAgICAgICBtX2NsaWVudC53ZWJQcm9jZXNzRGlkVGVybWluYXRlKHRvQVBJKCZw
YWdlKSwgdG9BUEkocmVhc29uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChtX2NsaWVu
dC53ZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uKQotICAgICAgICAgICAgICAgIG1fY2xpZW50
LndlYlByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24odG9BUEkoJnBhZ2UpLCB0b0FQSShyZWFzb24p
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgICAgICAgICAgaWYgKG1fY2xpZW50Lndl
YlByb2Nlc3NEaWRDcmFzaCAmJiByZWFzb24gIT0gV2ViS2l0OjpQcm9jZXNzVGVybWluYXRpb25S
ZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KQorICAgICAgICAgICAgICAgIG1fY2xpZW50LndlYlBy
b2Nlc3NEaWRDcmFzaCh0b0FQSSgmcGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAg
ICAgICAgIH0KIAogICAgICAgICBSZWZQdHI8QVBJOjpEYXRhPiB3ZWJDcnlwdG9NYXN0ZXJLZXko
V2ViUGFnZVByb3h5JiBwYWdlKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggZDcxZDRlYjVj
NGExNWNmODVhNjdiZDA1NDEwMTg0Y2ZhZWE0YjU5YS4uZWQxNTQ4ZmY4NWFhMjI3MjE4NmUzNDc1
OGQ0MmI0ZTgxMmU3MDEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5j
bHVkZSA8V2ViS2l0L1dLUGFnZUxvYWRUeXBlcy5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1BsdWdpbkxvYWRQ
b2xpY3kuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaD4KIAogI2lmZGVmIF9fY3Bs
dXNwbHVzCiBleHRlcm4gIkMiIHsKQEAgLTY2LDcgKzY2LDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQ
YWdlTmF2aWdhdGlvbkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUNhbGxiYWNrKShX
S1BhZ2UKIAogdHlwZWRlZiB2b2lkICgqV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nlc3NEaWRDcmFz
aENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKLXR5
cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29u
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1Byb2Nlc3NDcmFzaFJlYXNvbiByZWFzb24sIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlTmF2aWdhdGlvbldl
YlByb2Nlc3NEaWRUZXJtaW5hdGVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uIHJlYXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVk
ZWYgV0tEYXRhUmVmICgqV0tQYWdlTmF2aWdhdGlvbkNvcHlXZWJDcnlwdG9NYXN0ZXJLZXlDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIApAQCAt
MTQwLDcgKzE0MCw3IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZU5hdmlnYXRpb25DbGllbnRWMSB7
CiAgICAgV0tQYWdlTmF2aWdhdGlvbkRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3Qg
ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDsKIAogICAgIC8vIFZlcnNpb24gMS4K
LSAgICBXS1BhZ2VOYXZpZ2F0aW9uV2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbkNhbGxiYWNr
IHdlYlByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb247CisgICAgV0tQYWdlTmF2aWdhdGlvbldlYlBy
b2Nlc3NEaWRUZXJtaW5hdGVDYWxsYmFjayB3ZWJQcm9jZXNzRGlkVGVybWluYXRlOwogfSBXS1Bh
Z2VOYXZpZ2F0aW9uQ2xpZW50VjE7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0NyYXNoUmVhc29uLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQ3NjIwM2Y0MjBlZjViOTM4NzlkZWYwZGNlNWVm
YjMyOGMxOGU0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaAor
KysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIg
ewotI2VuZGlmCi0KLWVudW0gewotICAgIGtXS1Byb2Nlc3NDcmFzaFJlYXNvblRlcm1pbmF0aW9u
RHVlVG9NZW1vcnlVc2FnZSA9IDAsCi0gICAga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRp
b25EdWVUb0NQVVVzYWdlLAotICAgIGtXS1Byb2Nlc3NDcmFzaFJlYXNvblRlcm1pbmF0aW9uUmVx
dWVzdGVkQnlDbGllbnQsCi0gICAga1dLUHJvY2Vzc0NyYXNoUmVhc29uT3RoZXIsCi19OwotdHlw
ZWRlZiB1aW50MzJfdCBXS1Byb2Nlc3NDcmFzaFJlYXNvbjsKLQotI2lmZGVmIF9fY3BsdXNwbHVz
Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIwZTg1YTg2Zjhk
ZDBiYjIwMzJjNjdkY2NlMmNkMWVjMWFkNDQ3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHN0ZGlu
dC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0g
eworICAgIGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbkV4Y2VlZGVkTWVtb3J5TGltaXQgPSAw
LAorICAgIGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbkV4Y2VlZGVkQ1BVTGltaXQsCisgICAg
a1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uUmVxdWVzdGVkQnlDbGllbnQsCisgICAga1dLUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uQ3Jhc2gsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1Byb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbjsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
YmQ0YmY0Mjg2Yzk0MmU3MDIwOWNjNjE0YTlkMjAxZjExMjk3NTg2Yi4uMTk5YzM5N2NkMmFkYzRl
MGVkZmNmZGE5NjMzYTU2MTUzMzgyYjFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM3NzIsNyArMzc3Miw3IEBAIC0gKFdLTmF2
aWdhdGlvbiAqKV9yZWxvYWRFeHBpcmVkT25seQogCiAtICh2b2lkKV9raWxsV2ViQ29udGVudFBy
b2Nlc3NBbmRSZXNldFN0YXRlCiB7Ci0gICAgX3BhZ2UtPnRlcm1pbmF0ZVByb2Nlc3MoKTsKKyAg
ICBfcGFnZS0+cHJvY2VzcygpLnJlcXVlc3RUZXJtaW5hdGlvbihXZWJLaXQ6OlByb2Nlc3NUZXJt
aW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQpOwogfQogCiAjaWYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5o
CmluZGV4IDBhZDM0NzgxMWI5NWEyMDE2ODM1ODgzNmRjNDUxNjU1NGEzN2ZkYjEuLjdhOWMzYzVi
MThiMDVjMTBlY2JhN2FhZWE1MDIwNmM2NDI2OWZmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNp
bXBvcnQgIkFQSUhpc3RvcnlDbGllbnQuaCIKICNpbXBvcnQgIkFQSU5hdmlnYXRpb25DbGllbnQu
aCIKICNpbXBvcnQgIlBhZ2VMb2FkU3RhdGUuaCIKLSNpbXBvcnQgIlByb2Nlc3NDcmFzaFJlYXNv
bi5oIgorI2ltcG9ydCAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW1wb3J0ICJQcm9j
ZXNzVGhyb3R0bGVyLmgiCiAjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgYm9vbCBj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFdlYlBhZ2VQcm94eSYsIFdlYlBy
b3RlY3Rpb25TcGFjZSopIG92ZXJyaWRlOwogICAgICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkmLCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5Kikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdlYlBhZ2VQcm94
eSYsIFByb2Nlc3NDcmFzaFJlYXNvbikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQgcHJvY2Vzc0Rp
ZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmLCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24pIG92ZXJy
aWRlOwogICAgICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKFdlYlBhZ2VQcm94
eSYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUo
V2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCmluZGV4IGE0NTk4MjllZjEyYmRiOGNiOTYzNTBk
NjdjMDY4NzM1ZDQwYzBjZTEuLjAyN2RiNTBlZjRkOTg0NjAyM2FiYmY3NWExOTZiY2YxMzg4NDQ0
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbQpAQCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViUGFnCiAgICAg
W3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9u
RGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6d3JhcHBlcigqYXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpXTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnBy
b2Nlc3NEaWRDcmFzaChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpQcm9jZXNz
Q3Jhc2hSZWFzb24pCit2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJv
Y2Vzc0RpZFRlcm1pbmF0ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpQcm9j
ZXNzVGVybWluYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWlu
YXRlICYmICFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1dlYlByb2Nlc3NEaWRDcmFzaCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4OTAwNmFiYzhhMGI0NzY1ZjkwZWEyMDNi
NDQ3MmNjZDhhZTMyNzI4Li41ODk4MzAzNzhjZmM0NDA0ZGQwNzkxZjU0Mzk1ZWFjNWE5ZDFjMDli
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjQwNCwx
NiArMjQwNCw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1l
KGNvbnN0IFN0cmluZyYgZW5jb2RpbmdOYW1lKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6U2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShlbmNvZGluZ05hbWUpLCBtX3Bh
Z2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp0ZXJtaW5hdGVQcm9jZXNzKCkKLXsKLSAg
ICAvLyBOT1RFOiBUaGlzIHVzZXMgYSBjaGVjayBvZiBtX2lzVmFsaWQgcmF0aGVyIHRoYW4gY2Fs
bGluZyBpc1ZhbGlkKCkgc2luY2UKLSAgICAvLyB3ZSB3YW50IHRoaXMgdG8gcnVuIGV2ZW4gZm9y
IHBhZ2VzIGJlaW5nIGNsb3NlZCBvciB0aGF0IGFscmVhZHkgY2xvc2VkLgotICAgIGlmICghbV9p
c1ZhbGlkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Byb2Nlc3MtPnJlcXVlc3RUZXJtaW5h
dGlvbigpOwotfQotCiBTZXNzaW9uU3RhdGUgV2ViUGFnZVByb3h5OjpzZXNzaW9uU3RhdGUoY29u
c3Qgc3RkOjpmdW5jdGlvbjxib29sIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik+JiBmaWx0ZXIp
IGNvbnN0CiB7CiAgICAgU2Vzc2lvblN0YXRlIHNlc3Npb25TdGF0ZTsKQEAgLTUyOTIsNyArNTI4
Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm9jZXNzSXNSZXNwb25zaXZlKCkK
ICAgICBtX3BhZ2VMb2FkU3RhdGUuZGlkQ2hhbmdlUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKFByb2Nlc3NDcmFzaFJlYXNvbiBy
ZWFzb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZShQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24gcmVhc29uKQogewogICAgIEFTU0VSVChtX2lzVmFsaWQpOwogCkBAIC01
MzE1LDggKzUzMDUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENyYXNoKFByb2Nl
c3NDcmFzaFJlYXNvbiByZWFzb24pCiAgICAgbmF2aWdhdGlvblN0YXRlKCkuY2xlYXJBbGxOYXZp
Z2F0aW9ucygpOwogCiAgICAgaWYgKG1fbmF2aWdhdGlvbkNsaWVudCkKLSAgICAgICAgbV9uYXZp
Z2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlkQ3Jhc2goKnRoaXMsIHJlYXNvbik7Ci0gICAgZWxzZQor
ICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPnByb2Nlc3NEaWRUZXJtaW5hdGUoKnRoaXMsIHJl
YXNvbik7CisgICAgZWxzZSBpZiAocmVhc29uICE9IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6
UmVxdWVzdGVkQnlDbGllbnQpCiAgICAgICAgIG1fbG9hZGVyQ2xpZW50LT5wcm9jZXNzRGlkQ3Jh
c2goKnRoaXMpOwogCiAgICAgaWYgKG1fY29udHJvbGxlZEJ5QXV0b21hdGlvbikgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGI0OGQ2NDY5MzNhOWRjNDE5OWNj
YTE3MDU4OTE3NTA0ZjhiZWQ2N2MuLjQ3YzNlNjI3NjFjY2ZlNzM1MzRhYTRkZjJhZjg3NjQ4YzE4
NzNhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQwLDcg
KzQwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJQYWdlTG9hZFN0
YXRlLmgiCi0jaW5jbHVkZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCisjaW5jbHVkZSAiUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
QEAgLTY4Nyw4ICs2ODcsNiBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZXN0aW1hdGVkUHJvZ3Jl
c3MoKSBjb25zdDsKIAotICAgIHZvaWQgdGVybWluYXRlUHJvY2VzcygpOwotCiAgICAgU2Vzc2lv
blN0YXRlIHNlc3Npb25TdGF0ZShjb25zdCBzdGQ6OmZ1bmN0aW9uPGJvb2wgKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0mKT4mID0gbnVsbHB0cikgY29uc3Q7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdh
dGlvbj4gcmVzdG9yZUZyb21TZXNzaW9uU3RhdGUoU2Vzc2lvblN0YXRlLCBib29sIG5hdmlnYXRl
KTsKIApAQCAtODU4LDcgKzg1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJvY2Vzc0RpZEJl
Y29tZVVucmVzcG9uc2l2ZSgpOwogICAgIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUo
KTsKLSAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaChQcm9jZXNzQ3Jhc2hSZWFzb24pOworICAgIHZv
aWQgcHJvY2Vzc0RpZFRlcm1pbmF0ZShQcm9jZXNzVGVybWluYXRpb25SZWFzb24pOwogICAgIHZv
aWQgd2lsbENoYW5nZVByb2Nlc3NJc1Jlc3BvbnNpdmUoKTsKICAgICB2b2lkIGRpZENoYW5nZVBy
b2Nlc3NJc1Jlc3BvbnNpdmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCA5NWI3NGNjYTE2YzhhZjIzN2RjZDI4YjMzYzE0NWQzYmQ0MGFk
ODZlLi44MzAxMzVjMTUwMDJlNzg0OWUyYTg4ZWQwMWUxMGM2Mzg2NDU0ZTczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjAwLDcgKzYwMCw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAg
IHNodXREb3duKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHBhZ2VzLnNpemUo
KTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGFnZXNbaV0tPnByb2Nlc3NEaWRDcmFzaChQcm9j
ZXNzQ3Jhc2hSZWFzb246Ok90aGVyKTsKKyAgICAgICAgcGFnZXNbaV0tPnByb2Nlc3NEaWRUZXJt
aW5hdGUoUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpDcmFzaCk7CiAKIH0KIApAQCAtODQ3LDcg
Kzg0Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0CiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpyZXF1ZXN0VGVybWluYXRpb24oKQordm9pZCBXZWJQcm9jZXNzUHJveHk6
OnJlcXVlc3RUZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogewog
ICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpUZXJtaW5hdGVkKQogICAgICAgICByZXR1cm47CkBA
IC04NjMsNyArODYzLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlcXVlc3RUZXJtaW5hdGlv
bigpCiAgICAgc2h1dERvd24oKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gcGFn
ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYWdlc1tpXS0+cHJvY2Vzc0RpZENy
YXNoKFByb2Nlc3NDcmFzaFJlYXNvbjo6VGVybWluYXRpb25SZXF1ZXN0ZWRCeUNsaWVudCk7Cisg
ICAgICAgIHBhZ2VzW2ldLT5wcm9jZXNzRGlkVGVybWluYXRlKHJlYXNvbik7CiB9CiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjplbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpCkBAIC0xMTI3LDU5ICsx
MTI3LDI0IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzVGVybWluYXRlZCgpCiAgICAg
bV9iYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lci5wcm9jZXNzVGVybWluYXRlZCgpOwogfQog
Ci1zdGF0aWMgVmVjdG9yPFJlZlB0cjxXZWJQYWdlUHJveHk+PiBwYWdlc0NvcHkoV1RGOjpJdGVy
YXRvclJhbmdlPFdlYlByb2Nlc3NQcm94eTo6V2ViUGFnZVByb3h5TWFwOjpjb25zdF9pdGVyYXRv
cjo6VmFsdWVzPiBwYWdlcykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpsb2dEaWFnbm9zdGljTWVz
c2FnZUZvclJlc291cmNlTGltaXRUZXJtaW5hdGlvbihjb25zdCBTdHJpbmcmIGxpbWl0S2V5KQog
ewotICAgIFZlY3RvcjxSZWZQdHI8V2ViUGFnZVByb3h5Pj4gdmVjdG9yOwotICAgIGZvciAoYXV0
byYgcGFnZSA6IHBhZ2VzKQotICAgICAgICB2ZWN0b3IuYXBwZW5kKHBhZ2UpOwotICAgIHJldHVy
biB2ZWN0b3I7Ci19Ci0KLXN0YXRpYyBTdHJpbmcgZGlhZ25vc3RpY0xvZ2dpbmdLZXlGb3JUZXJt
aW5hdGlvblJlYXNvbihUZXJtaW5hdGlvblJlYXNvbiByZWFzb24pCi17Ci0gICAgc3dpdGNoIChy
ZWFzb24pIHsKLSAgICBjYXNlIFRlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEFjdGl2ZU1lbW9y
eUxpbWl0OgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleGNlZWRlZEFj
dGl2ZU1lbW9yeUxpbWl0S2V5KCk7Ci0gICAgY2FzZSBUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVk
ZWRJbmFjdGl2ZU1lbW9yeUxpbWl0OgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpleGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXRLZXkoKTsKLSAgICBjYXNlIFRlcm1pbmF0
aW9uUmVhc29uOjpFeGNlZWRlZEJhY2tncm91bmRDUFVMaW1pdDoKLSAgICAgICAgcmV0dXJuIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6ZXhjZWVkZWRCYWNrZ3JvdW5kQ1BVTGltaXRLZXkoKTsKLSAg
ICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0K
LX0KLQotc3RhdGljIFByb2Nlc3NDcmFzaFJlYXNvbiB0b1Byb2Nlc3NDcmFzaFJlYXNvbihUZXJt
aW5hdGlvblJlYXNvbiByZWFzb24pCi17Ci0gICAgc3dpdGNoIChyZWFzb24pIHsKLSAgICBjYXNl
IFRlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0OgotICAgIGNhc2Ug
VGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdDoKLSAgICAgICAg
cmV0dXJuIFByb2Nlc3NDcmFzaFJlYXNvbjo6VGVybWluYXRpb25EdWVUb01lbW9yeVVzYWdlOwot
ICAgIGNhc2UgVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0Ogot
ICAgICAgICByZXR1cm4gUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvbkR1ZVRvQ1BVVXNh
Z2U7Ci0gICAgfQotICAgIHJldHVybiBQcm9jZXNzQ3Jhc2hSZWFzb246Ok90aGVyOwotfQotCi12
b2lkIFdlYlByb2Nlc3NQcm94eTo6dGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMo
VGVybWluYXRpb25SZWFzb24gcmVhc29uKQotewotICAgIGZvciAoYXV0byYgcGFnZSA6IHBhZ2Vz
Q29weShwYWdlcygpKSkgewotICAgICAgICBwYWdlLT5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnNpbXVsYXRlZFBhZ2VDcmFzaEtleSgpLCBkaWFnbm9zdGljTG9n
Z2luZ0tleUZvclRlcm1pbmF0aW9uUmVhc29uKHJlYXNvbiksIFNob3VsZFNhbXBsZTo6Tm8pOwot
ICAgICAgICBwYWdlLT50ZXJtaW5hdGVQcm9jZXNzKCk7Ci0gICAgICAgIHBhZ2UtPnByb2Nlc3NE
aWRDcmFzaCh0b1Byb2Nlc3NDcmFzaFJlYXNvbihyZWFzb24pKTsKLSAgICB9CisgICAgaWYgKHBh
Z2VDb3VudCgpKQorICAgICAgICAoKnBhZ2VzKCkuYmVnaW4oKSktPmxvZ0RpYWdub3N0aWNNZXNz
YWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6c2ltdWxhdGVkUGFnZUNyYXNoS2V5KCksIGxpbWl0
S2V5LCBTaG91bGRTYW1wbGU6Ok5vKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4
Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkKIHsKICAgICBSRUxFQVNFX0xPR19FUlJPUihQZXJmb3Jt
YW5jZUxvZ2dpbmcsICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQWN0aXZlTWVtb3J5
TGltaXQoKSBUZXJtaW5hdGluZyBXZWJQcm9jZXNzIHRoYXQgaGFzIGV4Y2VlZGVkIHRoZSBhY3Rp
dmUgbWVtb3J5IGxpbWl0IiwgdGhpcyk7Ci0gICAgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3Vy
Y2VMaW1pdHMoVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXQpOwor
ICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlRm9yUmVzb3VyY2VMaW1pdFRlcm1pbmF0aW9uKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6ZXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdEtleSgpKTsKKyAgICBy
ZXF1ZXN0VGVybWluYXRpb24oUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZE1lbW9y
eUxpbWl0KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEluYWN0aXZlTWVt
b3J5TGltaXQoKQogewogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZvcm1hbmNlTG9nZ2luZywg
IiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0KCkgVGVy
bWluYXRpbmcgV2ViUHJvY2VzcyB0aGF0IGhhcyBleGNlZWRlZCB0aGUgaW5hY3RpdmUgbWVtb3J5
IGxpbWl0IiwgdGhpcyk7Ci0gICAgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMo
VGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdCk7CisgICAgbG9n
RGlhZ25vc3RpY01lc3NhZ2VGb3JSZXNvdXJjZUxpbWl0VGVybWluYXRpb24oRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpleGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXRLZXkoKSk7CisgICAgcmVxdWVz
dFRlcm1pbmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRNZW1vcnlMaW1p
dCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5kQ1BVTGlt
aXQoKQpAQCAtMTIwMCw3ICsxMTY1LDggQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2Vl
ZEJhY2tncm91bmRDUFVMaW1pdCgpCiAgICAgfQogCiAgICAgUkVMRUFTRV9MT0dfRVJST1IoUGVy
Zm9ybWFuY2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEJhY2tncm91
bmRDUFVMaW1pdCgpIFRlcm1pbmF0aW5nIGJhY2tncm91bmQgV2ViUHJvY2VzcyB0aGF0IGhhcyBl
eGNlZWRlZCB0aGUgYmFja2dyb3VuZCBDUFUgbGltaXQiLCB0aGlzKTsKLSAgICB0ZXJtaW5hdGVQ
cm9jZXNzRHVlVG9SZXNvdXJjZUxpbWl0cyhUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRCYWNr
Z3JvdW5kQ1BVTGltaXQpOworICAgIGxvZ0RpYWdub3N0aWNNZXNzYWdlRm9yUmVzb3VyY2VMaW1p
dFRlcm1pbmF0aW9uKERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhjZWVkZWRCYWNrZ3JvdW5kQ1BV
TGltaXRLZXkoKSk7CisgICAgcmVxdWVzdFRlcm1pbmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJl
YXNvbjo6RXhjZWVkZWRDUFVMaW1pdCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1cGRh
dGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMTU0YTZmZGU3Y2JmZDE1ZTAxYzg4YzZiZDQ4NjE4
MjdlNTRhMDA1Zi4uYmM3OGQyMzBmNGRhYTJkOTQyNDkwNzY5MzU5YTc0Zjk0ZDMxMmNlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTUsMTIgKzU1
LDYgQEAgc3RydWN0IFBsdWdpbkluZm87CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1lbnVtIGNs
YXNzIFRlcm1pbmF0aW9uUmVhc29uIHsKLSAgICBFeGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0LAot
ICAgIEV4Y2VlZGVkSW5hY3RpdmVNZW1vcnlMaW1pdCwKLSAgICBFeGNlZWRlZEJhY2tncm91bmRD
UFVMaW1pdCwKLX07Ci0KIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CiBjbGFzcyBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKQEAg
LTE0Miw3ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRp
b24oKTsKICAgICBib29sIGlzU3VkZGVuVGVybWluYXRpb25FbmFibGVkKCkgeyByZXR1cm4gIW1f
bnVtYmVyT2ZUaW1lc1N1ZGRlblRlcm1pbmF0aW9uV2FzRGlzYWJsZWQ7IH0KIAotICAgIHZvaWQg
cmVxdWVzdFRlcm1pbmF0aW9uKCk7CisgICAgdm9pZCByZXF1ZXN0VGVybWluYXRpb24oUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdHJhbnNmb3Jt
SGFuZGxlc1RvT2JqZWN0cyhBUEk6Ok9iamVjdCopOwogICAgIHN0YXRpYyBSZWZQdHI8QVBJOjpP
YmplY3Q+IHRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXMoQVBJOjpPYmplY3QqKTsKQEAgLTI0Nyw3
ICsyNDEsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5UZXJtaW5hdGVDaGlsZFByb2Nlc3Mo
KTsKIAotICAgIHZvaWQgdGVybWluYXRlUHJvY2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMoVGVybWlu
YXRpb25SZWFzb24pOworICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VGb3JSZXNvdXJjZUxp
bWl0VGVybWluYXRpb24oY29uc3QgU3RyaW5nJiBsaW1pdEtleSk7CiAKICAgICBSZXNwb25zaXZl
bmVzc1RpbWVyIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsKICAgICBCYWNrZ3JvdW5kUHJvY2Vzc1Jl
c3BvbnNpdmVuZXNzVGltZXIgbV9iYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBk
NTNiOTlhZmU2MzNmYjdmYThiYWM2YTE1YzZkYmE3ZjYwNDU0ZTE3Li5jNGY2MTg2ZjI0ZjU1YjEx
NDhlMjQwNmIxZjc1NzVjZjQwNjFhNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04OTgsOCArODk4LDggQEAKIAkJNDFGQUY1
RjgxRTNDMTAyMTAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2Nzgg
LyogTGliV2ViUlRDUmVzb2x2ZXIuaCAqLzsgfTsKIAkJNDFGQUY1RjkxRTNDMTAyNTAwMUFFNjc4
IC8qIExpYldlYlJUQ1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY3MUUzQzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNv
bHZlci5jcHAgKi87IH07CiAJCTQ0NTBBRUMwMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1v
cnlDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovOyB9
OwotCQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4MkMgLyogV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDdGMUVC
OTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgy
QyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hS
ZWFzb24uaCAqLzsgfTsKKwkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFF
Qjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87IH07CiAJCTQ2
QTJCNjA4MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNz
VGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5l
c3NUaW1lci5jcHAgKi87IH07CiAJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3Jv
dW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3Jv
dW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJNEEzQ0MxOEExOUIwNjNF
NzAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNDEwRjM5MTlB
RjdCMDQwMDJFQkFCNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgKi87IH07CkBAIC0zMTIwLDggKzMxMjAsOCBAQAogCQk0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2
NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTGliV2ViUlRDUmVzb2x2ZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jl
c29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkFGNUY3MUUzQzBCNDcw
MDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBMaWJXZWJSVENSZXNvbHZlci5jcHA7IHBhdGggPSBOZXR3b3JrL3dlYnJ0
Yy9MaWJXZWJSVENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHBhdGgg
PSBjb2NvYS9TaGFyZWRNZW1vcnlDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyog
UHJvY2Vzc0NyYXNoUmVhc29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
b2Nlc3NDcmFzaFJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjNGRDQ3
RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJDIC8q
IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBC
YWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nl
c3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0QTQxMEYzNTE5QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQ5MzIsNyArNDkzMiw3IEBACiAJCQkJQkNDNDNBQjkxMjdCOTVEQzAwMzE3RjE2IC8q
IFBsYXRmb3JtUG9wdXBNZW51RGF0YS5oICovLAogCQkJCUUxOEM5MkYzMTJEQjlFNzEwMENGMkFF
QiAvKiBQcmludEluZm8uY3BwICovLAogCQkJCUUxQ0MxQjhFMTJEN0VBREYwMDYyNTgzOCAvKiBQ
cmludEluZm8uaCAqLywKLQkJCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc0Ny
YXNoUmVhc29uLmggKi8sCisJCQkJNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJDIC8qIFByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbi5oICovLAogCQkJCUY2QTBDMTNGMTMyODFFNkUwMDcwNDMwRiAvKiBS
ZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAg
LyogUlRDTmV0d29yay5jcHAgKi8sCiAJCQkJNDEwNDgyQ0MxREREMkZCNTAwRjAwNkQwIC8qIFJU
Q05ldHdvcmsuaCAqLywKQEAgLTcwMTMsNyArNzAxMyw3IEBACiAJCQkJQkNENTk3Q0YxMTJCNTZB
QzAwRUM4QzIzIC8qIFdLUHJlZmVyZW5jZXMuY3BwICovLAogCQkJCUJDRDU5N0NFMTEyQjU2QUMw
MEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzUmVmLmggKi8sCiAJCQkJNzYyQjc0ODQxMjBCQkEyRDAw
ODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggKi8sCi0JCQkJNDYzRkQ0N0YxRUI5
NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc0NyYXNoUmVhc29uLmggKi8sCisJCQkJNDYzRkQ0N0Yx
RUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8sCiAJCQkJ
NTEyRjU4RjMxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmNwcCAqLywKIAkJ
CQk1MTJGNThGNDEyQTg4QTU0MDA2Mjk1MzAgLyogV0tQcm90ZWN0aW9uU3BhY2UuaCAqLywKIAkJ
CQk1MThBQ0FFOTEyQUVFNkJCMDBCMDRCODMgLyogV0tQcm90ZWN0aW9uU3BhY2VUeXBlcy5oICov
LApAQCAtODUxNiw3ICs4NTE2LDcgQEAKIAkJCQkxQUMxMzM4NjE4NTkwQzQ2MDBGM0VDMDUgLyog
UmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1OTQ3
OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDYzRkQ0ODIxRUI5NEVD
MDAwQTI5ODJDIC8qIFByb2Nlc3NDcmFzaFJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDYz
RkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0N0E0MTg3QjNCN0Qw
MDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjU5NDc5RDE4N0IzQjYwMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjczLDcgKzg2NzMsNyBAQAogCQkJCTFDOEUyQTM2
MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUM4RTI4MzQxMjc1RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9y
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5
ODJDIC8qIFdLUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjNGRDQ4
MDFFQjk0NTk2MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFDODkxRDY2MTlCMTI0RkYwMEJBNzlERCAvKiBXZWJJbnNwZWN0b3JVSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUNCQkU0QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3Bl
Y3RvclVJTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NUJBODJCMUJBMzhFNjEwMDdD
RDMzRCAvKiBXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDliMTBhNTA0MmRkYzU3
YTdjMGNiNTIyYTE2NmE5NmUxODVlYzRjYTAuLjRiNDk4NzBjNWYyNTRhZTg2MmVmOTM3OWI0ZmJm
NWExMDVmODVjYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNy0wNS0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSB3ZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29u
IGRlbGVnYXRlIHRvIHdlYlByb2Nlc3NEaWRUZXJtaW5hdGUgYW5kIHN0b3AgY2FsbGluZyB3ZWJQ
cm9jZXNzRGlkQ3Jhc2ggZm9yIGNsaWVudCB0ZXJtaW5hdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTYyNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZCBBUEkgdGVzdCBjb3ZlcmFnZSB0
byBjb3ZlciBjcmFzaGVzIGluIGFkZGl0aW9uIHRvIHRlcm1pbmF0aW9ucyByZXF1ZXN0ZWQgYnkg
dGhlIGNsaWVudC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9Qcm9jZXNzRGlkVGVybWluYXRlLmNwcDogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9Qcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uLmNwcC4KKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OndlYlByb2Nlc3NXYXNUZXJtaW5hdGVkQnlDbGllbnQpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6d2ViUHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDQtMjYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbV2ViQ3J5cHRvXSBBZGQgYW4gYXBpIHRlc3QgZm9yIHRlc3Rp
bmcgd3JhcHBpbmcvdW53cmFwcGluZyBzZXJpYWxpemVkIGNyeXB0byBrZXlzCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGE4ODdlMTU1ODc1OGE1MTdkYjAyZWNhM2Q5YmRiZTBhMGQ1OWMzZjQu
Ljg1YzcwMTViOWFmYzEzNGQwMGNlYTllZjg0OGZhNTU4NWVjY2IwYmQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMjYsNyArMTI2LDcgQEAKIAkJM0ZCRDFCNEExRDNENjZBQjAwRTZENkZB
IC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkQxQjQ5MUQzOUQxREIwMEU2RDZG
QSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLzsgfTsKIAkJNDQ4RDdFNDcx
RUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDhEN0U0NTFFQTZDNTU1MDBF
Q0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCAqLzsgfTsKIAkJNDYzOTdCOTUx
REMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM5N0I5NDFEQzJDODUwMDA5QTc4QUUgLyogRE9NTm9kZS5t
bSAqLzsgfTsKLQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nlc3NEaWRDcmFzaFdp
dGhSZWFzb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24u
Y3BwICovOyB9OworCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1p
bmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjQ3QjEyNTFFQkEzQjczMDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAgKi87IH07
CiAJCTQ2QzUxOURBMUQzNTVBQjIwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzUxOUQ4
MUQzNTVBNzMwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSAqLzsgfTsKIAkJ
NDZDNTE5RTYxRDM1NjNGRDAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZD
NTE5RTIxRDM1NjI5NjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmh0bWwgKi87
IH07CiAJCTQ2QzUxOUU3MUQzNTYzRkQwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmll
cy5sb2NhbHN0b3JhZ2UgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDZDNTE5RTMxRDM1NjI5NjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxF
bnRyaWVzLmxvY2Fsc3RvcmFnZSAqLzsgfTsKQEAgLTEwNjAsNyArMTA2MCw3IEBACiAJCTQ0OEQ3
RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAwNDg1
MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0NjQ3QjEyNTFFQkEzQjczMDA0MUQ3RUYgLyogUHJvY2Vzc0RpZENyYXNoV2l0aFJl
YXNvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9jZXNzRGlk
Q3Jhc2hXaXRoUmVhc29uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY0N0Ix
MjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzUxOUQ4MUQzNTVBNzMwMERBQTUxQSAvKiBMb2Nh
bFN0b3JhZ2VOdWxsRW50cmllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkM1MTlFMjFEMzU2Mjk2MDBEQUE1MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJp
ZXMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IExvY2FsU3RvcmFnZU51bGxFbnRy
aWVzLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzUxOUUzMUQzNTYyOTYw
MERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5sb2NhbHN0b3JhZ2UgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gTG9j
YWxTdG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9yYWdlOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjEwOCw3ICsyMTA4LDcgQEAKIAkJCQkwNzY2REQxRjFBNUFENTIwMDAyM0UzQkIg
LyogUGVuZGluZ0FQSVJlcXVlc3RVUkwuY3BwICovLAogCQkJCTMzM0I5Q0UxMTI3N0YyMzEwMEZF
RkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovLAogCQkJCUY2RkREREQyMTQyNDFB
RDQwMDRGMTcyOSAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5j
cHAgKi8sCi0JCQkJNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRDcmFzaFdp
dGhSZWFzb24uY3BwICovLAorCQkJCTQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNz
RGlkVGVybWluYXRlLmNwcCAqLywKIAkJCQk4QTNBRjkzQTE2QzlFRDI3MDBEMjQ4QzEgLyogUmVs
b2FkUGFnZUFmdGVyQ3Jhc2guY3BwICovLAogCQkJCTJERDdEM0E5MTc4MjA1RDAwMDI2RTFFMyAv
KiBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAgKi8sCiAJCQkJOEEyQzc1MEQxNkNF
RDk1NTAwMjRGMzUyIC8qIFJlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwICovLApAQCAtMjg1Miw3
ICsyODUyLDcgQEAKIAkJCQk3Q0NFN0VFRTFBNDExQUU2MDA0NDdDNEMgLyogRG93bmxvYWREZWNp
ZGVEZXN0aW5hdGlvbkNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0QkZBNjhFMUU0QUQw
ODAwMDE1NDI5OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUExNTUwMjJBMUUwNTAyMEIwMEEyNEM1NyAvKiBEdXBsaWNhdGVDb21wbGV0aW9uSGFu
ZGxlckNhbGxzLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VG
IC8qIFByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDY0
N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NDRTdFQkUxQTQxMUE3RTAwNDQ3QzRDIC8qIER5bmFtaWNEZXZpY2VTY2Fs
ZUZhY3Rvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJGODkyMURENTk5QjYwMEIwMDMyOCAv
KiBFYXJseUtWT0NyYXNoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAxQTQxMUE5QTAw
NDQ3QzRDIC8qIEVkaXRvckNvbW1hbmRzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNv
bi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNo
V2l0aFJlYXNvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3YWVhNWVmNDkz
MmJmMTQ3OWExYzdkYTUyZDJmZGIyNzZiNjIzMGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1By
b2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFdLX0hBVkVfQ19TUEkK
LQotI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1XZWJW
aWV3LmgiCi0jaW5jbHVkZSAiVGVzdC5oIgotI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5o
PgotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLXN0YXRpYyBib29sIGxvYWRCZWZvcmVD
cmFzaCA9IGZhbHNlOwotc3RhdGljIGJvb2wgY3Jhc2hIYW5kbGVyQ2FsbGVkID0gZmFsc2U7Ci0K
LXN0YXRpYyB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdh
dGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCi17Ci0gICAgaWYgKCFsb2FkQmVmb3JlQ3Jhc2gpIHsKLSAgICAgICAgbG9hZEJlZm9y
ZUNyYXNoID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEVYUEVDVF9UUlVF
KGZhbHNlKTsKLX0KLQotc3RhdGljIHZvaWQgZGlkQ3Jhc2hXaXRoUmVhc29uKFdLUGFnZVJlZiBw
YWdlLCBXS1Byb2Nlc3NDcmFzaFJlYXNvbiByZWFzb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Ci17Ci0gICAgLy8gVGVzdCBpZiBmaXJzdCBsb2FkIGFjdHVhbGx5IHdvcmtlZC4KLSAgICBFWFBF
Q1RfVFJVRShsb2FkQmVmb3JlQ3Jhc2gpOwotCi0gICAgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVk
IG9uY2UuCi0gICAgRVhQRUNUX0ZBTFNFKGNyYXNoSGFuZGxlckNhbGxlZCk7Ci0KLSAgICBFWFBF
Q1RfRVEoa1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25SZXF1ZXN0ZWRCeUNsaWVudCwg
cmVhc29uKTsKLQotICAgIGNyYXNoSGFuZGxlckNhbGxlZCA9IHRydWU7Ci19Ci0KLVRFU1QoV2Vi
S2l0MiwgUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50KQotewotICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVh
dGUoKSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7Ci0KLSAg
ICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjEgbmF2aWdhdGlvbkNsaWVudDsKLSAgICBtZW1zZXQo
Jm5hdmlnYXRpb25DbGllbnQsIDAsIHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7Ci0gICAgbmF2
aWdhdGlvbkNsaWVudC5iYXNlLnZlcnNpb24gPSAxOwotICAgIG5hdmlnYXRpb25DbGllbnQuZGlk
RmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247Ci0gICAgbmF2aWdhdGlvbkNs
aWVudC53ZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uID0gZGlkQ3Jhc2hXaXRoUmVhc29uOwot
Ci0gICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdlKCksICZuYXZp
Z2F0aW9uQ2xpZW50LmJhc2UpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFk
b3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikpOwotICAgIC8v
IExvYWQgYSBibGFuayBwYWdlIGFuZCBuZXh0IGtpbGxzIFdlYlByb2Nlc3MuCi0gICAgV0tQYWdl
TG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmxvYWRC
ZWZvcmVDcmFzaCk7Ci0gICAgV0tQYWdlVGVybWluYXRlKHdlYlZpZXcucGFnZSgpKTsKLQotICAg
IFV0aWw6OnJ1bigmY3Jhc2hIYW5kbGVyQ2FsbGVkKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9Qcm9jZXNzRGlkVGVybWluYXRlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9Qcm9jZXNzRGlkVGVybWluYXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmU0NmE5
ZThkZTFiYWRkMTQwYjJmMjc1NzA3NDBkOGJmZTRhY2M4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Byb2Nlc3NEaWRUZXJtaW5hdGUuY3BwCkBA
IC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
V0tfSEFWRV9DX1NQSQorCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisjaW5jbHVkZSA8V2ViS2l0
L1dLUGFnZVByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbmNs
dWRlIDxzaWduYWwuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9v
bCBsb2FkQmVmb3JlQ3Jhc2ggPSBmYWxzZTsKK3N0YXRpYyBib29sIGNsaWVudFRlcm1pbmF0aW9u
SGFuZGxlckNhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgY3Jhc2hIYW5kbGVyQ2FsbGVkID0g
ZmFsc2U7CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2Us
IFdLTmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKCFsb2FkQmVmb3JlQ3Jhc2gpIHsKKyAgICAgICAg
bG9hZEJlZm9yZUNyYXNoID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEVY
UEVDVF9UUlVFKGZhbHNlKTsKK30KKworc3RhdGljIHZvaWQgd2ViUHJvY2Vzc1dhc1Rlcm1pbmF0
ZWRCeUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVh
c29uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIC8vIFRlc3QgaWYgZmlyc3QgbG9h
ZCBhY3R1YWxseSB3b3JrZWQuCisgICAgRVhQRUNUX1RSVUUobG9hZEJlZm9yZUNyYXNoKTsKKwor
ICAgIC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlLgorICAgIEVYUEVDVF9GQUxTRShjbGll
bnRUZXJtaW5hdGlvbkhhbmRsZXJDYWxsZWQpOworCisgICAgRVhQRUNUX0VRKGtXS1Byb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50LCByZWFzb24pOworCisgICAgY2xpZW50
VGVybWluYXRpb25IYW5kbGVyQ2FsbGVkID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2ViUHJv
Y2Vzc0NyYXNoZWQoV0tQYWdlUmVmIHBhZ2UsIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICAvLyBUZXN0IGlmIGZpcnN0IGxv
YWQgYWN0dWFsbHkgd29ya2VkLgorICAgIEVYUEVDVF9UUlVFKGxvYWRCZWZvcmVDcmFzaCk7CisK
KyAgICAvLyBTaG91bGQgb25seSBiZSBjYWxsZWQgb25jZS4KKyAgICBFWFBFQ1RfRkFMU0UoY3Jh
c2hIYW5kbGVyQ2FsbGVkKTsKKworICAgIEVYUEVDVF9FUShrV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb25DcmFzaCwgcmVhc29uKTsKKworICAgIGNyYXNoSGFuZGxlckNhbGxlZCA9IHRydWU7Cit9
CisKK1RFU1QoV2ViS2l0MiwgUHJvY2Vzc0RpZFRlcm1pbmF0ZVJlcXVlc3RlZEJ5Q2xpZW50KQor
eworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRl
eHRDcmVhdGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CisKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjEgbmF2aWdhdGlvbkNsaWVudDsKKyAgICBt
ZW1zZXQoJm5hdmlnYXRpb25DbGllbnQsIDAsIHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7Cisg
ICAgbmF2aWdhdGlvbkNsaWVudC5iYXNlLnZlcnNpb24gPSAxOworICAgIG5hdmlnYXRpb25DbGll
bnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247CisgICAgbmF2aWdh
dGlvbkNsaWVudC53ZWJQcm9jZXNzRGlkVGVybWluYXRlID0gd2ViUHJvY2Vzc1dhc1Rlcm1pbmF0
ZWRCeUNsaWVudDsKKworICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcu
cGFnZSgpLCAmbmF2aWdhdGlvbkNsaWVudC5iYXNlKTsKKworICAgIGxvYWRCZWZvcmVDcmFzaCA9
IGZhbHNlOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFdLVVJMQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIpKTsKKyAgICAvLyBMb2FkIGEgYmxhbmsg
cGFnZSBhbmQgbmV4dCBraWxscyBXZWJQcm9jZXNzLgorICAgIFdLUGFnZUxvYWRVUkwod2ViVmll
dy5wYWdlKCksIHVybC5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZsb2FkQmVmb3JlQ3Jhc2gpOwor
CisgICAgV0tQYWdlVGVybWluYXRlKHdlYlZpZXcucGFnZSgpKTsKKworICAgIFV0aWw6OnJ1bigm
Y2xpZW50VGVybWluYXRpb25IYW5kbGVyQ2FsbGVkKTsKK30KKworVEVTVChXZWJLaXQyLCBQcm9j
ZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbkNyYXNoKQoreworICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7CisgICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBXS1BhZ2VOYXZpZ2F0aW9u
Q2xpZW50VjEgbmF2aWdhdGlvbkNsaWVudDsKKyAgICBtZW1zZXQoJm5hdmlnYXRpb25DbGllbnQs
IDAsIHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7CisgICAgbmF2aWdhdGlvbkNsaWVudC5iYXNl
LnZlcnNpb24gPSAxOworICAgIG5hdmlnYXRpb25DbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9
IGRpZEZpbmlzaE5hdmlnYXRpb247CisgICAgbmF2aWdhdGlvbkNsaWVudC53ZWJQcm9jZXNzRGlk
VGVybWluYXRlID0gd2ViUHJvY2Vzc0NyYXNoZWQ7CisKKyAgICBXS1BhZ2VTZXRQYWdlTmF2aWdh
dGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJm5hdmlnYXRpb25DbGllbnQuYmFzZSk7CisKKyAg
ICBsb2FkQmVmb3JlQ3Jhc2ggPSBmYWxzZTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJs
ID0gYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSk7Cisg
ICAgLy8gTG9hZCBhIGJsYW5rIHBhZ2UgYW5kIG5leHQga2lsbHMgV2ViUHJvY2Vzcy4KKyAgICBX
S1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigm
bG9hZEJlZm9yZUNyYXNoKTsKKworICAgIC8vIFNpbXVsYXRlIGEgY3Jhc2ggYnkga2lsbGluZyB0
aGUgV2ViUHJvY2Vzcy4KKyAgICBraWxsKFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKHdlYlZp
ZXcucGFnZSgpKSwgU0lHS0lMTCk7CisKKyAgICBVdGlsOjpydW4oJmNyYXNoSGFuZGxlckNhbGxl
ZCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309180</attachid>
            <date>2017-05-05 10:00:22 -0700</date>
            <delta_ts>2017-05-05 11:11:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171624-20170505100021.patch</filename>
            <type>text/plain</type>
            <size>50491</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTdkYTFmOTE2ZGEyMWJh
ZGNmMTg3ZmVjMjg3NmE0NmI5MTkzNTIwOS4uZDQzYzA3YTBlZjU1OTIzNTZiMmRlNjA2NzE4MGM1
NWVjODFjMzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE3LTA1LTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHdlYlByb2Nlc3NE
aWRDcmFzaFdpdGhSZWFzb24gY2FsbGJhY2sgdG8gd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZSBhbmQg
c3RvcCBjYWxsaW5nIHdlYlByb2Nlc3NEaWRDcmFzaCBmb3IgY2xpZW50IHRlcm1pbmF0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNjI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICBGb2xsb3ctdXAg
Zml4ZXMgYWZ0ZXIgcjIxNjEyOSBiYXNlZCBvbiBmZWVkYmFjayBJIGhhdmUgcmVjZWl2ZWQ6Cisg
ICAgICAgIC0gUmVuYW1lIHdlYlByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24gY2FsbGJhY2sgZnVu
Y3Rpb24gdG8gd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZSBnaXZlbiB0aGF0IHRoaXMgaXMgY2FsbGVk
CisgICAgICAgICAgZm9yIG5vbi1jcmFzaGVzIChlLmcuIHRlcm1pbmF0aW9ucyByZXF1ZXN0ZWQg
YnkgdGhlIGNsaWVudCkuCisgICAgICAgIC0gUmVuYW1lIFdLUHJvY2Vzc0NyYXNoUmVhc29uIC8g
UHJvY2Vzc0NyYXNoUmVhc29uIHRvIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIC8gUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uCisgICAgICAgICAgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG5l
dyBuYW1pbmcuCisgICAgICAgIC0gU3RvcCBjYWxsaW5nIHByb2Nlc3NEaWRDcmFzaCAvIHdlYlBy
b2Nlc3NEaWRDcmFzaCBmb3IgdGVybWluYXRpb25zIHJlcXVlc3RlZCBieSB0aGUgY2xpZW50LCB0
byBtYWludGFpbgorICAgICAgICAgIHByZS1yMjE2MTI5IGJlaGF2aW9yLiBUaG9zZSBhcmUgbm90
IGNyYXNoZXMgKFRoZSBjbGllbnQgdXNlZCBhbiBBUEkgc3VjaCBhcyBXS1BhZ2VUZXJtaW5hdGVQ
cm9jZXNzKCkpLgorICAgICAgICAgIHdlYlByb2Nlc3NEaWRUZXJtaW5hdGUgd2lsbCBzdGlsbCBi
ZSBjYWxsZWQgdGhvdWdoLgorICAgICAgICAtIEZpeCBhIGJ1ZyB3aGVyZSAtIGZvciB0ZXJtaW5h
dGlvbnMgZHVlIHRvIHJlc291cmNlIGxpbWl0cyAtIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZENy
YXNoKCkgd2FzIGdldHRpbmcKKyAgICAgICAgICBjYWxsZWQgdHdpY2U6IEZpcnN0IGJ5IFdlYlBy
b2Nlc3NQcm94eTo6cmVxdWVzdFRlcm1pbmF0aW9uKCkgd2l0aCByZWFzb24gIlJlcXVlc3RlZEJ5
Q2xpZW50IiB0aGVuIGEKKyAgICAgICAgICBzZWNvbmQgdGltZSBieSBXZWJQcm9jZXNzUHJveHk6
OnRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKCkgd2l0aCB0aGUgcHJvcGVyIHJl
YXNvbi4KKworICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzVGVybWluYXRpb25SZWFzb24uaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQ
STo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZFRlcm1pbmF0ZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VUZXJtaW5h
dGUpOgorICAgICAgICAoV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9raWxsV2ViQ29udGVudFByb2Nlc3NBbmRSZXNldFN0YXRlXSk6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6cHJvY2Vzc0RpZFRlcm1pbmF0ZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
cHJvY2Vzc0RpZFRlcm1pbmF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpyZXF1ZXN0VGVybWluYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OmxvZ0RpYWdub3N0aWNNZXNzYWdlRm9yUmVzb3VyY2VMaW1pdFRlcm1pbmF0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRBY3RpdmVNZW1v
cnlMaW1pdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkSW5h
Y3RpdmVNZW1vcnlMaW1pdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlk
RXhjZWVkQmFja2dyb3VuZENQVUxpbWl0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDE3LTA1LTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXSBBc3NlcnRpb24gZmFpbHVyZSBpbiBJbnNwZWN0b3I6OlJlbW90ZUlu
c3BlY3Rvcjo6c2V0UmVtb3RlSW5zcGVjdG9yQ2xpZW50IHdoZW4gZGlzcG9zaW5nIFdlYktpdFdl
YkNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzQ3Jhc2hS
ZWFzb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzQ3Jhc2hSZWFzb24uaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQxN2Y3MDhmMzk1NGNjODE4ZWE0MjU2ODJlMzA0
OTYyZGM3NTE5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0NyYXNoUmVhc29uLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1lbnVtIGNsYXNzIFByb2Nlc3NDcmFzaFJlYXNvbiB7Ci0gICAgVGVybWlu
YXRpb25EdWVUb01lbW9yeVVzYWdlLAotICAgIFRlcm1pbmF0aW9uRHVlVG9DUFVVc2FnZSwKLSAg
ICBUZXJtaW5hdGlvblJlcXVlc3RlZEJ5Q2xpZW50LAotICAgIE90aGVyCi19OwotCi19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNmExZjQ5MmVjNGZjMDM0OThjNGQyZWNkOTAzNDBhMmQ1NDlhYjVmYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzVGVybWluYXRpb25SZWFzb24u
aApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitlbnVtIGNsYXNzIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiB7CisgICAg
RXhjZWVkZWRNZW1vcnlMaW1pdCwKKyAgICBFeGNlZWRlZENQVUxpbWl0LAorICAgIFJlcXVlc3Rl
ZEJ5Q2xpZW50LAorICAgIENyYXNoCit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCmluZGV4IDhhM2UxYTdkYTk2YjZjZDUy
YTlkNDU0NmViMWI4OGY1MDAyMDRjNjMuLmU0NTk0ODdjYzgyZWZjOWZlYjhkYjA3MjQyYjVkZDA2
MmE1OWE2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpbmNsdWRlICJBUElEYXRhLmgi
CiAjaW5jbHVkZSAiUGx1Z2luTW9kdWxlSW5mby5oIgotI2luY2x1ZGUgIlByb2Nlc3NDcmFzaFJl
YXNvbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIgogI2luY2x1ZGUg
IlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKQEAgLTgzLDcgKzgzLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkqKSB7IH0KIAogICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbiBzaG91bGQgbm90IGJl
IHBhcnQgb2YgdGhpcyBjbGllbnQuCi0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UHJvY2Vzc0NyYXNoUmVhc29uKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZFRlcm1pbmF0ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBh
Z2VQcm94eSYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKaW5kZXggZDk0YTllOWQyZGRiZDNmOTQxODNlYThiYThlNGVkMGIyNmExMmI2Mi4uMWI2NmFi
MzY2NTFhMDQwNDA5ZWI0YTBmOGFkMDIzZjM1MjAxMjM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIkhU
VFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCi0jaW5jbHVk
ZSAiUHJvY2Vzc0NyYXNoUmVhc29uLmgiCisjaW5jbHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNoZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSAiV0tC
dW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0LmgiCkBAIC00MSw3ICs0
MSw3IEBACiAjaW5jbHVkZSAiV0tQYWdlLmgiCiAjaW5jbHVkZSAiV0tQcmVmZXJlbmNlc1JlZi5o
IgogI2luY2x1ZGUgIldLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgiCi0jaW5jbHVkZSAiV0tQcm9j
ZXNzQ3Jhc2hSZWFzb24uaCIKKyNpbmNsdWRlICJXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5o
IgogI2luY2x1ZGUgIldLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCIKICNpbmNsdWRlICJXS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCkBAIC0yMzUs
MjAgKzIzNSwyMCBAQCBpbmxpbmUgV0tDYWNoZU1vZGVsIHRvQVBJKENhY2hlTW9kZWwgY2FjaGVN
b2RlbCkKICAgICByZXR1cm4ga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOwogfQogCi1pbmxp
bmUgV0tQcm9jZXNzQ3Jhc2hSZWFzb24gdG9BUEkoUHJvY2Vzc0NyYXNoUmVhc29uIHJlYXNvbikK
K2lubGluZSBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiB0b0FQSShQcm9jZXNzVGVybWluYXRp
b25SZWFzb24gcmVhc29uKQogewogICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2FzZSBQcm9j
ZXNzQ3Jhc2hSZWFzb246OlRlcm1pbmF0aW9uRHVlVG9NZW1vcnlVc2FnZToKLSAgICAgICAgcmV0
dXJuIGtXS1Byb2Nlc3NDcmFzaFJlYXNvblRlcm1pbmF0aW9uRHVlVG9NZW1vcnlVc2FnZTsKLSAg
ICBjYXNlIFByb2Nlc3NDcmFzaFJlYXNvbjo6VGVybWluYXRpb25EdWVUb0NQVVVzYWdlOgotICAg
ICAgICByZXR1cm4ga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25EdWVUb0NQVVVzYWdl
OwotICAgIGNhc2UgUHJvY2Vzc0NyYXNoUmVhc29uOjpUZXJtaW5hdGlvblJlcXVlc3RlZEJ5Q2xp
ZW50OgotICAgICAgICByZXR1cm4ga1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25SZXF1
ZXN0ZWRCeUNsaWVudDsKLSAgICBjYXNlIFByb2Nlc3NDcmFzaFJlYXNvbjo6T3RoZXI6Ci0gICAg
ICAgIHJldHVybiBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25PdGhlcjsKKyAgICBjYXNlIFByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRNZW1vcnlMaW1pdDoKKyAgICAgICAgcmV0dXJuIGtX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbkV4Y2VlZGVkTWVtb3J5TGltaXQ7CisgICAgY2FzZSBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQ1BVTGltaXQ6CisgICAgICAgIHJldHVy
biBrV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb25FeGNlZWRlZENQVUxpbWl0OworICAgIGNhc2Ug
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeUNsaWVudDoKKyAgICAgICAgcmV0
dXJuIGtXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50OworICAgIGNh
c2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpDcmFzaDoKKyAgICAgICAgcmV0dXJuIGtXS1By
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbkNyYXNoOwogICAgIH0KIAotICAgIHJldHVybiBrV0tQcm9j
ZXNzQ3Jhc2hSZWFzb25PdGhlcjsKKyAgICByZXR1cm4ga1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uQ3Jhc2g7CiB9CiAKIGlubGluZSBGb250U21vb3RoaW5nTGV2ZWwgdG9Gb250U21vb3RoaW5n
TGV2ZWwoV0tGb250U21vb3RoaW5nTGV2ZWwgd2tMZXZlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYTg4MGQzZmZhZGRmMDc5MTc2Yzk1YmYyZGY2MzNl
ZDMzODU1YjY3MS4uMDYyMjJhYWE1ZmUzYjViNGIzZjI0ZjllY2MwMzhlOTViOWI4ZjFhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTQyMiw3ICs0MjIs
NyBAQCB2b2lkIFdLUGFnZVNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoV0tQYWdlUmVmIHBhZ2VS
ZWYsIFdLU3RyaW5nUmVmIGVuY29kaW5nTmFtZQogCiB2b2lkIFdLUGFnZVRlcm1pbmF0ZShXS1Bh
Z2VSZWYgcGFnZVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPnRlcm1pbmF0ZVByb2Nlc3Mo
KTsKKyAgICB0b0ltcGwocGFnZVJlZiktPnByb2Nlc3MoKS5yZXF1ZXN0VGVybWluYXRpb24oUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeUNsaWVudCk7CiB9CiAKIFdLU3RyaW5n
UmVmIFdLUGFnZUdldFNlc3Npb25IaXN0b3J5VVJMVmFsdWVUeXBlKCkKQEAgLTI0MDAsMTMgKzI0
MDAsMTUgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChXS1BhZ2VSZWYgcGFn
ZVJlZiwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWUKICAgICAgICAgICAgIG1fY2xpZW50LmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0b0FQSSgmcGFnZSksIHRvQVBJKGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAg
fQogCi0gICAgICAgIHZvaWQgcHJvY2Vzc0RpZENyYXNoKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
S2l0OjpQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29uKSBvdmVycmlkZQorICAgICAgICB2b2lkIHBy
b2Nlc3NEaWRUZXJtaW5hdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJLaXQ6OlByb2Nlc3NUZXJt
aW5hdGlvblJlYXNvbiByZWFzb24pIG92ZXJyaWRlCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlm
IChtX2NsaWVudC53ZWJQcm9jZXNzRGlkQ3Jhc2gpCi0gICAgICAgICAgICAgICAgbV9jbGllbnQu
d2ViUHJvY2Vzc0RpZENyYXNoKHRvQVBJKCZwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKKyAgICAgICAgICAgIGlmIChtX2NsaWVudC53ZWJQcm9jZXNzRGlkVGVybWluYXRlKSB7Cisg
ICAgICAgICAgICAgICAgbV9jbGllbnQud2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZSh0b0FQSSgmcGFn
ZSksIHRvQVBJKHJlYXNvbiksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAobV9jbGllbnQu
d2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbikKLSAgICAgICAgICAgICAgICBtX2NsaWVudC53
ZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uKHRvQVBJKCZwYWdlKSwgdG9BUEkocmVhc29uKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgICAgIGlmIChtX2NsaWVudC53ZWJQ
cm9jZXNzRGlkQ3Jhc2ggJiYgcmVhc29uICE9IFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uOjpSZXF1ZXN0ZWRCeUNsaWVudCkKKyAgICAgICAgICAgICAgICBtX2NsaWVudC53ZWJQcm9j
ZXNzRGlkQ3Jhc2godG9BUEkoJnBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAg
ICAgICB9CiAKICAgICAgICAgUmVmUHRyPEFQSTo6RGF0YT4gd2ViQ3J5cHRvTWFzdGVyS2V5KFdl
YlBhZ2VQcm94eSYgcGFnZSkgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oCmluZGV4IGQ3MWQ0ZWI1YzRh
MTVjZjg1YTY3YmQwNTQxMDE4NGNmYWVhNGI1OWEuLmVkMTU0OGZmODVhYTIyNzIxODZlMzQ3NThk
NDJiNGU4MTJlNzAxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1
ZGUgPFdlYktpdC9XS1BhZ2VMb2FkVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tQbHVnaW5Mb2FkUG9s
aWN5Lmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLUHJvY2Vzc0NyYXNoUmVhc29uLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg+CiAKICNpZmRlZiBfX2NwbHVz
cGx1cwogZXh0ZXJuICJDIiB7CkBAIC02Niw3ICs2Niw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZU5hdmlnYXRpb25EaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDYWxsYmFjaykoV0tQ
YWdlCiAKIHR5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25XZWJQcm9jZXNzRGlkQ3Jhc2hD
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi10eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VOYXZpZ2F0aW9uV2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbkNh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tQcm9jZXNzQ3Jhc2hSZWFzb24gcmVhc29uLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZU5hdmlnYXRpb25XZWJQ
cm9jZXNzRGlkVGVybWluYXRlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1Byb2Nlc3NUZXJt
aW5hdGlvblJlYXNvbiByZWFzb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiB0eXBlZGVm
IFdLRGF0YVJlZiAoKldLUGFnZU5hdmlnYXRpb25Db3B5V2ViQ3J5cHRvTWFzdGVyS2V5Q2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICAKQEAgLTE0
MCw3ICsxNDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjEgewog
ICAgIFdLUGFnZU5hdmlnYXRpb25EaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90IGRp
ZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3Q7CiAKICAgICAvLyBWZXJzaW9uIDEuCi0g
ICAgV0tQYWdlTmF2aWdhdGlvbldlYlByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb25DYWxsYmFjayB3
ZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uOworICAgIFdLUGFnZU5hdmlnYXRpb25XZWJQcm9j
ZXNzRGlkVGVybWluYXRlQ2FsbGJhY2sgd2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZTsKIH0gV0tQYWdl
TmF2aWdhdGlvbkNsaWVudFYxOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Byb2Nlc3NDcmFzaFJlYXNvbi5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0NyYXNoUmVhc29uLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0NzYyMDNmNDIwZWY1YjkzODc5ZGVmMGRjZTVlZmIz
MjhjMThlNGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJvY2Vzc0NyYXNoUmVhc29uLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsK
LSNlbmRpZgotCi1lbnVtIHsKLSAgICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvbkR1
ZVRvTWVtb3J5VXNhZ2UgPSAwLAotICAgIGtXS1Byb2Nlc3NDcmFzaFJlYXNvblRlcm1pbmF0aW9u
RHVlVG9DUFVVc2FnZSwKLSAgICBrV0tQcm9jZXNzQ3Jhc2hSZWFzb25UZXJtaW5hdGlvblJlcXVl
c3RlZEJ5Q2xpZW50LAotICAgIGtXS1Byb2Nlc3NDcmFzaFJlYXNvbk90aGVyLAotfTsKLXR5cGVk
ZWYgdWludDMyX3QgV0tQcm9jZXNzQ3Jhc2hSZWFzb247Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwot
fQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMGU4NWE4NmY4ZGQw
YmIyMDMyYzY3ZGNjZTJjZDFlYzFhZDQ0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaApAQCAtMCww
ICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxzdGRpbnQu
aD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsK
KyAgICBrV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb25FeGNlZWRlZE1lbW9yeUxpbWl0ID0gMCwK
KyAgICBrV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb25FeGNlZWRlZENQVUxpbWl0LAorICAgIGtX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50LAorICAgIGtXS1Byb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbkNyYXNoLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tQcm9jZXNz
VGVybWluYXRpb25SZWFzb247CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDk1
MTkyNDZhZjJlOTVlMDUwOWIzYzBkNjNiYTMyNjZkNzk5NWYwM2EuLjkyMWUwOGZjOTk0NTYzOWEz
M2Q3NGVhMmFlMTFhZDY4ZmZkN2M1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zNzcyLDcgKzM3NzIsNyBAQCAtIChXS05hdmln
YXRpb24gKilfcmVsb2FkRXhwaXJlZE9ubHkKIAogLSAodm9pZClfa2lsbFdlYkNvbnRlbnRQcm9j
ZXNzQW5kUmVzZXRTdGF0ZQogewotICAgIF9wYWdlLT50ZXJtaW5hdGVQcm9jZXNzKCk7CisgICAg
X3BhZ2UtPnByb2Nlc3MoKS5yZXF1ZXN0VGVybWluYXRpb24oV2ViS2l0OjpQcm9jZXNzVGVybWlu
YXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApp
bmRleCAwYWQzNDc4MTFiOTVhMjAxNjgzNTg4MzZkYzQ1MTY1NTRhMzdmZGIxLi43YTljM2M1YjE4
YjA1YzEwZWNiYTdhYWVhNTAyMDZjNjQyNjlmZmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW1w
b3J0ICJBUElIaXN0b3J5Q2xpZW50LmgiCiAjaW1wb3J0ICJBUElOYXZpZ2F0aW9uQ2xpZW50Lmgi
CiAjaW1wb3J0ICJQYWdlTG9hZFN0YXRlLmgiCi0jaW1wb3J0ICJQcm9jZXNzQ3Jhc2hSZWFzb24u
aCIKKyNpbXBvcnQgIlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIgogI2ltcG9ydCAiUHJvY2Vz
c1Rocm90dGxlci5oIgogI2ltcG9ydCAiV2Vha09iakNQdHIuaCIKICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KQEAgLTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIGJvb2wgY2Fu
QXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJQYWdlUHJveHkmLCBXZWJQcm90
ZWN0aW9uU3BhY2UqKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoV2ViUGFnZVByb3h5JiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eSopIG92ZXJyaWRlOwotICAgICAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJveHkm
LCBQcm9jZXNzQ3Jhc2hSZWFzb24pIG92ZXJyaWRlOworICAgICAgICB2b2lkIHByb2Nlc3NEaWRU
ZXJtaW5hdGUoV2ViUGFnZVByb3h5JiwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSBvdmVycmlk
ZTsKICAgICAgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJQYWdlUHJveHkm
KSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdl
YlBhZ2VQcm94eSYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBhNDU5ODI5ZWYxMmJkYjhjYjk2MzUwZDY3
YzA2ODczNWQ0MGMwY2UxLi4wMjdkYjUwZWY0ZDk4NDYwMjNhYmJmNzVhMTk2YmNmMTM4ODQ0NGNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KQEAgLTcxMCw3ICs3MTAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlv
bkNsaWVudDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYlBhZwogICAgIFtz
dGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRl
bGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOndyYXBwZXIoKmF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKV07CiB9CiAKLXZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9j
ZXNzRGlkQ3Jhc2goV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6UHJvY2Vzc0Ny
YXNoUmVhc29uKQordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nl
c3NEaWRUZXJtaW5hdGUoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6UHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uKQogewogICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZp
Z2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0
ZSAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdXZWJQcm9jZXNzRGlkQ3Jhc2gpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTliZDY4NmUyNmRjNTEwYjMzOWI1OGQ5ZDYy
ODU1M2QyOGNkNGI1Yi4uZDM4NmY4OGJjY2EzYTAwNjhjZWZmNmU2MWIxMDA4Nzg2Zjg3MDAyMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI0MTAsMTYg
KzI0MTAsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShj
b25zdCBTdHJpbmcmIGVuY29kaW5nTmFtZSkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoZW5jb2RpbmdOYW1lKSwgbV9wYWdl
SUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dGVybWluYXRlUHJvY2VzcygpCi17Ci0gICAg
Ly8gTk9URTogVGhpcyB1c2VzIGEgY2hlY2sgb2YgbV9pc1ZhbGlkIHJhdGhlciB0aGFuIGNhbGxp
bmcgaXNWYWxpZCgpIHNpbmNlCi0gICAgLy8gd2Ugd2FudCB0aGlzIHRvIHJ1biBldmVuIGZvciBw
YWdlcyBiZWluZyBjbG9zZWQgb3IgdGhhdCBhbHJlYWR5IGNsb3NlZC4KLSAgICBpZiAoIW1faXNW
YWxpZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9wcm9jZXNzLT5yZXF1ZXN0VGVybWluYXRp
b24oKTsKLX0KLQogU2Vzc2lvblN0YXRlIFdlYlBhZ2VQcm94eTo6c2Vzc2lvblN0YXRlKGNvbnN0
IHN0ZDo6ZnVuY3Rpb248Ym9vbCAoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpPiYgZmlsdGVyKSBj
b25zdAogewogICAgIFNlc3Npb25TdGF0ZSBzZXNzaW9uU3RhdGU7CkBAIC01MzIwLDcgKzUzMTAs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvY2Vzc0lzUmVzcG9uc2l2ZSgpCiAg
ICAgbV9wYWdlTG9hZFN0YXRlLmRpZENoYW5nZVByb2Nlc3NJc1Jlc3BvbnNpdmUoKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaChQcm9jZXNzQ3Jhc2hSZWFzb24gcmVh
c29uKQordm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRUZXJtaW5hdGUoUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAgICBBU1NFUlQobV9pc1ZhbGlkKTsKIApAQCAtNTM0
Myw4ICs1MzMzLDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnByb2Nlc3NEaWRDcmFzaChQcm9jZXNz
Q3Jhc2hSZWFzb24gcmVhc29uKQogICAgIG5hdmlnYXRpb25TdGF0ZSgpLmNsZWFyQWxsTmF2aWdh
dGlvbnMoKTsKIAogICAgIGlmIChtX25hdmlnYXRpb25DbGllbnQpCi0gICAgICAgIG1fbmF2aWdh
dGlvbkNsaWVudC0+cHJvY2Vzc0RpZENyYXNoKCp0aGlzLCByZWFzb24pOwotICAgIGVsc2UKKyAg
ICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlkVGVybWluYXRlKCp0aGlzLCByZWFz
b24pOworICAgIGVsc2UgaWYgKHJlYXNvbiAhPSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJl
cXVlc3RlZEJ5Q2xpZW50KQogICAgICAgICBtX2xvYWRlckNsaWVudC0+cHJvY2Vzc0RpZENyYXNo
KCp0aGlzKTsKIAogICAgIGlmIChtX2NvbnRyb2xsZWRCeUF1dG9tYXRpb24pIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0YzhlZTU4MzI3OGRkMjUwYTZhMmU4
OGE5YjY4NjM1N2RkN2Y2M2M1Li5kZDkzZDAyY2EzNjZlNmVhMTlhODk4NjA1YmIzZDAzM2QzODI0
Nzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00MCw3ICs0
MCw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUGFnZUxvYWRTdGF0
ZS5oIgotI2luY2x1ZGUgIlByb2Nlc3NDcmFzaFJlYXNvbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbi5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNs
dWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCkBA
IC02ODcsOCArNjg3LDYgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGVzdGltYXRlZFByb2dyZXNz
KCkgY29uc3Q7CiAKLSAgICB2b2lkIHRlcm1pbmF0ZVByb2Nlc3MoKTsKLQogICAgIFNlc3Npb25T
dGF0ZSBzZXNzaW9uU3RhdGUoY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sIChXZWJCYWNrRm9yd2Fy
ZExpc3RJdGVtJik+JiA9IG51bGxwdHIpIGNvbnN0OwogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IHJlc3RvcmVGcm9tU2Vzc2lvblN0YXRlKFNlc3Npb25TdGF0ZSwgYm9vbCBuYXZpZ2F0ZSk7
CiAKQEAgLTg1OSw3ICs4NTcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByb2Nlc3NEaWRCZWNv
bWVVbnJlc3BvbnNpdmUoKTsKICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKCk7
Ci0gICAgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goUHJvY2Vzc0NyYXNoUmVhc29uKTsKKyAgICB2b2lk
IHByb2Nlc3NEaWRUZXJtaW5hdGUoUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKTsKICAgICB2b2lk
IHdpbGxDaGFuZ2VQcm9jZXNzSXNSZXNwb25zaXZlKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9j
ZXNzSXNSZXNwb25zaXZlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKaW5kZXggOTViNzRjY2ExNmM4YWYyMzdkY2QyOGIzM2MxNDVkM2JkNDBhZDg2
ZS4uODMwMTM1YzE1MDAyZTc4NDllMmE4OGVkMDFlMTBjNjM4NjQ1NGU3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTYwMCw3ICs2MDAsNyBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAgICBz
aHV0RG93bigpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBwYWdlcy5zaXplKCk7
IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHBhZ2VzW2ldLT5wcm9jZXNzRGlkQ3Jhc2goUHJvY2Vz
c0NyYXNoUmVhc29uOjpPdGhlcik7CisgICAgICAgIHBhZ2VzW2ldLT5wcm9jZXNzRGlkVGVybWlu
YXRlKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6Q3Jhc2gpOwogCiB9CiAKQEAgLTg0Nyw3ICs4
NDcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldAogICAgIH0pOwogfQogCi12b2lkIFdlYlBy
b2Nlc3NQcm94eTo6cmVxdWVzdFRlcm1pbmF0aW9uKCkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpy
ZXF1ZXN0VGVybWluYXRpb24oUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAg
ICBpZiAoc3RhdGUoKSA9PSBTdGF0ZTo6VGVybWluYXRlZCkKICAgICAgICAgcmV0dXJuOwpAQCAt
ODYzLDcgKzg2Myw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0VGVybWluYXRpb24o
KQogICAgIHNodXREb3duKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IHBhZ2Vz
LnNpemUoKTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgcGFnZXNbaV0tPnByb2Nlc3NEaWRDcmFz
aChQcm9jZXNzQ3Jhc2hSZWFzb246OlRlcm1pbmF0aW9uUmVxdWVzdGVkQnlDbGllbnQpOworICAg
ICAgICBwYWdlc1tpXS0+cHJvY2Vzc0RpZFRlcm1pbmF0ZShyZWFzb24pOwogfQogCiB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKQpAQCAtMTEyNyw1OSArMTEy
NywyNCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1Rlcm1pbmF0ZWQoKQogICAgIG1f
YmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIucHJvY2Vzc1Rlcm1pbmF0ZWQoKTsKIH0KIAot
c3RhdGljIFZlY3RvcjxSZWZQdHI8V2ViUGFnZVByb3h5Pj4gcGFnZXNDb3B5KFdURjo6SXRlcmF0
b3JSYW5nZTxXZWJQcm9jZXNzUHJveHk6OldlYlBhZ2VQcm94eU1hcDo6Y29uc3RfaXRlcmF0b3I6
OlZhbHVlcz4gcGFnZXMpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6bG9nRGlhZ25vc3RpY01lc3Nh
Z2VGb3JSZXNvdXJjZUxpbWl0VGVybWluYXRpb24oY29uc3QgU3RyaW5nJiBsaW1pdEtleSkKIHsK
LSAgICBWZWN0b3I8UmVmUHRyPFdlYlBhZ2VQcm94eT4+IHZlY3RvcjsKLSAgICBmb3IgKGF1dG8m
IHBhZ2UgOiBwYWdlcykKLSAgICAgICAgdmVjdG9yLmFwcGVuZChwYWdlKTsKLSAgICByZXR1cm4g
dmVjdG9yOwotfQotCi1zdGF0aWMgU3RyaW5nIGRpYWdub3N0aWNMb2dnaW5nS2V5Rm9yVGVybWlu
YXRpb25SZWFzb24oVGVybWluYXRpb25SZWFzb24gcmVhc29uKQotewotICAgIHN3aXRjaCAocmVh
c29uKSB7Ci0gICAgY2FzZSBUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRBY3RpdmVNZW1vcnlM
aW1pdDoKLSAgICAgICAgcmV0dXJuIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhjZWVkZWRBY3Rp
dmVNZW1vcnlMaW1pdEtleSgpOwotICAgIGNhc2UgVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVk
SW5hY3RpdmVNZW1vcnlMaW1pdDoKLSAgICAgICAgcmV0dXJuIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6ZXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0S2V5KCk7Ci0gICAgY2FzZSBUZXJtaW5hdGlv
blJlYXNvbjo6RXhjZWVkZWRCYWNrZ3JvdW5kQ1BVTGltaXQ6Ci0gICAgICAgIHJldHVybiBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkQmFja2dyb3VuZENQVUxpbWl0S2V5KCk7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19
Ci0KLXN0YXRpYyBQcm9jZXNzQ3Jhc2hSZWFzb24gdG9Qcm9jZXNzQ3Jhc2hSZWFzb24oVGVybWlu
YXRpb25SZWFzb24gcmVhc29uKQotewotICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2FzZSBU
ZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdDoKLSAgICBjYXNlIFRl
cm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQ6Ci0gICAgICAgIHJl
dHVybiBQcm9jZXNzQ3Jhc2hSZWFzb246OlRlcm1pbmF0aW9uRHVlVG9NZW1vcnlVc2FnZTsKLSAg
ICBjYXNlIFRlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEJhY2tncm91bmRDUFVMaW1pdDoKLSAg
ICAgICAgcmV0dXJuIFByb2Nlc3NDcmFzaFJlYXNvbjo6VGVybWluYXRpb25EdWVUb0NQVVVzYWdl
OwotICAgIH0KLSAgICByZXR1cm4gUHJvY2Vzc0NyYXNoUmVhc29uOjpPdGhlcjsKLX0KLQotdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKFRl
cm1pbmF0aW9uUmVhc29uIHJlYXNvbikKLXsKLSAgICBmb3IgKGF1dG8mIHBhZ2UgOiBwYWdlc0Nv
cHkocGFnZXMoKSkpIHsKLSAgICAgICAgcGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpzaW11bGF0ZWRQYWdlQ3Jhc2hLZXkoKSwgZGlhZ25vc3RpY0xvZ2dp
bmdLZXlGb3JUZXJtaW5hdGlvblJlYXNvbihyZWFzb24pLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAg
ICAgICAgcGFnZS0+dGVybWluYXRlUHJvY2VzcygpOwotICAgICAgICBwYWdlLT5wcm9jZXNzRGlk
Q3Jhc2godG9Qcm9jZXNzQ3Jhc2hSZWFzb24ocmVhc29uKSk7Ci0gICAgfQorICAgIGlmIChwYWdl
Q291bnQoKSkKKyAgICAgICAgKCpwYWdlcygpLmJlZ2luKCkpLT5sb2dEaWFnbm9zdGljTWVzc2Fn
ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNpbXVsYXRlZFBhZ2VDcmFzaEtleSgpLCBsaW1pdEtl
eSwgU2hvdWxkU2FtcGxlOjpObyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNl
ZWRBY3RpdmVNZW1vcnlMaW1pdCgpCiB7CiAgICAgUkVMRUFTRV9MT0dfRVJST1IoUGVyZm9ybWFu
Y2VMb2dnaW5nLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRpZEV4Y2VlZEFjdGl2ZU1lbW9yeUxp
bWl0KCkgVGVybWluYXRpbmcgV2ViUHJvY2VzcyB0aGF0IGhhcyBleGNlZWRlZCB0aGUgYWN0aXZl
IG1lbW9yeSBsaW1pdCIsIHRoaXMpOwotICAgIHRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNl
TGltaXRzKFRlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEFjdGl2ZU1lbW9yeUxpbWl0KTsKKyAg
ICBsb2dEaWFnbm9zdGljTWVzc2FnZUZvclJlc291cmNlTGltaXRUZXJtaW5hdGlvbihEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkQWN0aXZlTWVtb3J5TGltaXRLZXkoKSk7CisgICAgcmVx
dWVzdFRlcm1pbmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRNZW1vcnlM
aW1pdCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRJbmFjdGl2ZU1lbW9y
eUxpbWl0KCkKIHsKICAgICBSRUxFQVNFX0xPR19FUlJPUihQZXJmb3JtYW5jZUxvZ2dpbmcsICIl
cCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkSW5hY3RpdmVNZW1vcnlMaW1pdCgpIFRlcm1p
bmF0aW5nIFdlYlByb2Nlc3MgdGhhdCBoYXMgZXhjZWVkZWQgdGhlIGluYWN0aXZlIG1lbW9yeSBs
aW1pdCIsIHRoaXMpOwotICAgIHRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKFRl
cm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQpOworICAgIGxvZ0Rp
YWdub3N0aWNNZXNzYWdlRm9yUmVzb3VyY2VMaW1pdFRlcm1pbmF0aW9uKERpYWdub3N0aWNMb2dn
aW5nS2V5czo6ZXhjZWVkZWRJbmFjdGl2ZU1lbW9yeUxpbWl0S2V5KCkpOworICAgIHJlcXVlc3RU
ZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkTWVtb3J5TGltaXQp
OwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRXhjZWVkQmFja2dyb3VuZENQVUxpbWl0
KCkKQEAgLTEyMDAsNyArMTE2NSw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRC
YWNrZ3JvdW5kQ1BVTGltaXQoKQogICAgIH0KIAogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBlcmZv
cm1hbmNlTG9nZ2luZywgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRFeGNlZWRCYWNrZ3JvdW5k
Q1BVTGltaXQoKSBUZXJtaW5hdGluZyBiYWNrZ3JvdW5kIFdlYlByb2Nlc3MgdGhhdCBoYXMgZXhj
ZWVkZWQgdGhlIGJhY2tncm91bmQgQ1BVIGxpbWl0IiwgdGhpcyk7Ci0gICAgdGVybWluYXRlUHJv
Y2Vzc0R1ZVRvUmVzb3VyY2VMaW1pdHMoVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVkQmFja2dy
b3VuZENQVUxpbWl0KTsKKyAgICBsb2dEaWFnbm9zdGljTWVzc2FnZUZvclJlc291cmNlTGltaXRU
ZXJtaW5hdGlvbihEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmV4Y2VlZGVkQmFja2dyb3VuZENQVUxp
bWl0S2V5KCkpOworICAgIHJlcXVlc3RUZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFz
b246OkV4Y2VlZGVkQ1BVTGltaXQpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRl
QmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDE1NGE2ZmRlN2NiZmQxNWUwMWM4OGM2YmQ0ODYxODI3
ZTU0YTAwNWYuLmJjNzhkMjMwZjRkYWEyZDk0MjQ5MDc2OTM1OWE3NGY5NGQzMTJjZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDEyICs1NSw2
IEBAIHN0cnVjdCBQbHVnaW5JbmZvOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotZW51bSBjbGFz
cyBUZXJtaW5hdGlvblJlYXNvbiB7Ci0gICAgRXhjZWVkZWRBY3RpdmVNZW1vcnlMaW1pdCwKLSAg
ICBFeGNlZWRlZEluYWN0aXZlTWVtb3J5TGltaXQsCi0gICAgRXhjZWVkZWRCYWNrZ3JvdW5kQ1BV
TGltaXQsCi19OwotCiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CkBAIC0x
NDIsNyArMTM2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9u
KCk7CiAgICAgYm9vbCBpc1N1ZGRlblRlcm1pbmF0aW9uRW5hYmxlZCgpIHsgcmV0dXJuICFtX251
bWJlck9mVGltZXNTdWRkZW5UZXJtaW5hdGlvbldhc0Rpc2FibGVkOyB9CiAKLSAgICB2b2lkIHJl
cXVlc3RUZXJtaW5hdGlvbigpOworICAgIHZvaWQgcmVxdWVzdFRlcm1pbmF0aW9uKFByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbik7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHRyYW5zZm9ybUhh
bmRsZXNUb09iamVjdHMoQVBJOjpPYmplY3QqKTsKICAgICBzdGF0aWMgUmVmUHRyPEFQSTo6T2Jq
ZWN0PiB0cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKEFQSTo6T2JqZWN0Kik7CkBAIC0yNDcsNyAr
MjQxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY2FuVGVybWluYXRlQ2hpbGRQcm9jZXNzKCk7
CiAKLSAgICB2b2lkIHRlcm1pbmF0ZVByb2Nlc3NEdWVUb1Jlc291cmNlTGltaXRzKFRlcm1pbmF0
aW9uUmVhc29uKTsKKyAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlRm9yUmVzb3VyY2VMaW1p
dFRlcm1pbmF0aW9uKGNvbnN0IFN0cmluZyYgbGltaXRLZXkpOwogCiAgICAgUmVzcG9uc2l2ZW5l
c3NUaW1lciBtX3Jlc3BvbnNpdmVuZXNzVGltZXI7CiAgICAgQmFja2dyb3VuZFByb2Nlc3NSZXNw
b25zaXZlbmVzc1RpbWVyIG1fYmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDUz
Yjk5YWZlNjMzZmI3ZmE4YmFjNmExNWM2ZGJhN2Y2MDQ1NGUxNy4uYzRmNjE4NmYyNGY1NWIxMTQ4
ZTI0MDZiMWY3NTc1Y2Y0MDYxYTU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODk4LDggKzg5OCw4IEBACiAJCTQxRkFGNUY4
MUUzQzEwMjEwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGQUY1RjYxRTNDMEI0NzAwMUFFNjc4IC8q
IExpYldlYlJUQ1Jlc29sdmVyLmggKi87IH07CiAJCTQxRkFGNUY5MUUzQzEwMjUwMDFBRTY3OCAv
KiBMaWJXZWJSVENSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MUZBRjVGNzFFM0MwQjQ3MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2
ZXIuY3BwICovOyB9OwogCQk0NDUwQUVDMDFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5
Q29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQ1MEFFQkYxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLzsgfTsK
LQkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ3RjFFQjk0
NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMg
LyogUHJvY2Vzc0NyYXNoUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc0NyYXNoUmVh
c29uLmggKi87IH07CisJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJt
aW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODExRUI5
NEVBRDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OwogCQk0NkEy
QjYwODFFNTY3NkE2MDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1Rp
bWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
QTJCNjA2MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNz
VGltZXIuY3BwICovOyB9OwogCQk0NkEyQjYwOTFFNTY3NkE2MDBDM0RFREEgLyogQmFja2dyb3Vu
ZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3Vu
ZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi87IH07CiAJCTRBM0NDMThBMTlCMDYzRTcw
MEQxNEFFRiAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTQxMEYzOTE5QUY3
QjA0MDAyRUJBQjUgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
ICovOyB9OwpAQCAtMzEyMCw4ICszMTIwLDggQEAKIAkJNDFGQUY1RjYxRTNDMEI0NzAwMUFFNjc4
IC8qIExpYldlYlJUQ1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IExpYldlYlJUQ1Jlc29sdmVyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNv
bHZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBRjVGNzFFM0MwQjQ3MDAx
QUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gTGliV2ViUlRDUmVzb2x2ZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMv
TGliV2ViUlRDUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUw
QUVCRjFEQzNGQUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBwYXRoID0g
Y29jb2EvU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcm9jZXNzQ3Jhc2hSZWFzb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJDIC8qIFBy
b2Nlc3NDcmFzaFJlYXNvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9j
ZXNzQ3Jhc2hSZWFzb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYzRkQ0N0Yx
RUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2QTJCNjA2MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNp
dmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFj
a2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZBMkI2MDcxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNz
UmVzcG9uc2l2ZW5lc3NUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
YWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEE0MTBGMzUxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC00OTMyLDcgKzQ5MzIsNyBAQAogCQkJCUJDQzQzQUI5MTI3Qjk1REMwMDMxN0YxNiAvKiBQ
bGF0Zm9ybVBvcHVwTWVudURhdGEuaCAqLywKIAkJCQlFMThDOTJGMzEyREI5RTcxMDBDRjJBRUIg
LyogUHJpbnRJbmZvLmNwcCAqLywKIAkJCQlFMUNDMUI4RTEyRDdFQURGMDA2MjU4MzggLyogUHJp
bnRJbmZvLmggKi8sCi0JCQkJNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJDIC8qIFByb2Nlc3NDcmFz
aFJlYXNvbi5oICovLAorCQkJCTQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24uaCAqLywKIAkJCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVz
b3VyY2VDYWNoZXNUb0NsZWFyLmggKi8sCiAJCQkJNDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8q
IFJUQ05ldHdvcmsuY3BwICovLAogCQkJCTQxMDQ4MkNDMURERDJGQjUwMEYwMDZEMCAvKiBSVENO
ZXR3b3JrLmggKi8sCkBAIC03MDEzLDcgKzcwMTMsNyBAQAogCQkJCUJDRDU5N0NGMTEyQjU2QUMw
MEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNwcCAqLywKIAkJCQlCQ0Q1OTdDRTExMkI1NkFDMDBF
QzhDMjMgLyogV0tQcmVmZXJlbmNlc1JlZi5oICovLAogCQkJCTc2MkI3NDg0MTIwQkJBMkQwMDgx
OTMzOSAvKiBXS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oICovLAotCQkJCTQ2M0ZENDdGMUVCOTQ1
ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oICovLAorCQkJCTQ2M0ZENDdGMUVC
OTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovLAogCQkJCTUx
MkY1OEYzMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25TcGFjZS5jcHAgKi8sCiAJCQkJ
NTEyRjU4RjQxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmggKi8sCiAJCQkJ
NTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCAqLywK
QEAgLTg1MTYsNyArODUxNiw3IEBACiAJCQkJMUFDMTMzODYxODU5MEM0NjAwRjNFQzA1IC8qIFJl
bW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0Nzkw
MTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ2M0ZENDgyMUVCOTRFQzAw
MEEyOTgyQyAvKiBQcm9jZXNzQ3Jhc2hSZWFzb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2M0ZE
NDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBNDE4N0IzQjdEMDA0
Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1OTQ3OUQxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ1Ry
ZWUuaCBpbiBIZWFkZXJzICovLApAQCAtODY3Myw3ICs4NjczLDcgQEAKIAkJCQkxQzhFMkEzNjEy
Nzc4NTI0MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFDOEUyODM0MTI3NUQ3MzgwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JQcm94eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgy
QyAvKiBXS1Byb2Nlc3NDcmFzaFJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDYzRkQ0ODAx
RUI5NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQzg5MUQ2NjE5QjEyNEZGMDBCQTc5REQgLyogV2ViSW5zcGVjdG9yVUkuaCBp
biBIZWFkZXJzICovLAogCQkJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0
b3JVSU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTVCQTgyQjFCQTM4RTYxMDA3Q0Qz
M0QgLyogV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MzMyNzFmZWZmM2I0MDgw
YjcxODY0MTk3ZWZlYWU4MWY2YjM5ZDZjLi5mODkxZDMxZjQ1MTQxMGEzYTBmYWJkOTI5YTQzNTgw
MWY1ZjUwYzYyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDUtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgd2ViUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbiBj
YWxsYmFjayB0byB3ZWJQcm9jZXNzRGlkVGVybWluYXRlIGFuZCBzdG9wIGNhbGxpbmcgd2ViUHJv
Y2Vzc0RpZENyYXNoIGZvciBjbGllbnQgdGVybWluYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE2MjQKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYW4gQmVybnN0ZWluLgorCisgICAgICAgIEV4dGVuZCBBUEkgdGVzdCBjb3ZlcmFnZSB0byBj
b3ZlciBjcmFzaGVzIGluIGFkZGl0aW9uIHRvIHRlcm1pbmF0aW9ucyByZXF1ZXN0ZWQgYnkgdGhl
IGNsaWVudC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9Qcm9jZXNzRGlkVGVybWluYXRlLmNwcDogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9Qcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uLmNwcC4KKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OndlYlByb2Nlc3NXYXNUZXJtaW5hdGVkQnlDbGllbnQpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6d2ViUHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisKIDIwMTctMDUtMDQgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIERSVCdzIHNldEF1ZGlvUmVzdWx0Q2FsbGJhY2soKSBhbmQgSURCUmVxdWVz
dDo6c2V0UmVzdWx0KCkgbmVlZCB0byBhY3F1aXJlIHRoZSBKU0xvY2suCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDQwY2I0ZDAwZWFiZTAzOWQ0YjczZmZjNjNhZDcyMzE4MDA4YzM5Y2EuLmMz
NWFiZjg0MTMwMWU5Y2Y2YWM0MDE4MmY2NjdiNmM3MzYxZDgyMWUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMjgsNyArMTI4LDcgQEAKIAkJM0ZCRDFCNEExRDNENjZBQjAwRTZENkZBIC8q
IEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkQxQjQ5MUQzOUQxREIwMEU2RDZGQSAv
KiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLzsgfTsKIAkJNDQ4RDdFNDcxRUE2
QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDhEN0U0NTFFQTZDNTU1MDBFQ0M3
NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCAqLzsgfTsKIAkJNDYzOTdCOTUxREMy
Qzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjM5N0I5NDFEQzJDODUwMDA5QTc4QUUgLyogRE9NTm9kZS5tbSAq
LzsgfTsKLQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nlc3NEaWRDcmFzaFdpdGhS
ZWFzb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24uY3Bw
ICovOyB9OworCQk0NjQ3QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ3
QjEyNTFFQkEzQjczMDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAgKi87IH07CiAJ
CTQ2QzUxOURBMUQzNTVBQjIwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzUxOUQ4MUQz
NTVBNzMwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSAqLzsgfTsKIAkJNDZD
NTE5RTYxRDM1NjNGRDAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNTE5
RTIxRDM1NjI5NjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmh0bWwgKi87IH07
CiAJCTQ2QzUxOUU3MUQzNTYzRkQwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5s
b2NhbHN0b3JhZ2UgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDZDNTE5RTMxRDM1NjI5NjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRy
aWVzLmxvY2Fsc3RvcmFnZSAqLzsgfTsKQEAgLTEwNjcsNyArMTA2Nyw3IEBACiAJCTQ0OEQ3RTQ1
MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRBNjIyQzExNEEwRTJCNjAwNDg1MTVC
IC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYz
OTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk0NjQ3QjEyNTFFQkEzQjczMDA0MUQ3RUYgLyogUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9jZXNzRGlkQ3Jh
c2hXaXRoUmVhc29uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY0N0IxMjUx
RUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzUxOUQ4MUQzNTVBNzMwMERBQTUxQSAvKiBMb2NhbFN0
b3JhZ2VOdWxsRW50cmllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NkM1MTlFMjFEMzU2Mjk2MDBEQUE1MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IExvY2FsU3RvcmFnZU51bGxFbnRyaWVz
Lmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QzUxOUUzMUQzNTYyOTYwMERB
QTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5sb2NhbHN0b3JhZ2UgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gTG9jYWxT
dG9yYWdlTnVsbEVudHJpZXMubG9jYWxzdG9yYWdlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjExOSw3ICsyMTE5LDcgQEAKIAkJCQkwNzY2REQxRjFBNUFENTIwMDAyM0UzQkIgLyog
UGVuZGluZ0FQSVJlcXVlc3RVUkwuY3BwICovLAogCQkJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNF
MyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovLAogCQkJCUY2RkREREQyMTQyNDFBRDQw
MDRGMTcyOSAvKiBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAg
Ki8sCi0JCQkJNDY0N0IxMjUxRUJBM0I3MzAwNDFEN0VGIC8qIFByb2Nlc3NEaWRDcmFzaFdpdGhS
ZWFzb24uY3BwICovLAorCQkJCTQ2NDdCMTI1MUVCQTNCNzMwMDQxRDdFRiAvKiBQcm9jZXNzRGlk
VGVybWluYXRlLmNwcCAqLywKIAkJCQk4QTNBRjkzQTE2QzlFRDI3MDBEMjQ4QzEgLyogUmVsb2Fk
UGFnZUFmdGVyQ3Jhc2guY3BwICovLAogCQkJCTJERDdEM0E5MTc4MjA1RDAwMDI2RTFFMyAvKiBS
ZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAgKi8sCiAJCQkJOEEyQzc1MEQxNkNFRDk1
NTAwMjRGMzUyIC8qIFJlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwICovLApAQCAtMjg2Myw3ICsy
ODYzLDcgQEAKIAkJCQk3Q0NFN0VFRTFBNDExQUU2MDA0NDdDNEMgLyogRG93bmxvYWREZWNpZGVE
ZXN0aW5hdGlvbkNyYXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0QkZBNjhFMUU0QUQwODAw
MDE1NDI5OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUExNTUwMjJBMUUwNTAyMEIwMEEyNEM1NyAvKiBEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxl
ckNhbGxzLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNDY0N0IxMjYxRUJBM0I4NTAwNDFEN0VGIC8q
IFByb2Nlc3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDY0N0Ix
MjYxRUJBM0I4NTAwNDFEN0VGIC8qIFByb2Nlc3NEaWRUZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0NDRTdFQkUxQTQxMUE3RTAwNDQ3QzRDIC8qIER5bmFtaWNEZXZpY2VTY2FsZUZh
Y3Rvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJGODkyMURENTk5QjYwMEIwMDMyOCAvKiBF
YXJseUtWT0NyYXNoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAxQTQxMUE5QTAwNDQ3
QzRDIC8qIEVkaXRvckNvbW1hbmRzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvbi5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUHJvY2Vzc0RpZENyYXNoV2l0
aFJlYXNvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3YWVhNWVmNDkzMmJm
MTQ3OWExYzdkYTUyZDJmZGIyNzZiNjIzMGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Byb2Nl
c3NEaWRDcmFzaFdpdGhSZWFzb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFdLX0hBVkVfQ19TUEkKLQot
I2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3
LmgiCi0jaW5jbHVkZSAiVGVzdC5oIgotI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgot
Ci1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLXN0YXRpYyBib29sIGxvYWRCZWZvcmVDcmFz
aCA9IGZhbHNlOwotc3RhdGljIGJvb2wgY3Jhc2hIYW5kbGVyQ2FsbGVkID0gZmFsc2U7Ci0KLXN0
YXRpYyB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLTmF2aWdhdGlv
blJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCi17Ci0gICAgaWYgKCFsb2FkQmVmb3JlQ3Jhc2gpIHsKLSAgICAgICAgbG9hZEJlZm9yZUNy
YXNoID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIEVYUEVDVF9UUlVFKGZh
bHNlKTsKLX0KLQotc3RhdGljIHZvaWQgZGlkQ3Jhc2hXaXRoUmVhc29uKFdLUGFnZVJlZiBwYWdl
LCBXS1Byb2Nlc3NDcmFzaFJlYXNvbiByZWFzb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17
Ci0gICAgLy8gVGVzdCBpZiBmaXJzdCBsb2FkIGFjdHVhbGx5IHdvcmtlZC4KLSAgICBFWFBFQ1Rf
VFJVRShsb2FkQmVmb3JlQ3Jhc2gpOwotCi0gICAgLy8gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9u
Y2UuCi0gICAgRVhQRUNUX0ZBTFNFKGNyYXNoSGFuZGxlckNhbGxlZCk7Ci0KLSAgICBFWFBFQ1Rf
RVEoa1dLUHJvY2Vzc0NyYXNoUmVhc29uVGVybWluYXRpb25SZXF1ZXN0ZWRCeUNsaWVudCwgcmVh
c29uKTsKLQotICAgIGNyYXNoSGFuZGxlckNhbGxlZCA9IHRydWU7Ci19Ci0KLVRFU1QoV2ViS2l0
MiwgUHJvY2Vzc0RpZENyYXNoV2l0aFJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50KQotewotICAgIFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUo
KSk7Ci0gICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7Ci0KLSAgICBX
S1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjEgbmF2aWdhdGlvbkNsaWVudDsKLSAgICBtZW1zZXQoJm5h
dmlnYXRpb25DbGllbnQsIDAsIHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7Ci0gICAgbmF2aWdh
dGlvbkNsaWVudC5iYXNlLnZlcnNpb24gPSAxOwotICAgIG5hdmlnYXRpb25DbGllbnQuZGlkRmlu
aXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247Ci0gICAgbmF2aWdhdGlvbkNsaWVu
dC53ZWJQcm9jZXNzRGlkQ3Jhc2hXaXRoUmVhc29uID0gZGlkQ3Jhc2hXaXRoUmVhc29uOwotCi0g
ICAgV0tQYWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQod2ViVmlldy5wYWdlKCksICZuYXZpZ2F0
aW9uQ2xpZW50LmJhc2UpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0
V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikpOwotICAgIC8vIExv
YWQgYSBibGFuayBwYWdlIGFuZCBuZXh0IGtpbGxzIFdlYlByb2Nlc3MuCi0gICAgV0tQYWdlTG9h
ZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmxvYWRCZWZv
cmVDcmFzaCk7Ci0gICAgV0tQYWdlVGVybWluYXRlKHdlYlZpZXcucGFnZSgpKTsKLQotICAgIFV0
aWw6OnJ1bigmY3Jhc2hIYW5kbGVyQ2FsbGVkKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9Qcm9jZXNzRGlkVGVybWluYXRlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9Qcm9jZXNzRGlkVGVybWluYXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmU0NmE5ZThk
ZTFiYWRkMTQwYjJmMjc1NzA3NDBkOGJmZTRhY2M4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1Byb2Nlc3NEaWRUZXJtaW5hdGUuY3BwCkBAIC0w
LDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tf
SEFWRV9DX1NQSQorCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dL
UGFnZVByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRl
IDxzaWduYWwuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBs
b2FkQmVmb3JlQ3Jhc2ggPSBmYWxzZTsKK3N0YXRpYyBib29sIGNsaWVudFRlcm1pbmF0aW9uSGFu
ZGxlckNhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgY3Jhc2hIYW5kbGVyQ2FsbGVkID0gZmFs
c2U7CisKK3N0YXRpYyB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdL
TmF2aWdhdGlvblJlZiBuYXZpZ2F0aW9uLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit7CisgICAgaWYgKCFsb2FkQmVmb3JlQ3Jhc2gpIHsKKyAgICAgICAgbG9h
ZEJlZm9yZUNyYXNoID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEVYUEVD
VF9UUlVFKGZhbHNlKTsKK30KKworc3RhdGljIHZvaWQgd2ViUHJvY2Vzc1dhc1Rlcm1pbmF0ZWRC
eUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29u
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIC8vIFRlc3QgaWYgZmlyc3QgbG9hZCBh
Y3R1YWxseSB3b3JrZWQuCisgICAgRVhQRUNUX1RSVUUobG9hZEJlZm9yZUNyYXNoKTsKKworICAg
IC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlLgorICAgIEVYUEVDVF9GQUxTRShjbGllbnRU
ZXJtaW5hdGlvbkhhbmRsZXJDYWxsZWQpOworCisgICAgRVhQRUNUX0VRKGtXS1Byb2Nlc3NUZXJt
aW5hdGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50LCByZWFzb24pOworCisgICAgY2xpZW50VGVy
bWluYXRpb25IYW5kbGVyQ2FsbGVkID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2ViUHJvY2Vz
c0NyYXNoZWQoV0tQYWdlUmVmIHBhZ2UsIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNv
biwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICAvLyBUZXN0IGlmIGZpcnN0IGxvYWQg
YWN0dWFsbHkgd29ya2VkLgorICAgIEVYUEVDVF9UUlVFKGxvYWRCZWZvcmVDcmFzaCk7CisKKyAg
ICAvLyBTaG91bGQgb25seSBiZSBjYWxsZWQgb25jZS4KKyAgICBFWFBFQ1RfRkFMU0UoY3Jhc2hI
YW5kbGVyQ2FsbGVkKTsKKworICAgIEVYUEVDVF9FUShrV0tQcm9jZXNzVGVybWluYXRpb25SZWFz
b25DcmFzaCwgcmVhc29uKTsKKworICAgIGNyYXNoSGFuZGxlckNhbGxlZCA9IHRydWU7Cit9CisK
K1RFU1QoV2ViS2l0MiwgUHJvY2Vzc0RpZFRlcm1pbmF0ZVJlcXVlc3RlZEJ5Q2xpZW50KQorewor
ICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRD
cmVhdGUoKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisK
KyAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xpZW50VjEgbmF2aWdhdGlvbkNsaWVudDsKKyAgICBtZW1z
ZXQoJm5hdmlnYXRpb25DbGllbnQsIDAsIHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7CisgICAg
bmF2aWdhdGlvbkNsaWVudC5iYXNlLnZlcnNpb24gPSAxOworICAgIG5hdmlnYXRpb25DbGllbnQu
ZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRpZEZpbmlzaE5hdmlnYXRpb247CisgICAgbmF2aWdhdGlv
bkNsaWVudC53ZWJQcm9jZXNzRGlkVGVybWluYXRlID0gd2ViUHJvY2Vzc1dhc1Rlcm1pbmF0ZWRC
eUNsaWVudDsKKworICAgIFdLUGFnZVNldFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KHdlYlZpZXcucGFn
ZSgpLCAmbmF2aWdhdGlvbkNsaWVudC5iYXNlKTsKKworICAgIGxvYWRCZWZvcmVDcmFzaCA9IGZh
bHNlOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFdLVVJMQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIpKTsKKyAgICAvLyBMb2FkIGEgYmxhbmsgcGFn
ZSBhbmQgbmV4dCBraWxscyBXZWJQcm9jZXNzLgorICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIHVybC5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZsb2FkQmVmb3JlQ3Jhc2gpOworCisg
ICAgV0tQYWdlVGVybWluYXRlKHdlYlZpZXcucGFnZSgpKTsKKworICAgIFV0aWw6OnJ1bigmY2xp
ZW50VGVybWluYXRpb25IYW5kbGVyQ2FsbGVkKTsKK30KKworVEVTVChXZWJLaXQyLCBQcm9jZXNz
RGlkVGVybWluYXRlV2l0aFJlYXNvbkNyYXNoKQoreworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4
dFJlZj4gY29udGV4dChBZG9wdFdLLCBXS0NvbnRleHRDcmVhdGUoKSk7CisgICAgUGxhdGZvcm1X
ZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICBXS1BhZ2VOYXZpZ2F0aW9uQ2xp
ZW50VjEgbmF2aWdhdGlvbkNsaWVudDsKKyAgICBtZW1zZXQoJm5hdmlnYXRpb25DbGllbnQsIDAs
IHNpemVvZihuYXZpZ2F0aW9uQ2xpZW50KSk7CisgICAgbmF2aWdhdGlvbkNsaWVudC5iYXNlLnZl
cnNpb24gPSAxOworICAgIG5hdmlnYXRpb25DbGllbnQuZGlkRmluaXNoTmF2aWdhdGlvbiA9IGRp
ZEZpbmlzaE5hdmlnYXRpb247CisgICAgbmF2aWdhdGlvbkNsaWVudC53ZWJQcm9jZXNzRGlkVGVy
bWluYXRlID0gd2ViUHJvY2Vzc0NyYXNoZWQ7CisKKyAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlv
bkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJm5hdmlnYXRpb25DbGllbnQuYmFzZSk7CisKKyAgICBs
b2FkQmVmb3JlQ3Jhc2ggPSBmYWxzZTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0g
YWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSk7CisgICAg
Ly8gTG9hZCBhIGJsYW5rIHBhZ2UgYW5kIG5leHQga2lsbHMgV2ViUHJvY2Vzcy4KKyAgICBXS1Bh
Z2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOworICAgIFV0aWw6OnJ1bigmbG9h
ZEJlZm9yZUNyYXNoKTsKKworICAgIC8vIFNpbXVsYXRlIGEgY3Jhc2ggYnkga2lsbGluZyB0aGUg
V2ViUHJvY2Vzcy4KKyAgICBraWxsKFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKHdlYlZpZXcu
cGFnZSgpKSwgU0lHS0lMTCk7CisKKyAgICBVdGlsOjpydW4oJmNyYXNoSGFuZGxlckNhbGxlZCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>