<?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>231436</bug_id>
          
          <creation_ts>2021-10-08 09:02:22 -0700</creation_ts>
          <short_desc>SourceID should have a type name and only be 32-bits</short_desc>
          <delta_ts>2021-10-18 10:59:10 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>annulen</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1802104</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-08 09:02:22 -0700</bug_when>
    <thetext>SourceID should have a type name and only be 32-bits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802108</commentid>
    <comment_count>1</comment_count>
      <attachid>440627</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-08 09:05:17 -0700</bug_when>
    <thetext>Created attachment 440627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802141</commentid>
    <comment_count>2</comment_count>
      <attachid>440637</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-08 10:25:58 -0700</bug_when>
    <thetext>Created attachment 440637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802157</commentid>
    <comment_count>3</comment_count>
      <attachid>440637</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-10-08 10:54:02 -0700</bug_when>
    <thetext>Comment on attachment 440637
Patch

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

r=me also with fix.

&gt; Source/JavaScriptCore/debugger/DebuggerPrimitives.h:33
&gt; -using SourceID = size_t;
&gt; +using SourceID = uint32_t;
&gt;  constexpr SourceID noSourceID = 0;

Can we put these in a SourceID.h or perhaps an ID.h if we want to put other IDs (like the BreakpointID and BreakpointActionID below) in it as well?  Looks like we need this declaration / definition in more than 1 place.  It&apos;s best to have one source of truth instead of having code duplication.

&gt; Source/JavaScriptCore/interpreter/StackVisitor.h:49
&gt; +using SourceID = uint32_t;

nit: code duplication like this is error prone.  Can we #include a SourceID.h instead?

&gt; Source/JavaScriptCore/parser/SourceCode.h:35
&gt; +using SourceID = uint32_t;

Duplication again.

&gt; Source/JavaScriptCore/parser/SourceCode.h:37
&gt; +class SourceCode : public UnlinkedSourceCode {

I presume the only change for this code is just the un-indent + main providerID() return SourceID.

&gt; Source/JavaScriptCore/parser/SourceProvider.h:51
&gt; +    using SourceID = uint32_t;

Again!

&gt; Source/JavaScriptCore/runtime/FunctionHasExecutedCache.h:34
&gt; +using SourceID = uint32_t;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802177</commentid>
    <comment_count>4</comment_count>
      <attachid>440637</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-08 11:43:02 -0700</bug_when>
    <thetext>Comment on attachment 440637
Patch

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

m

&gt;&gt; Source/JavaScriptCore/debugger/DebuggerPrimitives.h:33
&gt;&gt;  constexpr SourceID noSourceID = 0;
&gt; 
&gt; Can we put these in a SourceID.h or perhaps an ID.h if we want to put other IDs (like the BreakpointID and BreakpointActionID below) in it as well?  Looks like we need this declaration / definition in more than 1 place.  It&apos;s best to have one source of truth instead of having code duplication.

Yeah, I can put it in the new Forward.h at least until it becomes a real class or something. On the other hand, I don&apos;t think it&apos;s as error prone as you think as non-equilevent definitions are a compiler error.

&gt;&gt; Source/JavaScriptCore/parser/SourceCode.h:37
&gt;&gt; +class SourceCode : public UnlinkedSourceCode {
&gt; 
&gt; I presume the only change for this code is just the un-indent + main providerID() return SourceID.

Yeah, I&apos;m so used to classes being on the first line I get confused these days so I&apos;ve started un-indenting them in clean up patches. I&apos;ll add a note to the changelog too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802603</commentid>
    <comment_count>5</comment_count>
      <attachid>440785</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-11 07:17:40 -0700</bug_when>
    <thetext>Created attachment 440785
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802604</commentid>
    <comment_count>6</comment_count>
      <attachid>440786</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-11 07:18:43 -0700</bug_when>
    <thetext>Created attachment 440786
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802610</commentid>
    <comment_count>7</comment_count>
      <attachid>440791</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-11 07:34:58 -0700</bug_when>
    <thetext>Created attachment 440791
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802615</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 08:01:30 -0700</bug_when>
    <thetext>Patch 440786 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802625</commentid>
    <comment_count>9</comment_count>
      <attachid>440797</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-11 08:32:33 -0700</bug_when>
    <thetext>Created attachment 440797
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802666</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-11 09:58:47 -0700</bug_when>
    <thetext>Committed r283903 (242778@main): &lt;https://commits.webkit.org/242778@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440797.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802667</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-11 09:59:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/84103788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802757</commentid>
    <comment_count>12</comment_count>
      <attachid>440797</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-11 13:10:05 -0700</bug_when>
    <thetext>Comment on attachment 440797
Patch for landing

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

&gt; Source/JavaScriptCore/runtime/TypeProfiler.h:61
&gt; +        : m_sourceID(UINT_MAX)

This seems to defeat the purpose of using a named type. I would have suggested std::numeric_limits&lt;SourceID&gt;::max().

&gt; Source/JavaScriptCore/runtime/TypeProfiler.h:70
&gt; -        return m_sourceID == INTPTR_MAX 
&gt; +        return m_sourceID == UINT_MAX
&gt;              &amp;&amp; m_divot == UINT_MAX
&gt;              &amp;&amp; m_searchDescriptor == TypeProfilerSearchDescriptorFunctionReturn;

Seems like this could check just m_sourceID; no reason to check the other two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805639</commentid>
    <comment_count>13</comment_count>
      <attachid>440797</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-10-18 10:29:04 -0700</bug_when>
    <thetext>Comment on attachment 440797
Patch for landing

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

&gt;&gt; Source/JavaScriptCore/runtime/TypeProfiler.h:61
&gt;&gt; +        : m_sourceID(UINT_MAX)
&gt; 
&gt; This seems to defeat the purpose of using a named type. I would have suggested std::numeric_limits&lt;SourceID&gt;::max().

Fair enough. Do you think it&apos;s worth making a new patch for this?

&gt;&gt; Source/JavaScriptCore/runtime/TypeProfiler.h:70
&gt;&gt;              &amp;&amp; m_searchDescriptor == TypeProfilerSearchDescriptorFunctionReturn;
&gt; 
&gt; Seems like this could check just m_sourceID; no reason to check the other two.

Yeah, I agree. I just refactored the existing code without thinking too hard...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805649</commentid>
    <comment_count>14</comment_count>
      <attachid>440797</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-18 10:59:10 -0700</bug_when>
    <thetext>Comment on attachment 440797
Patch for landing

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/TypeProfiler.h:61
&gt;&gt;&gt; +        : m_sourceID(UINT_MAX)
&gt;&gt; 
&gt;&gt; This seems to defeat the purpose of using a named type. I would have suggested std::numeric_limits&lt;SourceID&gt;::max().
&gt; 
&gt; Fair enough. Do you think it&apos;s worth making a new patch for this?

Sorry, I don’t understand the uestion.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440627</attachid>
            <date>2021-10-08 09:05:17 -0700</date>
            <delta_ts>2021-10-08 11:05:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231436-20211008120516.patch</filename>
            <type>text/plain</type>
            <size>29348</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OThiZWM5NmI1M2Y2ODhmZmI4YjVkYmU1NDY4ZTk2Nzc5OWIwM2Q4Li45MWQwZWFiZjBiMjcyYzI4
OTFmN2MyYzFiNDhkNzc3NDg0MmFkZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAyMS0xMC0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTb3VyY2VJRCBzaG91bGQgaGF2ZSBhIHR5cGUgbmFtZSBhbmQgb25s
eSBiZSAzMi1iaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGdpdmVzIFNvdXJjZUlEIGEgcHJvcGVyIHR5cGUgbmFtZSBhbmQgc2hy
aW5rcyBpdCB0bworICAgICAgICAzMi1iaXRzIG9uIDY0LWJpdCBzeXN0ZW1zLiBTaHJpbmtpbmcg
dGhlIHNpemUgbWFrZXMgcm9vbSBvbgorICAgICAgICBTb3VyY2VQcm92aWRlciBmb3IgbWV0YWRh
dGEgaW4gYSBmdXR1cmUgcGF0Y2ggSSdtIHdvcmtpbmcgb24uCisgICAgICAgIEl0J3MgYWxzbyBw
cmV0dHkgdW5saWtlbHkgdGhhdCBhbnkgc3lzdGVtIGhhcyBtb3JlIHRoYW4gfjQgYmlsbGlvbgor
ICAgICAgICBzY3JpcHQgdGFncywgZXZhbHMsIHdhc20gbW9kdWxlcyBzbyBzaGlua2luZyB0aGUg
c2l6ZSBpcyB1bmxpa2VseQorICAgICAgICB0byBjYXVzZSBhbnkgZGVidWdnZXIvcHJvZmlsaW5n
IGlzc3Vlcy4KKworICAgICAgICAqIGJ5dGVjb2RlL1R5cGVMb2NhdGlvbi5oOgorICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnRvZ2dsZUJy
ZWFrcG9pbnQpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6cGF1c2VJZk5lZWRlZCk6CisgICAg
ICAgICogZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oOgorICAgICAgICAoSlNDOjpEZWJ1Z2dl
ckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dl
clByaW1pdGl2ZXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5o
OgorICAgICAgICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpzb3VyY2VJRCBjb25z
dCk6CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwOgorICAg
ICAgICAoSW5zcGVjdG9yOjpDcmVhdGVTY3JpcHRDYWxsU3RhY2tGdW5jdG9yOjpvcGVyYXRvcigp
IGNvbnN0KToKKyAgICAgICAgKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4
Y2VwdGlvbik6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6c291cmNlSUQpOgorICAgICAgICAqIGludGVy
cHJldGVyL1N0YWNrVmlzaXRvci5oOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAg
ICAoSlNDOjpTY29wZU5vZGU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBwYXJzZXIvU291
cmNlQ29kZS5oOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpwcm92aWRlcklEIGNvbnN0KToK
KyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VQcm92aWRlcjo6Z2V0SUQpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5oOgor
ICAgICAgICAoSlNDOjpTb3VyY2VQcm92aWRlcjo6YXNJRCk6CisgICAgICAgICogcnVudGltZS9D
b250cm9sRmxvd1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9maWxl
cjo6Z2V0QmFzaWNCbG9ja0xvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9m
aWxlcjo6Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRCBjb25zdCk6CisgICAgICAgIChKU0M6OkNv
bnRyb2xGbG93UHJvZmlsZXI6Omhhc0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRCZWVuRXhlY3V0ZWQp
OgorICAgICAgICAoSlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpiYXNpY0Jsb2NrRXhlY3V0aW9u
Q291bnRBdFRleHRPZmZzZXQpOgorICAgICAgICAqIHJ1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxl
ci5oOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcDoKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zmc2V0
KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjppbnNlcnRVbmV4ZWN1
dGVkUmFuZ2UpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OnJlbW92
ZVVuZXhlY3V0ZWRSYW5nZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNo
ZTo6Z2V0RnVuY3Rpb25SYW5nZXMpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25IYXNFeGVj
dXRlZENhY2hlLmg6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6c291cmNlSUQpOgorICAg
ICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oOgorICAgICAgICAqIHJ1bnRpbWUvU2Ny
aXB0RXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpzb3VyY2VJ
RCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmg6CisgICAgICAgICogcnVu
dGltZS9UeXBlTG9jYXRpb25DYWNoZS5jcHA6CisgICAgICAgIChKU0M6OlR5cGVMb2NhdGlvbkNh
Y2hlOjpnZXRUeXBlTG9jYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZUxvY2F0aW9uQ2Fj
aGUuaDoKKyAgICAgICAgKiBydW50aW1lL1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6
OlR5cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KToKKyAg
ICAgICAgKEpTQzo6VHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24pOgorICAgICAgICAqIHJ1bnRp
bWUvVHlwZVByb2ZpbGVyLmg6CisgICAgICAgIChKU0M6OlF1ZXJ5S2V5OjpRdWVyeUtleSk6CisK
IDIwMjEtMTAtMDcgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAg
ICAgICAgIGBoaWdoV2F0ZXJNYXJrYCBzaG91bGQgYmUgYSByZWFkb25seSBXZWJJREwgYXR0cmli
dXRlIG9mIHF1ZXVpbmcgc3RyYXRlZ2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1R5cGVMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1R5cGVMb2NhdGlvbi5oCmluZGV4IDFlOTIzOWRjNGUwMzUyYmRiMmI1OTI3NTM0ODQ2Nzcx
NDhkYjczZWMuLmM3NmYwNWFkMDQxZDc1NDliY2VmNWRiNDBjZDVjNWM5ZjkwNTk1NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9UeXBlTG9jYXRpb24uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVHlwZUxvY2F0aW9uLmgKQEAgLTUwLDcg
KzUwLDcgQEAgcHVibGljOgogICAgIEdsb2JhbFZhcmlhYmxlSUQgbV9nbG9iYWxWYXJpYWJsZUlE
OwogICAgIFJlZlB0cjxUeXBlU2V0PiBtX2luc3RydWN0aW9uVHlwZVNldDsKICAgICBSZWZQdHI8
VHlwZVNldD4gbV9nbG9iYWxUeXBlU2V0OwotICAgIGludHB0cl90IG1fc291cmNlSUQ7CisgICAg
U291cmNlSUQgbV9zb3VyY2VJRDsKICAgICB1bnNpZ25lZCBtX2Rpdm90U3RhcnQ7CiAgICAgdW5z
aWduZWQgbV9kaXZvdEVuZDsKICAgICB1bnNpZ25lZCBtX2Rpdm90Rm9yRnVuY3Rpb25PZmZzZXRJ
ZlJldHVyblN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXIuY3BwCmluZGV4IGRkMzU3ZDg1YzQ0NzZkMzUxYzdlNTE0NDk0YTJmZWE2YThhNGZhMWMuLjBi
Y2UyYTY4OTg5MzdmYTJkOGI0NDBjYjJmMjYxNmQ1MWUzNjViOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQg
RGVidWdnZXI6OnRvZ2dsZUJyZWFrcG9pbnQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJyZWFrcG9p
bnQmIGJyZWFrcG9pbnQsIEJyCiAKICAgICBTY3JpcHRFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0g
Y29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKTsKIAotICAgIFNvdXJjZUlEIHNvdXJjZUlEID0g
c3RhdGljX2Nhc3Q8U291cmNlSUQ+KGV4ZWN1dGFibGUtPnNvdXJjZUlEKCkpOworICAgIFNvdXJj
ZUlEIHNvdXJjZUlEID0gZXhlY3V0YWJsZS0+c291cmNlSUQoKTsKICAgICBpZiAoYnJlYWtwb2lu
dC5zb3VyY2VJRCgpICE9IHNvdXJjZUlEKQogICAgICAgICByZXR1cm47CiAKQEAgLTg3NSw3ICs4
NzUsNyBAQCB2b2lkIERlYnVnZ2VyOjpwYXVzZUlmTmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAgICAgaWYgKG1fc3VwcHJlc3NBbGxQYXVzZXMpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGludHB0cl90IHNvdXJjZUlEID0gRGVidWdnZXJDYWxsRnJhbWU6OnNvdXJjZUlERm9y
Q2FsbEZyYW1lKG1fY3VycmVudENhbGxGcmFtZSk7CisgICAgU291cmNlSUQgc291cmNlSUQgPSBE
ZWJ1Z2dlckNhbGxGcmFtZTo6c291cmNlSURGb3JDYWxsRnJhbWUobV9jdXJyZW50Q2FsbEZyYW1l
KTsKIAogICAgIGF1dG8gYmxhY2tib3hUeXBlSXRlcmF0b3IgPSBtX2JsYWNrYm94ZWRTY3JpcHRz
LmZpbmQoc291cmNlSUQpOwogICAgIGlmIChibGFja2JveFR5cGVJdGVyYXRvciAhPSBtX2JsYWNr
Ym94ZWRTY3JpcHRzLmVuZCgpICYmIGJsYWNrYm94VHlwZUl0ZXJhdG9yLT52YWx1ZSA9PSBCbGFj
a2JveFR5cGU6Oklnbm9yZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyTG9jYXRpb24uaAppbmRleCBlOTQ4NzcxNjhjNDAwNGViOWNhZDM4ZTc1YjllMzhm
YzIwMDYyMzBjLi40YTgzMTIxYjY0YWE0MDVlNDg5MGM3ZDEwMTA0NDA1MWUzNzQ1MDM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0YWJsZTsKIHN0cnVjdCBEZWJ1Z2dl
ckxvY2F0aW9uIHsKIAogICAgIERlYnVnZ2VyTG9jYXRpb24oKSB7IH0KLSAgICBEZWJ1Z2dlckxv
Y2F0aW9uKGludHB0cl90IHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4p
CisgICAgRGVidWdnZXJMb2NhdGlvbihTb3VyY2VJRCBzb3VyY2VJRCwgdW5zaWduZWQgbGluZSwg
dW5zaWduZWQgY29sdW1uKQogICAgICAgICA6IHNvdXJjZUlEKHNvdXJjZUlEKQogICAgICAgICAs
IGxpbmUobGluZSkKICAgICAgICAgLCBjb2x1bW4oY29sdW1uKQpAQCAtNDMsNyArNDMsNyBAQCBz
dHJ1Y3QgRGVidWdnZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1Z2dlckxvY2F0aW9uKFNjcmlwdEV4
ZWN1dGFibGUqKTsKIAotICAgIGludHB0cl90IHNvdXJjZUlEIHsgbm9Tb3VyY2VJRCB9OworICAg
IFNvdXJjZUlEIHNvdXJjZUlEIHsgbm9Tb3VyY2VJRCB9OwogICAgIHVuc2lnbmVkIGxpbmUgeyAw
IH07CiAgICAgdW5zaWduZWQgY29sdW1uIHsgMCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1pdGl2ZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1pdGl2ZXMuaAppbmRleCA0MjU2M2FjZjNl
MmZiZjllMzNjMGY1NDBiYWQ1N2MzNDMwNTY2OGVmLi4wZGQwOTk3OGE1Mjg5YTdmNTI5YTc2NzEy
NzI3YzhkN2Y0NzdkNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJQcmltaXRpdmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oCkBAIC0yOSw3ICsyOSw2IEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCi11c2luZyBTb3VyY2VJRCA9IHNpemVfdDsKIGNvbnN0ZXhwciBTb3VyY2VJRCBub1Nv
dXJjZUlEID0gMDsKIAogdXNpbmcgQnJlYWtwb2ludElEID0gc2l6ZV90OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaAppbmRl
eCA5NWJkMWYzMmIwMTkyODhkZTc3MzNhNzkwZWQyM2FhNDJhNjE0YWYwLi4yY2FhNmE0MDc0MjJh
YTA3ZDU4MzEwMjg4MThmNmJkMTJmZDg4NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgSmF2YVNjcmlwdENhbGxGcmFtZSogY2FsbGVyKCk7Ci0g
ICAgaW50cHRyX3Qgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2FsbEZyYW1l
LT5zb3VyY2VJRCgpOyB9CisgICAgU291cmNlSUQgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBt
X2RlYnVnZ2VyQ2FsbEZyYW1lLT5zb3VyY2VJRCgpOyB9CiAgICAgY29uc3QgVGV4dFBvc2l0aW9u
IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z2dlckNhbGxGcmFtZS0+cG9zaXRpb24o
KTsgfQogICAgIGludCBsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z2dlckNhbGxGcmFtZS0+
bGluZSgpOyB9CiAgICAgaW50IGNvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxs
RnJhbWUtPmNvbHVtbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAppbmRleCA5NmEzNWNlYmU4YmI2
NDI1ODI5YTcyOTFmZjAyOWZjZTRjMjNhOGViLi40MWFjYzg1N2M2NzY4YzlmNmJhOTgzMGE3MWFh
MDJmYTkzNDc2ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgdW5zaWduZWQgbGluZTsKICAgICAgICAgICAgIHVuc2lnbmVkIGNv
bHVtbjsKICAgICAgICAgICAgIHZpc2l0b3ItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIGNv
bHVtbik7Ci0gICAgICAgICAgICBtX2ZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKHZpc2l0
b3ItPmZ1bmN0aW9uTmFtZSgpLCB2aXNpdG9yLT5zb3VyY2VVUkwoKSwgc3RhdGljX2Nhc3Q8U291
cmNlSUQ+KHZpc2l0b3ItPnNvdXJjZUlEKCkpLCBsaW5lLCBjb2x1bW4pKTsKKyAgICAgICAgICAg
IG1fZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUodmlzaXRvci0+ZnVuY3Rpb25OYW1lKCks
IHZpc2l0b3ItPnNvdXJjZVVSTCgpLCB2aXNpdG9yLT5zb3VyY2VJRCgpLCBsaW5lLCBjb2x1bW4p
KTsKIAogICAgICAgICAgICAgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZS0tOwog
ICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7CkBAIC0xNjAsNyArMTYw
LDcgQEAgUmVmPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4Y2Vw
dGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICAgICAgdW5zaWduZWQgY29sdW1uOwog
ICAgICAgICBzdGFja1RyYWNlW2ldLmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIGNvbHVtbik7
CiAgICAgICAgIFN0cmluZyBmdW5jdGlvbk5hbWUgPSBzdGFja1RyYWNlW2ldLmZ1bmN0aW9uTmFt
ZSh2bSk7Ci0gICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGZ1bmN0aW9uTmFt
ZSwgc3RhY2tUcmFjZVtpXS5zb3VyY2VVUkwoKSwgc3RhdGljX2Nhc3Q8U291cmNlSUQ+KHN0YWNr
VHJhY2VbaV0uc291cmNlSUQoKSksIGxpbmUsIGNvbHVtbikpOworICAgICAgICBmcmFtZXMuYXBw
ZW5kKFNjcmlwdENhbGxGcmFtZShmdW5jdGlvbk5hbWUsIHN0YWNrVHJhY2VbaV0uc291cmNlVVJM
KCksIHN0YWNrVHJhY2VbaV0uc291cmNlSUQoKSwgbGluZSwgY29sdW1uKSk7CiAgICAgfQogCiAg
ICAgLy8gRmFsbGJhY2sgdG8gZ2V0dGluZyBhdCBsZWFzdCB0aGUgbGluZSBhbmQgc291cmNlVVJM
IGZyb20gdGhlIGV4Y2VwdGlvbiBvYmplY3QgaWYgaXQgaGFzIHZhbHVlcyBhbmQgdGhlIGV4Y2Vw
dGlvblN0YWNrIGRvZXNuJ3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9TdGFja1Zpc2l0b3IuY3BwCmluZGV4IDU3YTFiZGI2ZGJkNWIxNjA2OTFjNjU2NTBmYzBk
NDVkYmU4MDllYWIuLjRiNWZmYzZhZDA5OGFhOGI4YjVkNmZlMzIzZGU0NTljNzA0NGYxMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3Iu
Y3BwCkBAIC0zNTEsNyArMzUxLDcgQEAgU3RyaW5nIFN0YWNrVmlzaXRvcjo6RnJhbWU6OnRvU3Ry
aW5nKCkgY29uc3QKICAgICByZXR1cm4gbWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsIHNlcGFyYXRv
ciwgc291cmNlVVJMLCAnOicsIGxpbmUsICc6JywgY29sdW1uKTsKIH0KIAotaW50cHRyX3QgU3Rh
Y2tWaXNpdG9yOjpGcmFtZTo6c291cmNlSUQoKQorU291cmNlSUQgU3RhY2tWaXNpdG9yOjpGcmFt
ZTo6c291cmNlSUQoKQogewogICAgIGlmIChDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHRoaXMtPmNv
ZGVCbG9jaygpKQogICAgICAgICByZXR1cm4gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+
c291cmNlSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9TdGFja1Zpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFj
a1Zpc2l0b3IuaAppbmRleCAwYmI5YWY1ODE1YTUxMDYzYTAzYjMyMDAwNDEzNjE4ODRjZTZkZjI3
Li45NTRhNDJmMGIxOGExZDg1YjYxZjZlZjRlMzlkMGYyOTczMjY1ZWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCkBAIC04Nyw3ICs4
Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHNvdXJjZVVS
TCgpIGNvbnN0OwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgdG9TdHJpbmcoKSBj
b25zdDsKIAotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBpbnRwdHJfdCBzb3VyY2VJRCgpOwor
ICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTb3VyY2VJRCBzb3VyY2VJRCgpOwogCiAgICAgICAg
IENvZGVUeXBlIGNvZGVUeXBlKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaGFzTGluZUFuZENvbHVt
bkluZm8oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCBhNDI0
Y2YxZmFmZmFiZGE3NDU3Njc2NWMyNTMxNzU0MmY1ZWZjNTc1Li5lMzBlYjgxNGI5ZTIwMjZlYzRl
MmFhMzY0MjkyNDgzODkyZmU3MzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5o
CkBAIC0xODk4LDcgKzE4OTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU2NvcGVOb2Rl
KFBhcnNlckFyZW5hJiwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBzdGFydCwgY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiBlbmQsIGNvbnN0IFNvdXJjZUNvZGUmLCBTb3VyY2VFbGVtZW50cyosIFZhcmlh
YmxlRW52aXJvbm1lbnQmJiwgRnVuY3Rpb25TdGFjayYmLCBWYXJpYWJsZUVudmlyb25tZW50JiYs
IFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0JiYsIENvZGVGZWF0dXJlcywgTGV4aWNhbFNjb3BlRmVh
dHVyZXMsIElubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcywgaW50IG51bUNvbnN0YW50cyk7
CiAKICAgICAgICAgY29uc3QgU291cmNlQ29kZSYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2U7IH0KLSAgICAgICAgaW50cHRyX3Qgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBtX3Nv
dXJjZS5wcm92aWRlcklEKCk7IH0KKyAgICAgICAgU291cmNlSUQgc291cmNlSUQoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KIAogICAgICAgICBpbnQgc3RhcnRMaW5l
KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydExpbmVOdW1iZXI7IH0KICAgICAgICAgaW50IHN0YXJ0
U3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0U3RhcnRPZmZzZXQ7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKaW5kZXggOTkyZDg5YTIxMDNkZTM2
YzBmZGQ2NzVhNTNmZjhiMTMxMGMwMWYzNS4uYzIyM2VmNTYyNDBhMTgyMmRmOTIwNDJmMTU4MjMz
YjVhOGUxNTg3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgK
QEAgLTY2LDcgKzY2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE9yZGluYWxOdW1iZXIg
Zmlyc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdExpbmU7IH0KICAgICAgICAgT3JkaW5h
bE51bWJlciBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRDb2x1bW47IH0KIAot
ICAgICAgICBpbnRwdHJfdCBwcm92aWRlcklEKCkgY29uc3QKKyAgICAgICAgU291cmNlSUQgcHJv
dmlkZXJJRCgpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9wcm92aWRlcikK
ICAgICAgICAgICAgICAgICByZXR1cm4gU291cmNlUHJvdmlkZXI6Om51bGxJRDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKaW5kZXggNjA2ZTVm
MTc0NGFmMGY2MTBkZGNjZTc2MWJjOTNlMzIyM2I5NTNkYi4uMmJkNTU5YjM1M2MzODdhNWY2MDEy
NWMyMzZjZmM5NGUyODk5MjdjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Tb3VyY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAKLSNpbmNsdWRlIDx3dGYvTG9jay5oPgotCiBu
YW1lc3BhY2UgSlNDIHsKIAogREVGSU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihT
dHJpbmdTb3VyY2VQcm92aWRlcik7CkBAIC00NCwxMyArNDIsMTAgQEAgU291cmNlUHJvdmlkZXI6
On5Tb3VyY2VQcm92aWRlcigpCiB7CiB9CiAKLXN0YXRpYyBMb2NrIHByb3ZpZGVySWRMb2NrOwot
CiB2b2lkIFNvdXJjZVByb3ZpZGVyOjpnZXRJRCgpCiB7Ci0gICAgTG9ja2VyIGxvY2tlciB7IHBy
b3ZpZGVySWRMb2NrIH07CiAgICAgaWYgKCFtX2lkKSB7Ci0gICAgICAgIHN0YXRpYyBpbnRwdHJf
dCBuZXh0UHJvdmlkZXJJRCA9IDA7CisgICAgICAgIHN0YXRpYyBzdGQ6OmF0b21pYzxTb3VyY2VJ
RD4gbmV4dFByb3ZpZGVySUQgPSBudWxsSUQ7CiAgICAgICAgIG1faWQgPSArK25leHRQcm92aWRl
cklEOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChtX2lkKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5kZXggMTI5ZWU1YzQ5ZTI0N2Fm
Y2Q5ZjA4ZDU5ZWZlOWZiMTI4ZjlhYmJlMS4uMDEzMjQyZDBlNmVhZjBhZjU3ZThjYzQxZDljYWQz
YzFjODMzZmMwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJv
dmlkZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTQ4LDYgKzQ4LDcgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
azsKICAgICB9OwogCiAgICAgdXNpbmcgQnl0ZWNvZGVDYWNoZUdlbmVyYXRvciA9IEZ1bmN0aW9u
PFJlZlB0cjxDYWNoZWRCeXRlY29kZT4oKT47CisgICAgdXNpbmcgU291cmNlSUQgPSB1aW50MzJf
dDsKIAogICAgIGNsYXNzIFNvdXJjZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8U291cmNl
UHJvdmlkZXI+IHsKICAgICBwdWJsaWM6CkBAIC03OSw3ICs4MCw3IEBAIGNsYXNzIFVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIFRleHRQb3NpdGlvbiBzdGFydFBvc2l0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9zdGFydFBvc2l0aW9uOyB9CiAgICAgICAgIFNvdXJjZVByb3ZpZGVy
U291cmNlVHlwZSBzb3VyY2VUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VUeXBlOyB9CiAK
LSAgICAgICAgaW50cHRyX3QgYXNJRCgpCisgICAgICAgIFNvdXJjZUlEIGFzSUQoKQogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAoIW1faWQpCiAgICAgICAgICAgICAgICAgZ2V0SUQoKTsKQEAg
LTk4LDcgKzk5LDcgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICAgICAg
U3RyaW5nIG1fc291cmNlVVJMRGlyZWN0aXZlOwogICAgICAgICBTdHJpbmcgbV9zb3VyY2VNYXBw
aW5nVVJMRGlyZWN0aXZlOwogICAgICAgICBUZXh0UG9zaXRpb24gbV9zdGFydFBvc2l0aW9uOwot
ICAgICAgICB1aW50cHRyX3QgbV9pZCB7IDAgfTsKKyAgICAgICAgU291cmNlSUQgbV9pZCB7IDAg
fTsKICAgICB9OwogCiAgICAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIo
U3RyaW5nU291cmNlUHJvdmlkZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNwcAppbmRleCBlYmI0Mjk5MmQwZTJkM2VlYjEx
ZmEzMDZiZGQ2N2UzMjZhOGI0ZTcyLi44ODg3ZDY4MmJmZTBjNzYxMjY2ZmE3ZTVhY2VjMTljODJk
MDQ0MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9s
Rmxvd1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250
cm9sRmxvd1Byb2ZpbGVyLmNwcApAQCAtNDQsNyArNDQsNyBAQCBDb250cm9sRmxvd1Byb2ZpbGVy
Ojp+Q29udHJvbEZsb3dQcm9maWxlcigpCiAgICAgfQogfQogCi1CYXNpY0Jsb2NrTG9jYXRpb24q
IENvbnRyb2xGbG93UHJvZmlsZXI6OmdldEJhc2ljQmxvY2tMb2NhdGlvbihpbnRwdHJfdCBzb3Vy
Y2VJRCwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0KQorQmFzaWNCbG9ja0xvY2F0aW9u
KiBDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2NrTG9jYXRpb24oU291cmNlSUQgc291
cmNlSUQsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCkKIHsKICAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fc291cmNlSURCdWNrZXRzLmFkZChzb3VyY2VJRCwgQmxvY2tMb2NhdGlvbkNhY2hl
KCkpOwogICAgIEJsb2NrTG9jYXRpb25DYWNoZSYgYmxvY2tMb2NhdGlvbkNhY2hlID0gYWRkUmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZTsKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBDb250cm9sRmxvd1By
b2ZpbGVyOjpkdW1wRGF0YSgpIGNvbnN0CiAgICAgfQogfQogCi1WZWN0b3I8QmFzaWNCbG9ja1Jh
bmdlPiBDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKGludHB0
cl90IHNvdXJjZUlELCBWTSYgdm0pIGNvbnN0IAorVmVjdG9yPEJhc2ljQmxvY2tSYW5nZT4gQ29u
dHJvbEZsb3dQcm9maWxlcjo6Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRChTb3VyY2VJRCBzb3Vy
Y2VJRCwgVk0mIHZtKSBjb25zdAogewogICAgIFZlY3RvcjxCYXNpY0Jsb2NrUmFuZ2U+IHJlc3Vs
dCgwKTsKICAgICBhdXRvIGJ1Y2tldEZpbmRSZXN1bHQgPSBtX3NvdXJjZUlEQnVja2V0cy5maW5k
KHNvdXJjZUlEKTsKQEAgLTEyMCwxNCArMTIwLDE0IEBAIHN0YXRpYyBCYXNpY0Jsb2NrUmFuZ2Ug
ZmluZEJhc2ljQmxvY2tBdFRleHRPZmZzZXQoaW50IG9mZnNldCwgY29uc3QgVmVjdG9yPEJhc2lj
CiAgICAgcmV0dXJuIGJlc3RSYW5nZTsKIH0KIAotYm9vbCBDb250cm9sRmxvd1Byb2ZpbGVyOjpo
YXNCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVkKGludCBvZmZzZXQsIGludHB0cl90
IHNvdXJjZUlELCBWTSYgdm0pCitib29sIENvbnRyb2xGbG93UHJvZmlsZXI6Omhhc0Jhc2ljQmxv
Y2tBdFRleHRPZmZzZXRCZWVuRXhlY3V0ZWQoaW50IG9mZnNldCwgU291cmNlSUQgc291cmNlSUQs
IFZNJiB2bSkKIHsKICAgICBjb25zdCBWZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiYgYmxvY2tzID0g
Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRChzb3VyY2VJRCwgdm0pOwogICAgIEJhc2ljQmxvY2tS
YW5nZSByYW5nZSA9IGZpbmRCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0KG9mZnNldCwgYmxvY2tzKTsK
ICAgICByZXR1cm4gcmFuZ2UubV9oYXNFeGVjdXRlZDsKIH0KIAotc2l6ZV90IENvbnRyb2xGbG93
UHJvZmlsZXI6OmJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldChpbnQgb2Zmc2V0
LCBpbnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZtKQorc2l6ZV90IENvbnRyb2xGbG93UHJvZmlsZXI6
OmJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldChpbnQgb2Zmc2V0LCBTb3VyY2VJ
RCBzb3VyY2VJRCwgVk0mIHZtKQogewogICAgIGNvbnN0IFZlY3RvcjxCYXNpY0Jsb2NrUmFuZ2U+
JiBibG9ja3MgPSBnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKHNvdXJjZUlELCB2bSk7CiAgICAg
QmFzaWNCbG9ja1JhbmdlIHJhbmdlID0gZmluZEJhc2ljQmxvY2tBdFRleHRPZmZzZXQob2Zmc2V0
LCBibG9ja3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29u
dHJvbEZsb3dQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJv
bEZsb3dQcm9maWxlci5oCmluZGV4IDFjNDk1NTlmNTIwNTA3OWEyYzZkMmRiNGRjZTBiNTM2M2Qy
YjlkNTUuLjZkY2ExNGRlNjIxMTdlODJmNGE3NmVkNzc0OTQ1MGRiZjk3NjE5MDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmgK
QEAgLTkxLDE2ICs5MSwxNiBAQCBjbGFzcyBDb250cm9sRmxvd1Byb2ZpbGVyIHsKIHB1YmxpYzoK
ICAgICBDb250cm9sRmxvd1Byb2ZpbGVyKCk7CiAgICAgfkNvbnRyb2xGbG93UHJvZmlsZXIoKTsK
LSAgICBCYXNpY0Jsb2NrTG9jYXRpb24qIGdldEJhc2ljQmxvY2tMb2NhdGlvbihpbnRwdHJfdCBz
b3VyY2VJRCwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0KTsKKyAgICBCYXNpY0Jsb2Nr
TG9jYXRpb24qIGdldEJhc2ljQmxvY2tMb2NhdGlvbihTb3VyY2VJRCwgaW50IHN0YXJ0T2Zmc2V0
LCBpbnQgZW5kT2Zmc2V0KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXBEYXRhKCkg
Y29uc3Q7Ci0gICAgVmVjdG9yPEJhc2ljQmxvY2tSYW5nZT4gZ2V0QmFzaWNCbG9ja3NGb3JTb3Vy
Y2VJRChpbnRwdHJfdCBzb3VyY2VJRCwgVk0mKSBjb25zdDsKKyAgICBWZWN0b3I8QmFzaWNCbG9j
a1JhbmdlPiBnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKFNvdXJjZUlELCBWTSYpIGNvbnN0Owog
ICAgIEJhc2ljQmxvY2tMb2NhdGlvbiogZHVtbXlCYXNpY0Jsb2NrKCkgeyByZXR1cm4gJm1fZHVt
bXlCYXNpY0Jsb2NrOyB9Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBoYXNCYXNpY0Jsb2Nr
QXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVkKGludCwgaW50cHRyX3QsIFZNJik7ICAvLyBUaGlzIGZ1
bmN0aW9uIGV4aXN0cyBmb3IgdGVzdGluZy4KLSAgICBKU19FWFBPUlRfUFJJVkFURSBzaXplX3Qg
YmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50QXRUZXh0T2Zmc2V0KGludCwgaW50cHRyX3QsIFZNJik7
IC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGZvciB0ZXN0aW5nLgorICAgIEpTX0VYUE9SVF9QUklW
QVRFIGJvb2wgaGFzQmFzaWNCbG9ja0F0VGV4dE9mZnNldEJlZW5FeGVjdXRlZChpbnQsIFNvdXJj
ZUlELCBWTSYpOyAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3IgdGVzdGluZy4KKyAgICBKU19F
WFBPUlRfUFJJVkFURSBzaXplX3QgYmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50QXRUZXh0T2Zmc2V0
KGludCwgU291cmNlSUQsIFZNJik7IC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGZvciB0ZXN0aW5n
LgogCiBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxCYXNpY0Jsb2NrS2V5LCBCYXNpY0Js
b2NrTG9jYXRpb24qPiBCbG9ja0xvY2F0aW9uQ2FjaGU7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPGlu
dHB0cl90LCBCbG9ja0xvY2F0aW9uQ2FjaGU+IFNvdXJjZUlEQnVja2V0czsKKyAgICB0eXBlZGVm
IEhhc2hNYXA8U291cmNlSUQsIEJsb2NrTG9jYXRpb25DYWNoZT4gU291cmNlSURCdWNrZXRzOwog
CiAgICAgU291cmNlSURCdWNrZXRzIG1fc291cmNlSURCdWNrZXRzOwogICAgIEJhc2ljQmxvY2tM
b2NhdGlvbiBtX2R1bW15QmFzaWNCbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuY3BwCmluZGV4IGE4YWFk
YWRmZDE3NDJhYjRlMTFmN2NiODEzYTI5Y2Y5YWZlZDIzODUuLjY4YzA2MDZiMDcxMzEyNGM3YWEx
NzBjMWRhMmQ5OTZkOGUxNGUzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcApAQCAtMzAsNyArMzAs
NyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotYm9vbCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6
Omhhc0V4ZWN1dGVkQXRPZmZzZXQoaW50cHRyX3QgaWQsIHVuc2lnbmVkIG9mZnNldCkKK2Jvb2wg
RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zmc2V0KFNvdXJjZUlEIGlk
LCB1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgaWYgKG1fcmFuZ2VNYXAuZmluZChpZCkgPT0gbV9y
YW5nZU1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDksNyArNDksNyBAQCBi
b29sIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6aGFzRXhlY3V0ZWRBdE9mZnNldChpbnRwdHJf
dCBpZCwgdW5zaWduZWQgb2Zmc2V0KQogICAgIHJldHVybiBoYXNFeGVjdXRlZDsKIH0KIAotdm9p
ZCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0ZWRSYW5nZShpbnRwdHJf
dCBpZCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkgCit2b2lkIEZ1bmN0aW9uSGFzRXhl
Y3V0ZWRDYWNoZTo6aW5zZXJ0VW5leGVjdXRlZFJhbmdlKFNvdXJjZUlEIGlkLCB1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgZW5kKQogewogICAgIGlmIChtX3JhbmdlTWFwLmZpbmQoaWQpID09IG1f
cmFuZ2VNYXAuZW5kKCkpIHsKICAgICAgICAgUmFuZ2VNYXAgbWFwOwpAQCAtNjYsNyArNjYsNyBA
QCB2b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6aW5zZXJ0VW5leGVjdXRlZFJhbmdlKGlu
dHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydAogICAgICAgICBtYXBbcmFuZ2VdID0gZmFsc2U7CiB9
CiAKLXZvaWQgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpyZW1vdmVVbmV4ZWN1dGVkUmFuZ2Uo
aW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpCit2b2lkIEZ1bmN0aW9u
SGFzRXhlY3V0ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdlKFNvdXJjZUlEIGlkLCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kKQogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbmV2
ZXIgaGF2ZSBhbiBpbnN0YW5jZSB3aGVyZSB3ZSByZXR1cm4gaGVyZSwgYnV0IGN1cnJlbnRseSBk
byBpbiBzb21lIHNpdHVhdGlvbnMuIEZpbmQgb3V0IHdoeS4KICAgICBpZiAobV9yYW5nZU1hcC5m
aW5kKGlkKSA9PSBtX3JhbmdlTWFwLmVuZCgpKQpAQCAtODAsNyArODAsNyBAQCB2b2lkIEZ1bmN0
aW9uSGFzRXhlY3V0ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1
bnNpZ25lZCBzdGFydAogICAgIG1hcFtyYW5nZV0gPSB0cnVlOwogfQogCi1WZWN0b3I8c3RkOjp0
dXBsZTxib29sLCB1bnNpZ25lZCwgdW5zaWduZWQ+PiBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6
OmdldEZ1bmN0aW9uUmFuZ2VzKGludHB0cl90IGlkKQorVmVjdG9yPHN0ZDo6dHVwbGU8Ym9vbCwg
dW5zaWduZWQsIHVuc2lnbmVkPj4gRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpnZXRGdW5jdGlv
blJhbmdlcyhTb3VyY2VJRCBpZCkKIHsKICAgICBWZWN0b3I8c3RkOjp0dXBsZTxib29sLCB1bnNp
Z25lZCwgdW5zaWduZWQ+PiByYW5nZXMoMCk7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV9yYW5n
ZU1hcC5maW5kKGlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmgKaW5kZXggOWUyYjIwY2ZmNzA1OWM0NDE1ZDhj
Njc5MjM1YjMyNjAyNTcxMjg2ZS4uMDAzNDVhY2E0ZmRkODY0NTExYjAxMDI0YjYwZmQ5NmJjYmVj
OTljYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25I
YXNFeGVjdXRlZENhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25IYXNFeGVjdXRlZENhY2hlLmgKQEAgLTQ4LDEwICs0OCwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIHVuc2lnbmVkIG1fZW5kOwogICAgIH07CiAKLSAgICBib29sIGhhc0V4ZWN1dGVkQXRPZmZz
ZXQoaW50cHRyX3QgaWQsIHVuc2lnbmVkIG9mZnNldCk7Ci0gICAgdm9pZCBpbnNlcnRVbmV4ZWN1
dGVkUmFuZ2UoaW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOwotICAg
IHZvaWQgcmVtb3ZlVW5leGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgZW5kKTsKLSAgICBWZWN0b3I8c3RkOjp0dXBsZTxib29sLCB1bnNpZ25lZCwgdW5z
aWduZWQ+PiBnZXRGdW5jdGlvblJhbmdlcyhpbnRwdHJfdCBpZCk7CisgICAgYm9vbCBoYXNFeGVj
dXRlZEF0T2Zmc2V0KFNvdXJjZUlELCB1bnNpZ25lZCBvZmZzZXQpOworICAgIHZvaWQgaW5zZXJ0
VW5leGVjdXRlZFJhbmdlKFNvdXJjZUlELCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKTsK
KyAgICB2b2lkIHJlbW92ZVVuZXhlY3V0ZWRSYW5nZShTb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGVuZCk7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8Ym9vbCwgdW5zaWduZWQsIHVu
c2lnbmVkPj4gZ2V0RnVuY3Rpb25SYW5nZXMoU291cmNlSUQpOwogCiBwcml2YXRlOgogICAgIHVz
aW5nIFJhbmdlTWFwID0gU3RkVW5vcmRlcmVkTWFwPEZ1bmN0aW9uUmFuZ2UsIGJvb2wsIEhhc2hN
ZXRob2Q8RnVuY3Rpb25SYW5nZT4+OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAppbmRleCBiMjdlOGUzZDY0ZGU4NmYzNWNiNDY3NTg1
NzQ2Y2VmYzM5YTk1YmEyLi43Y2Q3OGM2OTI1ZTJhMmEwMjUzZDYwZGI1NmUzOTg3ZmUyZjg4NzNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmNwcApAQCAtOTE4LDcgKzkxOCw3IEBAIHVuc2lnbmVkIFNhbXBsaW5nUHJvZmlsZXI6OlN0
YWNrRnJhbWU6OmZ1bmN0aW9uU3RhcnRDb2x1bW4oKQogICAgIHJldHVybiBzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7CiB9CiAKLWludHB0cl90IFNhbXBsaW5nUHJvZmlsZXI6
OlN0YWNrRnJhbWU6OnNvdXJjZUlEKCkKK1NvdXJjZUlEIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNr
RnJhbWU6OnNvdXJjZUlEKCkKIHsKICAgICBzd2l0Y2ggKGZyYW1lVHlwZSkgewogICAgIGNhc2Ug
RnJhbWVUeXBlOjpVbmtub3duOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2FtcGxpbmdQcm9maWxlci5oCmluZGV4IDlhZjI3NTY1ZDQ1MTg1ODU0ODVmYzdiOTA3ZmU3M2Zl
NWNjYzc0ZGEuLjU4OGNmZjA2Mjk5ZTRiYWE4MjgyYWZhYjQzNzZkMTBhOWI3MjQ1MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKQEAg
LTE0OCw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZUZvckpT
T05UZXN0cyhWTSYpOyAvLyBVc2VkIGZvciBKU0Mgc3RyZXNzIHRlc3RzIGJlY2F1c2UgdGhleSB3
YW50IHRoZSAiKGFub255bW91cyBmdW5jdGlvbikiIHN0cmluZyBmb3IgYW5vbnltb3VzIGZ1bmN0
aW9ucyBhbmQgdGhleSB3YW50ICIoZXZhbCkiIGZvciBldmFsJ2QgY29kZS4KICAgICAgICAgaW50
IGZ1bmN0aW9uU3RhcnRMaW5lKCk7CiAgICAgICAgIHVuc2lnbmVkIGZ1bmN0aW9uU3RhcnRDb2x1
bW4oKTsKLSAgICAgICAgaW50cHRyX3Qgc291cmNlSUQoKTsKKyAgICAgICAgU291cmNlSUQgc291
cmNlSUQoKTsKICAgICAgICAgU3RyaW5nIHVybCgpOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAppbmRleCBmMzFiZDMzZjZl
ZTFkMTgyMDI2N2YzM2JiYTE4NDM4YWM5YjI3N2E2Li43NWRhZWU0YjhmMjhiNWJjMTBlMGU2MWMy
MzY5MGU2NDkyMDc1MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TY3JpcHRFeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2NyaXB0RXhlY3V0YWJsZS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBDb2RlQmxv
Y2tIYXNoIGhhc2hGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCkgY29uc3Q7CiAKICAgICBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsgfQotICAgIGlu
dHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXJJRCgpOyB9
CisgICAgU291cmNlSUQgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRl
cklEKCk7IH0KICAgICBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbigpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdpbigpOyB9CiAgICAgLy8gVGhp
cyBpcyBOT1QgdGhlIHBhdGggdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgY29tcHV0aW5nIHJlbGF0
aXZlIHBhdGhzIGZyb20gYSBzY3JpcHQuIFVzZSBTb3VyY2VPcmlnaW4ncyBVUkwgZm9yIHRoYXQs
IHRoZSB2YWx1ZXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIHNhbWUuLi4gVGhpcyBzaG91bGQgb25s
eSBiZSB1c2VkIGZvciBgZXJyb3Iuc291cmNlVVJMYCBhbmQgc3RhY2sgdHJhY2VzLgogICAgIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIo
KS0+c291cmNlVVJMKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0YWNrRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJh
bWUuaAppbmRleCAwNjA5YTU2ZDRlN2IyMmFlOWJmYzUxOTZiM2EyMTQwYjRkM2UzODc3Li4zM2I0
YTIwYjNlZjIxNTUzNDRlMTUzYzM4ZTdhNzkwMjNlZTcxZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIGNvbXB1dGVMaW5lQW5kQ29sdW1uKHVuc2lnbmVkJiBsaW5lLCB1bnNpZ25l
ZCYgY29sdW1uKSBjb25zdDsKICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lKFZNJikgY29uc3Q7Ci0g
ICAgaW50cHRyX3Qgc291cmNlSUQoKSBjb25zdDsKKyAgICBTb3VyY2VJRCBzb3VyY2VJRCgpIGNv
bnN0OwogICAgIFN0cmluZyBzb3VyY2VVUkwoKSBjb25zdDsKICAgICBTdHJpbmcgdG9TdHJpbmco
Vk0mKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZUxvY2F0aW9uQ2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlw
ZUxvY2F0aW9uQ2FjaGUuY3BwCmluZGV4IDA4ZDViOTY4ZjFiYTU3MmNkZTRmNDczNWYyNDVlNTJk
NTIxNDliNjMuLjE1M2I2NzU4YmI5NGIxMjFlNjZiYjc0MmVlODU4MzNmOWE4NzM2OWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5j
cHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0ZDo6cGFpcjxUeXBl
TG9jYXRpb24qLCBib29sPiBUeXBlTG9jYXRpb25DYWNoZTo6Z2V0VHlwZUxvY2F0aW9uKEdsb2Jh
bFZhcmlhYmxlSUQgZ2xvYmFsVmFyaWFibGVJRCwgaW50cHRyX3Qgc291cmNlSUQsIHVuc2lnbmVk
IHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFJlZlB0cjxUeXBlU2V0PiYmIGdsb2JhbFR5cGVTZXQsIFZN
KiB2bSkKK3N0ZDo6cGFpcjxUeXBlTG9jYXRpb24qLCBib29sPiBUeXBlTG9jYXRpb25DYWNoZTo6
Z2V0VHlwZUxvY2F0aW9uKEdsb2JhbFZhcmlhYmxlSUQgZ2xvYmFsVmFyaWFibGVJRCwgU291cmNl
SUQgc291cmNlSUQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFJlZlB0cjxUeXBlU2V0
PiYmIGdsb2JhbFR5cGVTZXQsIFZNKiB2bSkKIHsKICAgICBMb2NhdGlvbktleSBrZXk7CiAgICAg
a2V5Lm1fZ2xvYmFsVmFyaWFibGVJRCA9IGdsb2JhbFZhcmlhYmxlSUQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaAppbmRleCA4Njc1OGUy
NzE4YTMzYzQ1MTBiMjIzOWIzZmRhMTgxYWJmNzVlYTk1Li45ZmQwNGQ0ZWU4OTMwNzgxM2I4ZGEw
MjVmM2YxM2Q5MzgxOTZiMzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9UeXBlTG9jYXRpb25DYWNoZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmgKQEAgLTUyLDEyICs1MiwxMiBAQCBwdWJsaWM6CiAgICAg
ICAgIH0KIAogICAgICAgICBHbG9iYWxWYXJpYWJsZUlEIG1fZ2xvYmFsVmFyaWFibGVJRDsKLSAg
ICAgICAgaW50cHRyX3QgbV9zb3VyY2VJRDsKKyAgICAgICAgU29ydWNlSUQgbV9zb3VyY2VJRDsK
ICAgICAgICAgdW5zaWduZWQgbV9zdGFydDsKICAgICAgICAgdW5zaWduZWQgbV9lbmQ7CiAgICAg
fTsKIAotICAgIHN0ZDo6cGFpcjxUeXBlTG9jYXRpb24qLCBib29sPiBnZXRUeXBlTG9jYXRpb24o
R2xvYmFsVmFyaWFibGVJRCwgaW50cHRyX3QsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQs
IFJlZlB0cjxUeXBlU2V0PiYmLCBWTSopOworICAgIHN0ZDo6cGFpcjxUeXBlTG9jYXRpb24qLCBi
b29sPiBnZXRUeXBlTG9jYXRpb24oR2xvYmFsVmFyaWFibGVJRCwgU291cmNlSUQsIHVuc2lnbmVk
IHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFJlZlB0cjxUeXBlU2V0PiYmLCBWTSopOwogcHJpdmF0ZToK
ICAgICB1c2luZyBMb2NhdGlvbk1hcCA9IFN0ZFVub3JkZXJlZE1hcDxMb2NhdGlvbktleSwgVHlw
ZUxvY2F0aW9uKiwgSGFzaE1ldGhvZDxMb2NhdGlvbktleT4+OwogICAgIExvY2F0aW9uTWFwIG1f
bG9jYXRpb25NYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9U
eXBlUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2Zp
bGVyLmNwcAppbmRleCA2MjIxMTM5NDliZTlhNzU3ZWQ0MDBiNTJkYTUxMjk4YTMyM2RhYmY2Li43
ZTFiY2UyOWJhZmVmZmJjYTY0ZmM1NDVlYTRhYjg4YzhlZTFmZDYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAg
dm9pZCBUeXBlUHJvZmlsZXI6Omluc2VydE5ld0xvY2F0aW9uKFR5cGVMb2NhdGlvbiogbG9jYXRp
b24pCiAgICAgYnVja2V0LmFwcGVuZChsb2NhdGlvbik7CiB9CiAKLVN0cmluZyBUeXBlUHJvZmls
ZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFy
Y2hEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIHVuc2lnbmVkIG9mZnNldCwgaW50cHRyX3Qgc291cmNl
SUQsIFZNJiB2bSkKK1N0cmluZyBUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJl
c3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIHVu
c2lnbmVkIG9mZnNldCwgU291cmNlSUQgc291cmNlSUQsIFZNJiB2bSkKIHsKICAgICAvLyBUaGlz
IHJldHVybnMgYSBKU09OIHN0cmluZyByZXByZXNlbnRpbmcgYW4gT2JqZWN0IHdpdGggdGhlIGZv
bGxvd2luZyBwcm9wZXJ0aWVzOgogICAgIC8vICAgICBnbG9iYWxUeXBlU2V0OiAnSlNPTjxUeXBl
U2V0PiB8IG51bGwnCkBAIC0xMDIsNyArMTAyLDcgQEAgU3RyaW5nIFR5cGVQcm9maWxlcjo6dHlw
ZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2MK
ICAgICByZXR1cm4ganNvbi50b1N0cmluZygpOwogfQogCi1UeXBlTG9jYXRpb24qIFR5cGVQcm9m
aWxlcjo6ZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90LCBpbnRwdHJfdCBzb3VyY2VJRCwgVHlw
ZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBWTSYgdm0pCitUeXBlTG9jYXRp
b24qIFR5cGVQcm9maWxlcjo6ZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90LCBTb3VyY2VJRCBz
b3VyY2VJRCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBWTSYgdm0p
CiB7CiAgICAgUXVlcnlLZXkgcXVlcnlLZXkoc291cmNlSUQsIGRpdm90LCBkZXNjcmlwdG9yKTsK
ICAgICBhdXRvIGl0ZXIgPSBtX3F1ZXJ5Q2FjaGUuZmluZChxdWVyeUtleSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5oCmluZGV4IDc3OWNjMDBjMTBkYTll
MWViNmNhMTk3ODA1N2ZkYTIxOWQ4MGNiYzUuLmQ0NTExMTBkZGQ4YjFhMTNlOWJmZDJlYWNhOWIz
YTM0YzY2YzNmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9m
aWxlci5oCkBAIC01MCw3ICs1MCw3IEBAIHN0cnVjdCBRdWVyeUtleSB7CiAgICAgICAgICwgbV9z
ZWFyY2hEZXNjcmlwdG9yKFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3JGdW5jdGlvblJldHVy
bikKICAgICB7IH0KIAotICAgIFF1ZXJ5S2V5KGludHB0cl90IHNvdXJjZUlELCB1bnNpZ25lZCBk
aXZvdCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBzZWFyY2hEZXNjcmlwdG9yKQorICAg
IFF1ZXJ5S2V5KFNvdXJjZUlELCB1bnNpZ25lZCBkaXZvdCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVz
Y3JpcHRvciBzZWFyY2hEZXNjcmlwdG9yKQogICAgICAgICA6IG1fc291cmNlSUQoc291cmNlSUQp
CiAgICAgICAgICwgbV9kaXZvdChkaXZvdCkKICAgICAgICAgLCBtX3NlYXJjaERlc2NyaXB0b3Io
c2VhcmNoRGVzY3JpcHRvcikKQEAgLTgyLDcgKzgyLDcgQEAgc3RydWN0IFF1ZXJ5S2V5IHsKICAg
ICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQogCi0gICAgaW50cHRyX3QgbV9zb3VyY2VJRDsKKyAg
ICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgIHVuc2lnbmVkIG1fZGl2b3Q7CiAgICAgVHlwZVBy
b2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBtX3NlYXJjaERlc2NyaXB0b3I7CiB9OwpAQCAtMTE2LDE3
ICsxMTYsMTcgQEAgY2xhc3MgVHlwZVByb2ZpbGVyIHsKIHB1YmxpYzoKICAgICBUeXBlUHJvZmls
ZXIoKTsKICAgICB2b2lkIGxvZ1R5cGVzRm9yVHlwZUxvY2F0aW9uKFR5cGVMb2NhdGlvbiosIFZN
Jik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHR5cGVJbmZvcm1hdGlvbkZvckV4cHJl
c3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yLCB1bnNpZ25lZCBvZmZz
ZXQsIGludHB0cl90IHNvdXJjZUlELCBWTSYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmlu
ZyB0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNo
RGVzY3JpcHRvciwgdW5zaWduZWQgb2Zmc2V0LCBTb3VyY2VJRCwgVk0mKTsKICAgICB2b2lkIGlu
c2VydE5ld0xvY2F0aW9uKFR5cGVMb2NhdGlvbiopOwogICAgIFR5cGVMb2NhdGlvbkNhY2hlKiB0
eXBlTG9jYXRpb25DYWNoZSgpIHsgcmV0dXJuICZtX3R5cGVMb2NhdGlvbkNhY2hlOyB9Ci0gICAg
VHlwZUxvY2F0aW9uKiBmaW5kTG9jYXRpb24odW5zaWduZWQgZGl2b3QsIGludHB0cl90IHNvdXJj
ZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yLCBWTSYpOworICAgIFR5cGVMb2NhdGlv
biogZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90LCBTb3VyY2VJRCwgVHlwZVByb2ZpbGVyU2Vh
cmNoRGVzY3JpcHRvciwgVk0mKTsKICAgICBHbG9iYWxWYXJpYWJsZUlEIGdldE5leHRVbmlxdWVW
YXJpYWJsZUlEKCkgeyByZXR1cm4gbV9uZXh0VW5pcXVlVmFyaWFibGVJRCsrOyB9CiAgICAgVHlw
ZUxvY2F0aW9uKiBuZXh0VHlwZUxvY2F0aW9uKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlVHlwZVNl
dENhY2hlKFZNJik7CiAgICAgdm9pZCBkdW1wVHlwZVByb2ZpbGVyRGF0YShWTSYpOwogICAgIAog
cHJpdmF0ZToKLSAgICB0eXBlZGVmIEhhc2hNYXA8aW50cHRyX3QsIFZlY3RvcjxUeXBlTG9jYXRp
b24qPj4gU291cmNlSURUb0xvY2F0aW9uQnVja2V0TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxT
b3VyY2VJRCwgVmVjdG9yPFR5cGVMb2NhdGlvbio+PiBTb3VyY2VJRFRvTG9jYXRpb25CdWNrZXRN
YXA7CiAgICAgU291cmNlSURUb0xvY2F0aW9uQnVja2V0TWFwIG1fYnVja2V0TWFwOwogICAgIFR5
cGVMb2NhdGlvbkNhY2hlIG1fdHlwZUxvY2F0aW9uQ2FjaGU7CiAgICAgdHlwZWRlZiBIYXNoTWFw
PFF1ZXJ5S2V5LCBUeXBlTG9jYXRpb24qPiBUeXBlTG9jYXRpb25RdWVyeUNhY2hlOwo=
</data>
<flag name="commit-queue"
          id="464658"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440637</attachid>
            <date>2021-10-08 10:25:58 -0700</date>
            <delta_ts>2021-10-11 07:17:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231436-20211008132558.patch</filename>
            <type>text/plain</type>
            <size>36785</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OThiZWM5NmI1M2Y2ODhmZmI4YjVkYmU1NDY4ZTk2Nzc5OWIwM2Q4Li5jZjYwMGVlMWNhM2Q2OGYy
MGM3ODBhNWJjNWZmNDEzZWFiZTJjNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OCBAQAorMjAyMS0xMC0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTb3VyY2VJRCBzaG91bGQgaGF2ZSBhIHR5cGUgbmFtZSBhbmQgb25s
eSBiZSAzMi1iaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGdpdmVzIFNvdXJjZUlEIGEgcHJvcGVyIHR5cGUgbmFtZSBhbmQgc2hy
aW5rcyBpdCB0bworICAgICAgICAzMi1iaXRzIG9uIDY0LWJpdCBzeXN0ZW1zLiBTaHJpbmtpbmcg
dGhlIHNpemUgbWFrZXMgcm9vbSBvbgorICAgICAgICBTb3VyY2VQcm92aWRlciBmb3IgbWV0YWRh
dGEgaW4gYSBmdXR1cmUgcGF0Y2ggSSdtIHdvcmtpbmcgb24uCisgICAgICAgIEl0J3MgYWxzbyBw
cmV0dHkgdW5saWtlbHkgdGhhdCBhbnkgc3lzdGVtIGhhcyBtb3JlIHRoYW4gfjQgYmlsbGlvbgor
ICAgICAgICBzY3JpcHQgdGFncywgZXZhbHMsIHdhc20gbW9kdWxlcyBzbyBzaGlua2luZyB0aGUg
c2l6ZSBpcyB1bmxpa2VseQorICAgICAgICB0byBjYXVzZSBhbnkgZGVidWdnZXIvcHJvZmlsaW5n
IGlzc3Vlcy4KKworICAgICAgICAqIGJ5dGVjb2RlL1R5cGVMb2NhdGlvbi5oOgorICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnRvZ2dsZUJy
ZWFrcG9pbnQpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6cGF1c2VJZk5lZWRlZCk6CisgICAg
ICAgICogZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oOgorICAgICAgICAoSlNDOjpEZWJ1Z2dl
ckxvY2F0aW9uOjpEZWJ1Z2dlckxvY2F0aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dl
clByaW1pdGl2ZXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5o
OgorICAgICAgICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpzb3VyY2VJRCBjb25z
dCk6CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwOgorICAg
ICAgICAoSW5zcGVjdG9yOjpDcmVhdGVTY3JpcHRDYWxsU3RhY2tGdW5jdG9yOjpvcGVyYXRvcigp
IGNvbnN0KToKKyAgICAgICAgKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4
Y2VwdGlvbik6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6c291cmNlSUQpOgorICAgICAgICAqIGludGVy
cHJldGVyL1N0YWNrVmlzaXRvci5oOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAg
ICAoSlNDOjpTY29wZU5vZGU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBwYXJzZXIvU291
cmNlQ29kZS5oOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpTb3VyY2VDb2RlKToKKyAgICAg
ICAgKEpTQzo6U291cmNlQ29kZTo6Zmlyc3RMaW5lIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291
cmNlQ29kZTo6c3RhcnRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpw
cm92aWRlcklEIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6cHJvdmlkZXIgY29u
c3QpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6U291cmNlQ29kZTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChKU0M6Om1h
a2VTb3VyY2UpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpzdWJFeHByZXNzaW9uIGNvbnN0
KToKKyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoSlNDOjpT
b3VyY2VQcm92aWRlcjo6Z2V0SUQpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5o
OgorICAgICAgICAoSlNDOjpTb3VyY2VQcm92aWRlcjo6YXNJRCk6CisgICAgICAgICogcnVudGlt
ZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9m
aWxlcjo6Z2V0QmFzaWNCbG9ja0xvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQ
cm9maWxlcjo6Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRCBjb25zdCk6CisgICAgICAgIChKU0M6
OkNvbnRyb2xGbG93UHJvZmlsZXI6Omhhc0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRCZWVuRXhlY3V0
ZWQpOgorICAgICAgICAoSlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpiYXNpY0Jsb2NrRXhlY3V0
aW9uQ291bnRBdFRleHRPZmZzZXQpOgorICAgICAgICAqIHJ1bnRpbWUvQ29udHJvbEZsb3dQcm9m
aWxlci5oOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcDoK
KyAgICAgICAgKEpTQzo6RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zm
c2V0KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjppbnNlcnRVbmV4
ZWN1dGVkUmFuZ2UpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OnJl
bW92ZVVuZXhlY3V0ZWRSYW5nZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uSGFzRXhlY3V0ZWRD
YWNoZTo6Z2V0RnVuY3Rpb25SYW5nZXMpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25IYXNF
eGVjdXRlZENhY2hlLmg6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6c291cmNlSUQpOgor
ICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oOgorICAgICAgICAqIHJ1bnRpbWUv
U2NyaXB0RXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpzb3Vy
Y2VJRCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmNwcDoKKyAgICAgICAg
KEpTQzo6U3RhY2tGcmFtZTo6c291cmNlSUQgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvU3Rh
Y2tGcmFtZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuY3BwOgorICAg
ICAgICAoSlNDOjpUeXBlTG9jYXRpb25DYWNoZTo6Z2V0VHlwZUxvY2F0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmg6CisgICAgICAgICogcnVudGltZS9UeXBlUHJv
ZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZv
ckV4cHJlc3Npb25BdE9mZnNldCk6CisgICAgICAgIChKU0M6OlR5cGVQcm9maWxlcjo6ZmluZExv
Y2F0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1R5cGVQcm9maWxlci5oOgorICAgICAgICAoSlND
OjpRdWVyeUtleTo6UXVlcnlLZXkpOgorICAgICAgICAoSlNDOjpRdWVyeUtleTo6aXNIYXNoVGFi
bGVEZWxldGVkVmFsdWUgY29uc3QpOgorCiAyMDIxLTEwLTA3ICBBbGV4ZXkgU2h2YXlrYSAgPHNo
dmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBgaGlnaFdhdGVyTWFya2Agc2hvdWxkIGJl
IGEgcmVhZG9ubHkgV2ViSURMIGF0dHJpYnV0ZSBvZiBxdWV1aW5nIHN0cmF0ZWdpZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9UeXBlTG9jYXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9UeXBlTG9jYXRpb24uaAppbmRleCAxZTkyMzlk
YzRlMDM1MmJkYjJiNTkyNzUzNDg0Njc3MTQ4ZGI3M2VjLi5jNzZmMDVhZDA0MWQ3NTQ5YmNlZjVk
YjQwY2Q1YzVjOWY5MDU5NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVHlwZUxvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1R5cGVMb2NhdGlvbi5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICBHbG9iYWxWYXJp
YWJsZUlEIG1fZ2xvYmFsVmFyaWFibGVJRDsKICAgICBSZWZQdHI8VHlwZVNldD4gbV9pbnN0cnVj
dGlvblR5cGVTZXQ7CiAgICAgUmVmUHRyPFR5cGVTZXQ+IG1fZ2xvYmFsVHlwZVNldDsKLSAgICBp
bnRwdHJfdCBtX3NvdXJjZUlEOworICAgIFNvdXJjZUlEIG1fc291cmNlSUQ7CiAgICAgdW5zaWdu
ZWQgbV9kaXZvdFN0YXJ0OwogICAgIHVuc2lnbmVkIG1fZGl2b3RFbmQ7CiAgICAgdW5zaWduZWQg
bV9kaXZvdEZvckZ1bmN0aW9uT2Zmc2V0SWZSZXR1cm5TdGF0ZW1lbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAppbmRleCBkZDM1N2Q4NWM0NDc2ZDM1MWM3
ZTUxNDQ5NGEyZmVhNmE4YTRmYTFjLi4wYmNlMmE2ODk4OTM3ZmEyZDhiNDQwY2IyZjI2MTZkNTFl
MzY1Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAK
QEAgLTM1MCw3ICszNTAsNyBAQCB2b2lkIERlYnVnZ2VyOjp0b2dnbGVCcmVha3BvaW50KENvZGVC
bG9jayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVha3BvaW50LCBCcgogCiAgICAgU2NyaXB0
RXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCk7CiAK
LSAgICBTb3VyY2VJRCBzb3VyY2VJRCA9IHN0YXRpY19jYXN0PFNvdXJjZUlEPihleGVjdXRhYmxl
LT5zb3VyY2VJRCgpKTsKKyAgICBTb3VyY2VJRCBzb3VyY2VJRCA9IGV4ZWN1dGFibGUtPnNvdXJj
ZUlEKCk7CiAgICAgaWYgKGJyZWFrcG9pbnQuc291cmNlSUQoKSAhPSBzb3VyY2VJRCkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC04NzUsNyArODc1LDcgQEAgdm9pZCBEZWJ1Z2dlcjo6cGF1c2VJZk5l
ZWRlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIGlmIChtX3N1cHByZXNzQWxs
UGF1c2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnRwdHJfdCBzb3VyY2VJRCA9IERlYnVn
Z2VyQ2FsbEZyYW1lOjpzb3VyY2VJREZvckNhbGxGcmFtZShtX2N1cnJlbnRDYWxsRnJhbWUpOwor
ICAgIFNvdXJjZUlEIHNvdXJjZUlEID0gRGVidWdnZXJDYWxsRnJhbWU6OnNvdXJjZUlERm9yQ2Fs
bEZyYW1lKG1fY3VycmVudENhbGxGcmFtZSk7CiAKICAgICBhdXRvIGJsYWNrYm94VHlwZUl0ZXJh
dG9yID0gbV9ibGFja2JveGVkU2NyaXB0cy5maW5kKHNvdXJjZUlEKTsKICAgICBpZiAoYmxhY2ti
b3hUeXBlSXRlcmF0b3IgIT0gbV9ibGFja2JveGVkU2NyaXB0cy5lbmQoKSAmJiBibGFja2JveFR5
cGVJdGVyYXRvci0+dmFsdWUgPT0gQmxhY2tib3hUeXBlOjpJZ25vcmVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgKaW5kZXggZTk0ODc3
MTY4YzQwMDRlYjljYWQzOGU3NWI5ZTM4ZmMyMDA2MjMwYy4uNGE4MzEyMWI2NGFhNDA1ZTQ4OTBj
N2QxMDEwNDQwNTFlMzc0NTAzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNjcmlwdEV4
ZWN1dGFibGU7CiBzdHJ1Y3QgRGVidWdnZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1Z2dlckxvY2F0
aW9uKCkgeyB9Ci0gICAgRGVidWdnZXJMb2NhdGlvbihpbnRwdHJfdCBzb3VyY2VJRCwgdW5zaWdu
ZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQorICAgIERlYnVnZ2VyTG9jYXRpb24oU291cmNlSUQg
c291cmNlSUQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKICAgICAgICAgOiBzb3Vy
Y2VJRChzb3VyY2VJRCkKICAgICAgICAgLCBsaW5lKGxpbmUpCiAgICAgICAgICwgY29sdW1uKGNv
bHVtbikKQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IERlYnVnZ2VyTG9jYXRpb24gewogCiAgICAg
RGVidWdnZXJMb2NhdGlvbihTY3JpcHRFeGVjdXRhYmxlKik7CiAKLSAgICBpbnRwdHJfdCBzb3Vy
Y2VJRCB7IG5vU291cmNlSUQgfTsKKyAgICBTb3VyY2VJRCBzb3VyY2VJRCB7IG5vU291cmNlSUQg
fTsKICAgICB1bnNpZ25lZCBsaW5lIHsgMCB9OwogICAgIHVuc2lnbmVkIGNvbHVtbiB7IDAgfTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQ
cmltaXRpdmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQcmlt
aXRpdmVzLmgKaW5kZXggNDI1NjNhY2YzZTJmYmY5ZTMzYzBmNTQwYmFkNTdjMzQzMDU2NjhlZi4u
MzJhYzk2MmQxODMyYjE0ZWVmNTUzYjk4ZjI5MGYxM2QyZmEwMDA3MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1pdGl2ZXMuaApAQCAtMjks
NyArMjksNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotdXNpbmcgU291cmNlSUQgPSBzaXplX3Q7
Cit1c2luZyBTb3VyY2VJRCA9IHVpbnQzMl90OwogY29uc3RleHByIFNvdXJjZUlEIG5vU291cmNl
SUQgPSAwOwogCiB1c2luZyBCcmVha3BvaW50SUQgPSBzaXplX3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IDk1
YmQxZjMyYjAxOTI4OGRlNzczM2E3OTBlZDIzYWE0MmE2MTRhZjAuLmM1NTdjNjY2OWY3YzkwOTEy
YzY1N2UyNjUyM2M5MjRmYzEwNWZkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICBKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYWxsZXIoKTsKLSAgICBp
bnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUtPnNv
dXJjZUlEKCk7IH0KKyAgICBKU0M6OlNvdXJjZUlEIHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9kZWJ1Z2dlckNhbGxGcmFtZS0+c291cmNlSUQoKTsgfQogICAgIGNvbnN0IFRleHRQb3NpdGlv
biBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUtPnBvc2l0aW9u
KCk7IH0KICAgICBpbnQgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUt
PmxpbmUoKTsgfQogICAgIGludCBjb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2Fs
bEZyYW1lLT5jb2x1bW4oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKaW5kZXggOTZhMzVjZWJlOGJi
NjQyNTgyOWE3MjkxZmYwMjlmY2U0YzIzYThlYi4uNDFhY2M4NTdjNjc2OGM5ZjZiYTk4MzBhNzFh
YTAyZmE5MzQ3NmY5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHVuc2lnbmVkIGxpbmU7CiAgICAgICAgICAgICB1bnNpZ25lZCBj
b2x1bW47CiAgICAgICAgICAgICB2aXNpdG9yLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBj
b2x1bW4pOwotICAgICAgICAgICAgbV9mcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZSh2aXNp
dG9yLT5mdW5jdGlvbk5hbWUoKSwgdmlzaXRvci0+c291cmNlVVJMKCksIHN0YXRpY19jYXN0PFNv
dXJjZUlEPih2aXNpdG9yLT5zb3VyY2VJRCgpKSwgbGluZSwgY29sdW1uKSk7CisgICAgICAgICAg
ICBtX2ZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKHZpc2l0b3ItPmZ1bmN0aW9uTmFtZSgp
LCB2aXNpdG9yLT5zb3VyY2VVUkwoKSwgdmlzaXRvci0+c291cmNlSUQoKSwgbGluZSwgY29sdW1u
KSk7CiAKICAgICAgICAgICAgIG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUtLTsK
ICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlOwpAQCAtMTYwLDcgKzE2
MCw3IEBAIFJlZjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zyb21FeGNl
cHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgICAgIHVuc2lnbmVkIGNvbHVtbjsK
ICAgICAgICAgc3RhY2tUcmFjZVtpXS5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4p
OwogICAgICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0gc3RhY2tUcmFjZVtpXS5mdW5jdGlvbk5h
bWUodm0pOwotICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZShmdW5jdGlvbk5h
bWUsIHN0YWNrVHJhY2VbaV0uc291cmNlVVJMKCksIHN0YXRpY19jYXN0PFNvdXJjZUlEPihzdGFj
a1RyYWNlW2ldLnNvdXJjZUlEKCkpLCBsaW5lLCBjb2x1bW4pKTsKKyAgICAgICAgZnJhbWVzLmFw
cGVuZChTY3JpcHRDYWxsRnJhbWUoZnVuY3Rpb25OYW1lLCBzdGFja1RyYWNlW2ldLnNvdXJjZVVS
TCgpLCBzdGFja1RyYWNlW2ldLnNvdXJjZUlEKCksIGxpbmUsIGNvbHVtbikpOwogICAgIH0KIAog
ICAgIC8vIEZhbGxiYWNrIHRvIGdldHRpbmcgYXQgbGVhc3QgdGhlIGxpbmUgYW5kIHNvdXJjZVVS
TCBmcm9tIHRoZSBleGNlcHRpb24gb2JqZWN0IGlmIGl0IGhhcyB2YWx1ZXMgYW5kIHRoZSBleGNl
cHRpb25TdGFjayBkb2Vzbid0LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAppbmRleCA1N2ExYmRiNmRiZDViMTYwNjkxYzY1NjUwZmMw
ZDQ1ZGJlODA5ZWFiLi40YjVmZmM2YWQwOThhYThiOGI1ZDZmZTMyM2RlNDU5YzcwNDRmMTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9y
LmNwcApAQCAtMzUxLDcgKzM1MSw3IEBAIFN0cmluZyBTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0
cmluZygpIGNvbnN0CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoZnVuY3Rpb25OYW1lLCBzZXBhcmF0
b3IsIHNvdXJjZVVSTCwgJzonLCBsaW5lLCAnOicsIGNvbHVtbik7CiB9CiAKLWludHB0cl90IFN0
YWNrVmlzaXRvcjo6RnJhbWU6OnNvdXJjZUlEKCkKK1NvdXJjZUlEIFN0YWNrVmlzaXRvcjo6RnJh
bWU6OnNvdXJjZUlEKCkKIHsKICAgICBpZiAoQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB0aGlzLT5j
b2RlQmxvY2soKSkKICAgICAgICAgcmV0dXJuIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCkt
PnNvdXJjZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvU3RhY2tWaXNpdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3Rh
Y2tWaXNpdG9yLmgKaW5kZXggMGJiOWFmNTgxNWE1MTA2M2EwM2IzMjAwMDQxMzYxODg0Y2U2ZGYy
Ny4uNWY2NmJjYjVkNDExYWFkNGNkY2I5Y2RiZjg5NDkxMzJhNzVmYzA0YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaApAQCAtNDYsNiAr
NDYsOCBAQCBjbGFzcyBDbG9uZWRBcmd1bWVudHM7CiBjbGFzcyBSZWdpc3RlcjsKIGNsYXNzIFJl
Z2lzdGVyQXRPZmZzZXRMaXN0OwogCit1c2luZyBTb3VyY2VJRCA9IHVpbnQzMl90OworCiBjbGFz
cyBTdGFja1Zpc2l0b3IgewogcHVibGljOgogICAgIGNsYXNzIEZyYW1lIHsKQEAgLTg3LDcgKzg5
LDcgQEAgcHVibGljOgogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc291cmNlVVJM
KCkgY29uc3Q7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyB0b1N0cmluZygpIGNv
bnN0OwogCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIGludHB0cl90IHNvdXJjZUlEKCk7Cisg
ICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZUlEIHNvdXJjZUlEKCk7CiAKICAgICAgICAg
Q29kZVR5cGUgY29kZVR5cGUoKSBjb25zdDsKICAgICAgICAgYm9vbCBoYXNMaW5lQW5kQ29sdW1u
SW5mbygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IGE0MjRj
ZjFmYWZmYWJkYTc0NTc2NzY1YzI1MzE3NTQyZjVlZmM1NzUuLmUzMGViODE0YjllMjAyNmVjNGUy
YWEzNjQyOTI0ODM4OTJmZTczMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgK
QEAgLTE4OTgsNyArMTg5OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTY29wZU5vZGUo
UGFyc2VyQXJlbmEmLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0LCBjb25zdCBKU1Rva2Vu
TG9jYXRpb24mIGVuZCwgY29uc3QgU291cmNlQ29kZSYsIFNvdXJjZUVsZW1lbnRzKiwgVmFyaWFi
bGVFbnZpcm9ubWVudCYmLCBGdW5jdGlvblN0YWNrJiYsIFZhcmlhYmxlRW52aXJvbm1lbnQmJiwg
VW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQmJiwgQ29kZUZlYXR1cmVzLCBMZXhpY2FsU2NvcGVGZWF0
dXJlcywgSW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzLCBpbnQgbnVtQ29uc3RhbnRzKTsK
IAogICAgICAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Nv
dXJjZTsgfQotICAgICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlLnByb3ZpZGVySUQoKTsgfQorICAgICAgICBTb3VyY2VJRCBzb3VyY2VJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlLnByb3ZpZGVySUQoKTsgfQogCiAgICAgICAgIGludCBzdGFydExpbmUo
KSBjb25zdCB7IHJldHVybiBtX3N0YXJ0TGluZU51bWJlcjsgfQogICAgICAgICBpbnQgc3RhcnRT
dGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRTdGFydE9mZnNldDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaAppbmRleCA5OTJkODlhMjEwM2RlMzZj
MGZkZDY3NWE1M2ZmOGIxMzEwYzAxZjM1Li5kMDE4ODc5MzE4OGE5YzY1ZTFjOTA3MTZiMWJhOTg1
YmVhYzljNzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZUNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaApA
QCAtMzIsNzkgKzMyLDgxIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0gICAgY2xhc3MgU291cmNl
Q29kZSA6IHB1YmxpYyBVbmxpbmtlZFNvdXJjZUNvZGUgewotICAgICAgICBmcmllbmQgY2xhc3Mg
Q2FjaGVkU291cmNlQ29kZTsKLSAgICAgICAgZnJpZW5kIGNsYXNzIENhY2hlZFNvdXJjZUNvZGVX
aXRob3V0UHJvdmlkZXI7Ci0KLSAgICBwdWJsaWM6Ci0gICAgICAgIFNvdXJjZUNvZGUoKQotICAg
ICAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoKQotICAgICAgICAgICAgLCBtX2ZpcnN0TGlu
ZShPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKQotICAgICAgICAgICAgLCBtX3N0YXJ0Q29s
dW1uKE9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCkpCi0gICAgICAgIHsKLSAgICAgICAgfQot
Ci0gICAgICAgIFNvdXJjZUNvZGUoUmVmPFNvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyKQotICAg
ICAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoV1RGTW92ZShwcm92aWRlcikpCi0gICAgICAg
IHsKLSAgICAgICAgfQotCi0gICAgICAgIFNvdXJjZUNvZGUoUmVmPFNvdXJjZVByb3ZpZGVyPiYm
IHByb3ZpZGVyLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCi0gICAgICAgICAgICA6
IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3ZpZGVyKSkKLSAgICAgICAgICAgICwgbV9m
aXJzdExpbmUoT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6bWF4KGZpcnN0TGlu
ZSwgMSkpKQotICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmZyb21P
bmVCYXNlZEludChzdGQ6Om1heChzdGFydENvbHVtbiwgMSkpKQotICAgICAgICB7Ci0gICAgICAg
IH0KLQotICAgICAgICBTb3VyY2VDb2RlKFJlZlB0cjxTb3VyY2VQcm92aWRlcj4mJiBwcm92aWRl
ciwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBpbnQgZmlyc3RMaW5lLCBpbnQgc3Rh
cnRDb2x1bW4pCi0gICAgICAgICAgICA6IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3Zp
ZGVyKSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCkKLSAgICAgICAgICAgICwgbV9maXJzdExpbmUo
T3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6bWF4KGZpcnN0TGluZSwgMSkpKQot
ICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZElu
dChzdGQ6Om1heChzdGFydENvbHVtbiwgMSkpKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAg
ICAgICBPcmRpbmFsTnVtYmVyIGZpcnN0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RMaW5l
OyB9Ci0gICAgICAgIE9yZGluYWxOdW1iZXIgc3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBt
X3N0YXJ0Q29sdW1uOyB9Ci0KLSAgICAgICAgaW50cHRyX3QgcHJvdmlkZXJJRCgpIGNvbnN0Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9wcm92aWRlcikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gU291cmNlUHJvdmlkZXI6Om51bGxJRDsKLSAgICAgICAgICAgIHJldHVybiBtX3Byb3Zp
ZGVyLT5hc0lEKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBTb3VyY2VQcm92aWRlciogcHJvdmlk
ZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyLmdldCgpOyB9Ci0KLSAgICAgICAgU291cmNl
Q29kZSBzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xvc2VCcmFj
ZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBjb25zdDsKLQotICAgICAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgU291cmNlQ29kZSYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBtX2ZpcnN0TGluZSA9PSBvdGhlci5tX2ZpcnN0TGluZQotICAgICAg
ICAgICAgICAgICYmIG1fc3RhcnRDb2x1bW4gPT0gb3RoZXIubV9zdGFydENvbHVtbgotICAgICAg
ICAgICAgICAgICYmIG1fcHJvdmlkZXIgPT0gb3RoZXIubV9wcm92aWRlcgotICAgICAgICAgICAg
ICAgICYmIG1fc3RhcnRPZmZzZXQgPT0gb3RoZXIubV9zdGFydE9mZnNldAotICAgICAgICAgICAg
ICAgICYmIG1fZW5kT2Zmc2V0ID09IG90aGVyLm1fZW5kT2Zmc2V0OwotICAgICAgICB9Ci0KLSAg
ICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNvdXJjZUNvZGUmIG90aGVyKSBjb25zdAotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgICAgIH0K
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIE9yZGluYWxOdW1iZXIgbV9maXJzdExpbmU7Ci0gICAg
ICAgIE9yZGluYWxOdW1iZXIgbV9zdGFydENvbHVtbjsKLSAgICB9OwotCi0gICAgaW5saW5lIFNv
dXJjZUNvZGUgbWFrZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3Jp
Z2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZygpLCBjb25zdCBUZXh0
UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0p
Cit1c2luZyBTb3VyY2VJRCA9IHVpbnQzMl90OworCitjbGFzcyBTb3VyY2VDb2RlIDogcHVibGlj
IFVubGlua2VkU291cmNlQ29kZSB7CisgICAgZnJpZW5kIGNsYXNzIENhY2hlZFNvdXJjZUNvZGU7
CisgICAgZnJpZW5kIGNsYXNzIENhY2hlZFNvdXJjZUNvZGVXaXRob3V0UHJvdmlkZXI7CisKK3B1
YmxpYzoKKyAgICBTb3VyY2VDb2RlKCkKKyAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoKQor
ICAgICAgICAsIG1fZmlyc3RMaW5lKE9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCkpCisgICAg
ICAgICwgbV9zdGFydENvbHVtbihPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKQorICAgIHsK
KyAgICB9CisKKyAgICBTb3VyY2VDb2RlKFJlZjxTb3VyY2VQcm92aWRlcj4mJiBwcm92aWRlcikK
KyAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoV1RGTW92ZShwcm92aWRlcikpCisgICAgewor
ICAgIH0KKworICAgIFNvdXJjZUNvZGUoUmVmPFNvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyLCBp
bnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCisgICAgICAgIDogVW5saW5rZWRTb3VyY2VD
b2RlKFdURk1vdmUocHJvdmlkZXIpKQorICAgICAgICAsIG1fZmlyc3RMaW5lKE9yZGluYWxOdW1i
ZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChmaXJzdExpbmUsIDEpKSkKKyAgICAgICAgLCBt
X3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChzdGFy
dENvbHVtbiwgMSkpKQorICAgIHsKKyAgICB9CisKKyAgICBTb3VyY2VDb2RlKFJlZlB0cjxTb3Vy
Y2VQcm92aWRlcj4mJiBwcm92aWRlciwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBp
bnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCisgICAgICAgIDogVW5saW5rZWRTb3VyY2VD
b2RlKFdURk1vdmUocHJvdmlkZXIpLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KQorICAgICAgICAs
IG1fZmlyc3RMaW5lKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChmaXJz
dExpbmUsIDEpKSkKKyAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmZyb21P
bmVCYXNlZEludChzdGQ6Om1heChzdGFydENvbHVtbiwgMSkpKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIFNvdXJjZUNvZGUoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJj
ZU9yaWdpbiwgV1RGTW92ZShmaWxlbmFtZSksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpLCBz
dGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1u
Lm9uZUJhc2VkSW50KCkpOwogICAgIH0KLSAgICAKLSAgICBpbmxpbmUgU291cmNlQ29kZSBTb3Vy
Y2VDb2RlOjpzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xvc2VC
cmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBjb25zdAorCisgICAgT3JkaW5h
bE51bWJlciBmaXJzdExpbmUoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0TGluZTsgfQorICAgIE9y
ZGluYWxOdW1iZXIgc3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9
CisKKyAgICBTb3VyY2VJRCBwcm92aWRlcklEKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHN0YXJ0
Q29sdW1uICs9IDE7IC8vIENvbnZlcnQgdG8gYmFzZSAxLgotICAgICAgICByZXR1cm4gU291cmNl
Q29kZShSZWZQdHI8U291cmNlUHJvdmlkZXI+IHsgcHJvdmlkZXIoKSB9LCBvcGVuQnJhY2UsIGNs
b3NlQnJhY2UgKyAxLCBmaXJzdExpbmUsIHN0YXJ0Q29sdW1uKTsKKyAgICAgICAgaWYgKCFtX3By
b3ZpZGVyKQorICAgICAgICAgICAgcmV0dXJuIFNvdXJjZVByb3ZpZGVyOjpudWxsSUQ7CisgICAg
ICAgIHJldHVybiBtX3Byb3ZpZGVyLT5hc0lEKCk7CiAgICAgfQogCisgICAgU291cmNlUHJvdmlk
ZXIqIHByb3ZpZGVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlci5nZXQoKTsgfQorCisgICAg
U291cmNlQ29kZSBzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xv
c2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBjb25zdDsKKworICAgIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2VDb2RlJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBtX2ZpcnN0TGluZSA9PSBvdGhlci5tX2ZpcnN0TGluZQorICAgICAgICAgICAg
JiYgbV9zdGFydENvbHVtbiA9PSBvdGhlci5tX3N0YXJ0Q29sdW1uCisgICAgICAgICAgICAmJiBt
X3Byb3ZpZGVyID09IG90aGVyLm1fcHJvdmlkZXIKKyAgICAgICAgICAgICYmIG1fc3RhcnRPZmZz
ZXQgPT0gb3RoZXIubV9zdGFydE9mZnNldAorICAgICAgICAgICAgJiYgbV9lbmRPZmZzZXQgPT0g
b3RoZXIubV9lbmRPZmZzZXQ7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNv
dXJjZUNvZGUmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0g
b3RoZXIpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBPcmRpbmFsTnVtYmVyIG1fZmlyc3RMaW5l
OworICAgIE9yZGluYWxOdW1iZXIgbV9zdGFydENvbHVtbjsKK307CisKK2lubGluZSBTb3VyY2VD
b2RlIG1ha2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYg
c291cmNlT3JpZ2luLCBTdHJpbmcgZmlsZW5hbWUgPSBTdHJpbmcoKSwgY29uc3QgVGV4dFBvc2l0
aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNl
VHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQorewor
ICAgIHJldHVybiBTb3VyY2VDb2RlKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNl
LCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoZmlsZW5hbWUpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VU
eXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5t
X2NvbHVtbi5vbmVCYXNlZEludCgpKTsKK30KKworaW5saW5lIFNvdXJjZUNvZGUgU291cmNlQ29k
ZTo6c3ViRXhwcmVzc2lvbih1bnNpZ25lZCBvcGVuQnJhY2UsIHVuc2lnbmVkIGNsb3NlQnJhY2Us
IGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVtbikgY29uc3QKK3sKKyAgICBzdGFydENvbHVt
biArPSAxOyAvLyBDb252ZXJ0IHRvIGJhc2UgMS4KKyAgICByZXR1cm4gU291cmNlQ29kZShSZWZQ
dHI8U291cmNlUHJvdmlkZXI+IHsgcHJvdmlkZXIoKSB9LCBvcGVuQnJhY2UsIGNsb3NlQnJhY2Ug
KyAxLCBmaXJzdExpbmUsIHN0YXJ0Q29sdW1uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCmluZGV4
IDYwNmU1ZjE3NDRhZjBmNjEwZGRjY2U3NjFiYzkzZTMyMjNiOTUzZGIuLjJiZDU1OWIzNTNjMzg3
YTVmNjAxMjVjMjM2Y2ZjOTRlMjg5OTI3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJTb3VyY2VQcm92aWRlci5oIgogCi0jaW5jbHVkZSA8d3RmL0xvY2su
aD4KLQogbmFtZXNwYWNlIEpTQyB7CiAKIERFRklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5U
SUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIpOwpAQCAtNDQsMTMgKzQyLDEwIEBAIFNvdXJjZVBy
b3ZpZGVyOjp+U291cmNlUHJvdmlkZXIoKQogewogfQogCi1zdGF0aWMgTG9jayBwcm92aWRlcklk
TG9jazsKLQogdm9pZCBTb3VyY2VQcm92aWRlcjo6Z2V0SUQoKQogewotICAgIExvY2tlciBsb2Nr
ZXIgeyBwcm92aWRlcklkTG9jayB9OwogICAgIGlmICghbV9pZCkgewotICAgICAgICBzdGF0aWMg
aW50cHRyX3QgbmV4dFByb3ZpZGVySUQgPSAwOworICAgICAgICBzdGF0aWMgc3RkOjphdG9taWM8
U291cmNlSUQ+IG5leHRQcm92aWRlcklEID0gbnVsbElEOwogICAgICAgICBtX2lkID0gKytuZXh0
UHJvdmlkZXJJRDsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pZCk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCmluZGV4IDEyOWVlNWM0
OWUyNDdhZmNkOWYwOGQ1OWVmZTlmYjEyOGY5YWJiZTEuLjAxMzI0MmQwZTZlYWYwYWY1N2U4Y2M0
MWQ5Y2FkM2MxYzgzM2ZjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZVByb3ZpZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4
LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2s7CiAgICAgfTsKIAogICAgIHVzaW5nIEJ5dGVjb2RlQ2FjaGVHZW5lcmF0b3IgPSBG
dW5jdGlvbjxSZWZQdHI8Q2FjaGVkQnl0ZWNvZGU+KCk+OworICAgIHVzaW5nIFNvdXJjZUlEID0g
dWludDMyX3Q7CiAKICAgICBjbGFzcyBTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVk
PFNvdXJjZVByb3ZpZGVyPiB7CiAgICAgcHVibGljOgpAQCAtNzksNyArODAsNyBAQCBjbGFzcyBV
bmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgICAgICBUZXh0UG9zaXRpb24gc3RhcnRQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRQb3NpdGlvbjsgfQogICAgICAgICBTb3VyY2VQ
cm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlVHlw
ZTsgfQogCi0gICAgICAgIGludHB0cl90IGFzSUQoKQorICAgICAgICBTb3VyY2VJRCBhc0lEKCkK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2lkKQogICAgICAgICAgICAgICAgIGdldElE
KCk7CkBAIC05OCw3ICs5OSw3IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAg
ICAgICAgIFN0cmluZyBtX3NvdXJjZVVSTERpcmVjdGl2ZTsKICAgICAgICAgU3RyaW5nIG1fc291
cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKICAgICAgICAgVGV4dFBvc2l0aW9uIG1fc3RhcnRQb3Np
dGlvbjsKLSAgICAgICAgdWludHB0cl90IG1faWQgeyAwIH07CisgICAgICAgIFNvdXJjZUlEIG1f
aWQgeyAwIH07CiAgICAgfTsKIAogICAgIERFQ0xBUkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVO
VElGSUVSKFN0cmluZ1NvdXJjZVByb3ZpZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAKaW5kZXggZWJiNDI5OTJkMGUy
ZDNlZWIxMWZhMzA2YmRkNjdlMzI2YThiNGU3Mi4uODg4N2Q2ODJiZmUwYzc2MTI2NmZhN2U1YWNl
YzE5YzgyZDA0NDExYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29udHJvbEZsb3dQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgQ29udHJvbEZsb3dQ
cm9maWxlcjo6fkNvbnRyb2xGbG93UHJvZmlsZXIoKQogICAgIH0KIH0KIAotQmFzaWNCbG9ja0xv
Y2F0aW9uKiBDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2NrTG9jYXRpb24oaW50cHRy
X3Qgc291cmNlSUQsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCkKK0Jhc2ljQmxvY2tM
b2NhdGlvbiogQ29udHJvbEZsb3dQcm9maWxlcjo6Z2V0QmFzaWNCbG9ja0xvY2F0aW9uKFNvdXJj
ZUlEIHNvdXJjZUlELCBpbnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQpCiB7CiAgICAgYXV0
byBhZGRSZXN1bHQgPSBtX3NvdXJjZUlEQnVja2V0cy5hZGQoc291cmNlSUQsIEJsb2NrTG9jYXRp
b25DYWNoZSgpKTsKICAgICBCbG9ja0xvY2F0aW9uQ2FjaGUmIGJsb2NrTG9jYXRpb25DYWNoZSA9
IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgQ29udHJv
bEZsb3dQcm9maWxlcjo6ZHVtcERhdGEoKSBjb25zdAogICAgIH0KIH0KIAotVmVjdG9yPEJhc2lj
QmxvY2tSYW5nZT4gQ29udHJvbEZsb3dQcm9maWxlcjo6Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJ
RChpbnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZtKSBjb25zdCAKK1ZlY3RvcjxCYXNpY0Jsb2NrUmFu
Z2U+IENvbnRyb2xGbG93UHJvZmlsZXI6OmdldEJhc2ljQmxvY2tzRm9yU291cmNlSUQoU291cmNl
SUQgc291cmNlSUQsIFZNJiB2bSkgY29uc3QKIHsKICAgICBWZWN0b3I8QmFzaWNCbG9ja1Jhbmdl
PiByZXN1bHQoMCk7CiAgICAgYXV0byBidWNrZXRGaW5kUmVzdWx0ID0gbV9zb3VyY2VJREJ1Y2tl
dHMuZmluZChzb3VyY2VJRCk7CkBAIC0xMjAsMTQgKzEyMCwxNCBAQCBzdGF0aWMgQmFzaWNCbG9j
a1JhbmdlIGZpbmRCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0KGludCBvZmZzZXQsIGNvbnN0IFZlY3Rv
cjxCYXNpYwogICAgIHJldHVybiBiZXN0UmFuZ2U7CiB9CiAKLWJvb2wgQ29udHJvbEZsb3dQcm9m
aWxlcjo6aGFzQmFzaWNCbG9ja0F0VGV4dE9mZnNldEJlZW5FeGVjdXRlZChpbnQgb2Zmc2V0LCBp
bnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZtKQorYm9vbCBDb250cm9sRmxvd1Byb2ZpbGVyOjpoYXNC
YXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVkKGludCBvZmZzZXQsIFNvdXJjZUlEIHNv
dXJjZUlELCBWTSYgdm0pCiB7CiAgICAgY29uc3QgVmVjdG9yPEJhc2ljQmxvY2tSYW5nZT4mIGJs
b2NrcyA9IGdldEJhc2ljQmxvY2tzRm9yU291cmNlSUQoc291cmNlSUQsIHZtKTsKICAgICBCYXNp
Y0Jsb2NrUmFuZ2UgcmFuZ2UgPSBmaW5kQmFzaWNCbG9ja0F0VGV4dE9mZnNldChvZmZzZXQsIGJs
b2Nrcyk7CiAgICAgcmV0dXJuIHJhbmdlLm1faGFzRXhlY3V0ZWQ7CiB9CiAKLXNpemVfdCBDb250
cm9sRmxvd1Byb2ZpbGVyOjpiYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnRBdFRleHRPZmZzZXQoaW50
IG9mZnNldCwgaW50cHRyX3Qgc291cmNlSUQsIFZNJiB2bSkKK3NpemVfdCBDb250cm9sRmxvd1By
b2ZpbGVyOjpiYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnRBdFRleHRPZmZzZXQoaW50IG9mZnNldCwg
U291cmNlSUQgc291cmNlSUQsIFZNJiB2bSkKIHsKICAgICBjb25zdCBWZWN0b3I8QmFzaWNCbG9j
a1JhbmdlPiYgYmxvY2tzID0gZ2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRChzb3VyY2VJRCwgdm0p
OwogICAgIEJhc2ljQmxvY2tSYW5nZSByYW5nZSA9IGZpbmRCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0
KG9mZnNldCwgYmxvY2tzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnRyb2xGbG93UHJvZmlsZXIuaAppbmRleCAxYzQ5NTU5ZjUyMDUwNzlhMmM2ZDJkYjRkY2Uw
YjUzNjNkMmI5ZDU1Li42ZGNhMTRkZTYyMTE3ZTgyZjRhNzZlZDc3NDk0NTBkYmY5NzYxOTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2Zp
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9m
aWxlci5oCkBAIC05MSwxNiArOTEsMTYgQEAgY2xhc3MgQ29udHJvbEZsb3dQcm9maWxlciB7CiBw
dWJsaWM6CiAgICAgQ29udHJvbEZsb3dQcm9maWxlcigpOwogICAgIH5Db250cm9sRmxvd1Byb2Zp
bGVyKCk7Ci0gICAgQmFzaWNCbG9ja0xvY2F0aW9uKiBnZXRCYXNpY0Jsb2NrTG9jYXRpb24oaW50
cHRyX3Qgc291cmNlSUQsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCk7CisgICAgQmFz
aWNCbG9ja0xvY2F0aW9uKiBnZXRCYXNpY0Jsb2NrTG9jYXRpb24oU291cmNlSUQsIGludCBzdGFy
dE9mZnNldCwgaW50IGVuZE9mZnNldCk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1w
RGF0YSgpIGNvbnN0OwotICAgIFZlY3RvcjxCYXNpY0Jsb2NrUmFuZ2U+IGdldEJhc2ljQmxvY2tz
Rm9yU291cmNlSUQoaW50cHRyX3Qgc291cmNlSUQsIFZNJikgY29uc3Q7CisgICAgVmVjdG9yPEJh
c2ljQmxvY2tSYW5nZT4gZ2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRChTb3VyY2VJRCwgVk0mKSBj
b25zdDsKICAgICBCYXNpY0Jsb2NrTG9jYXRpb24qIGR1bW15QmFzaWNCbG9jaygpIHsgcmV0dXJu
ICZtX2R1bW15QmFzaWNCbG9jazsgfQotICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaGFzQmFz
aWNCbG9ja0F0VGV4dE9mZnNldEJlZW5FeGVjdXRlZChpbnQsIGludHB0cl90LCBWTSYpOyAgLy8g
VGhpcyBmdW5jdGlvbiBleGlzdHMgZm9yIHRlc3RpbmcuCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUg
c2l6ZV90IGJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldChpbnQsIGludHB0cl90
LCBWTSYpOyAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3IgdGVzdGluZy4KKyAgICBKU19FWFBP
UlRfUFJJVkFURSBib29sIGhhc0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRCZWVuRXhlY3V0ZWQoaW50
LCBTb3VyY2VJRCwgVk0mKTsgLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgZm9yIHRlc3RpbmcuCisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4
dE9mZnNldChpbnQsIFNvdXJjZUlELCBWTSYpOyAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3Ig
dGVzdGluZy4KIAogcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8QmFzaWNCbG9ja0tleSwg
QmFzaWNCbG9ja0xvY2F0aW9uKj4gQmxvY2tMb2NhdGlvbkNhY2hlOwotICAgIHR5cGVkZWYgSGFz
aE1hcDxpbnRwdHJfdCwgQmxvY2tMb2NhdGlvbkNhY2hlPiBTb3VyY2VJREJ1Y2tldHM7CisgICAg
dHlwZWRlZiBIYXNoTWFwPFNvdXJjZUlELCBCbG9ja0xvY2F0aW9uQ2FjaGU+IFNvdXJjZUlEQnVj
a2V0czsKIAogICAgIFNvdXJjZUlEQnVja2V0cyBtX3NvdXJjZUlEQnVja2V0czsKICAgICBCYXNp
Y0Jsb2NrTG9jYXRpb24gbV9kdW1teUJhc2ljQmxvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcAppbmRl
eCBhOGFhZGFkZmQxNzQyYWI0ZTExZjdjYjgxM2EyOWNmOWFmZWQyMzg1Li42OGMwNjA2YjA3MTMx
MjRjN2FhMTcwYzFkYTJkOTk2ZDhlMTRlM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5jcHAKQEAgLTMw
LDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWJvb2wgRnVuY3Rpb25IYXNFeGVjdXRl
ZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zmc2V0KGludHB0cl90IGlkLCB1bnNpZ25lZCBvZmZzZXQp
Citib29sIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6aGFzRXhlY3V0ZWRBdE9mZnNldChTb3Vy
Y2VJRCBpZCwgdW5zaWduZWQgb2Zmc2V0KQogewogICAgIGlmIChtX3JhbmdlTWFwLmZpbmQoaWQp
ID09IG1fcmFuZ2VNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQ5LDcgKzQ5
LDcgQEAgYm9vbCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6Omhhc0V4ZWN1dGVkQXRPZmZzZXQo
aW50cHRyX3QgaWQsIHVuc2lnbmVkIG9mZnNldCkKICAgICByZXR1cm4gaGFzRXhlY3V0ZWQ7CiB9
CiAKLXZvaWQgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjppbnNlcnRVbmV4ZWN1dGVkUmFuZ2Uo
aW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpIAordm9pZCBGdW5jdGlv
bkhhc0V4ZWN1dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0ZWRSYW5nZShTb3VyY2VJRCBpZCwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkKIHsKICAgICBpZiAobV9yYW5nZU1hcC5maW5kKGlk
KSA9PSBtX3JhbmdlTWFwLmVuZCgpKSB7CiAgICAgICAgIFJhbmdlTWFwIG1hcDsKQEAgLTY2LDcg
KzY2LDcgQEAgdm9pZCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0ZWRS
YW5nZShpbnRwdHJfdCBpZCwgdW5zaWduZWQgc3RhcnQKICAgICAgICAgbWFwW3JhbmdlXSA9IGZh
bHNlOwogfQogCi12b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRl
ZFJhbmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKQordm9pZCBG
dW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OnJlbW92ZVVuZXhlY3V0ZWRSYW5nZShTb3VyY2VJRCBp
ZCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIG5ldmVyIGhhdmUgYW4gaW5zdGFuY2Ugd2hlcmUgd2UgcmV0dXJuIGhlcmUsIGJ1dCBjdXJy
ZW50bHkgZG8gaW4gc29tZSBzaXR1YXRpb25zLiBGaW5kIG91dCB3aHkuCiAgICAgaWYgKG1fcmFu
Z2VNYXAuZmluZChpZCkgPT0gbV9yYW5nZU1hcC5lbmQoKSkKQEAgLTgwLDcgKzgwLDcgQEAgdm9p
ZCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OnJlbW92ZVVuZXhlY3V0ZWRSYW5nZShpbnRwdHJf
dCBpZCwgdW5zaWduZWQgc3RhcnQKICAgICBtYXBbcmFuZ2VdID0gdHJ1ZTsKIH0KIAotVmVjdG9y
PHN0ZDo6dHVwbGU8Ym9vbCwgdW5zaWduZWQsIHVuc2lnbmVkPj4gRnVuY3Rpb25IYXNFeGVjdXRl
ZENhY2hlOjpnZXRGdW5jdGlvblJhbmdlcyhpbnRwdHJfdCBpZCkKK1ZlY3RvcjxzdGQ6OnR1cGxl
PGJvb2wsIHVuc2lnbmVkLCB1bnNpZ25lZD4+IEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6Z2V0
RnVuY3Rpb25SYW5nZXMoU291cmNlSUQgaWQpCiB7CiAgICAgVmVjdG9yPHN0ZDo6dHVwbGU8Ym9v
bCwgdW5zaWduZWQsIHVuc2lnbmVkPj4gcmFuZ2VzKDApOwogICAgIGF1dG8gZmluZFJlc3VsdCA9
IG1fcmFuZ2VNYXAuZmluZChpZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oCmluZGV4IDllMmIyMGNmZjcwNTlj
NDQxNWQ4YzY3OTIzNWIzMjYwMjU3MTI4NmUuLmE1MDI3ZjJlNjlhYmVlOGY2ZWJkMWMzNzViYTUy
NDkwYzZmYWEzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oCkBAIC0zMSw2ICszMSw4IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCit1c2luZyBTb3VyY2VJRCA9IHVpbnQzMl90OworCiBjbGFzcyBGdW5jdGlv
bkhhc0V4ZWN1dGVkQ2FjaGUgewogcHVibGljOgogICAgIHN0cnVjdCBGdW5jdGlvblJhbmdlIHsK
QEAgLTQ4LDEwICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIG1fZW5kOwogICAg
IH07CiAKLSAgICBib29sIGhhc0V4ZWN1dGVkQXRPZmZzZXQoaW50cHRyX3QgaWQsIHVuc2lnbmVk
IG9mZnNldCk7Ci0gICAgdm9pZCBpbnNlcnRVbmV4ZWN1dGVkUmFuZ2UoaW50cHRyX3QgaWQsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOwotICAgIHZvaWQgcmVtb3ZlVW5leGVjdXRlZFJh
bmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKTsKLSAgICBWZWN0
b3I8c3RkOjp0dXBsZTxib29sLCB1bnNpZ25lZCwgdW5zaWduZWQ+PiBnZXRGdW5jdGlvblJhbmdl
cyhpbnRwdHJfdCBpZCk7CisgICAgYm9vbCBoYXNFeGVjdXRlZEF0T2Zmc2V0KFNvdXJjZUlELCB1
bnNpZ25lZCBvZmZzZXQpOworICAgIHZvaWQgaW5zZXJ0VW5leGVjdXRlZFJhbmdlKFNvdXJjZUlE
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKTsKKyAgICB2b2lkIHJlbW92ZVVuZXhlY3V0
ZWRSYW5nZShTb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCk7CisgICAgVmVj
dG9yPHN0ZDo6dHVwbGU8Ym9vbCwgdW5zaWduZWQsIHVuc2lnbmVkPj4gZ2V0RnVuY3Rpb25SYW5n
ZXMoU291cmNlSUQpOwogCiBwcml2YXRlOgogICAgIHVzaW5nIFJhbmdlTWFwID0gU3RkVW5vcmRl
cmVkTWFwPEZ1bmN0aW9uUmFuZ2UsIGJvb2wsIEhhc2hNZXRob2Q8RnVuY3Rpb25SYW5nZT4+Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNw
cAppbmRleCBiMjdlOGUzZDY0ZGU4NmYzNWNiNDY3NTg1NzQ2Y2VmYzM5YTk1YmEyLi43Y2Q3OGM2
OTI1ZTJhMmEwMjUzZDYwZGI1NmUzOTg3ZmUyZjg4NzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtOTE4LDcgKzkxOCw3
IEBAIHVuc2lnbmVkIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmZ1bmN0aW9uU3RhcnRD
b2x1bW4oKQogICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7
CiB9CiAKLWludHB0cl90IFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OnNvdXJjZUlEKCkK
K1NvdXJjZUlEIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OnNvdXJjZUlEKCkKIHsKICAg
ICBzd2l0Y2ggKGZyYW1lVHlwZSkgewogICAgIGNhc2UgRnJhbWVUeXBlOjpVbmtub3duOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCmluZGV4
IDlhZjI3NTY1ZDQ1MTg1ODU0ODVmYzdiOTA3ZmU3M2ZlNWNjYzc0ZGEuLjU4OGNmZjA2Mjk5ZTRi
YWE4MjgyYWZhYjQzNzZkMTBhOWI3MjQ1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKQEAgLTE0OCw3ICsxNDgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZUZvckpTT05UZXN0cyhWTSYpOyAvLyBVc2VkIGZv
ciBKU0Mgc3RyZXNzIHRlc3RzIGJlY2F1c2UgdGhleSB3YW50IHRoZSAiKGFub255bW91cyBmdW5j
dGlvbikiIHN0cmluZyBmb3IgYW5vbnltb3VzIGZ1bmN0aW9ucyBhbmQgdGhleSB3YW50ICIoZXZh
bCkiIGZvciBldmFsJ2QgY29kZS4KICAgICAgICAgaW50IGZ1bmN0aW9uU3RhcnRMaW5lKCk7CiAg
ICAgICAgIHVuc2lnbmVkIGZ1bmN0aW9uU3RhcnRDb2x1bW4oKTsKLSAgICAgICAgaW50cHRyX3Qg
c291cmNlSUQoKTsKKyAgICAgICAgU291cmNlSUQgc291cmNlSUQoKTsKICAgICAgICAgU3RyaW5n
IHVybCgpOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NjcmlwdEV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nj
cmlwdEV4ZWN1dGFibGUuaAppbmRleCBmMzFiZDMzZjZlZTFkMTgyMDI2N2YzM2JiYTE4NDM4YWM5
YjI3N2E2Li43NWRhZWU0YjhmMjhiNWJjMTBlMGU2MWMyMzY5MGU2NDkyMDc1MTgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCkBAIC00
NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBDb2RlQmxvY2tIYXNoIGhhc2hGb3IoQ29kZVNwZWNp
YWxpemF0aW9uS2luZCkgY29uc3Q7CiAKICAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZTsgfQotICAgIGludHB0cl90IHNvdXJjZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXJJRCgpOyB9CisgICAgU291cmNlSUQgc291cmNlSUQo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KICAgICBjb25zdCBTb3Vy
Y2VPcmlnaW4mIHNvdXJjZU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVy
KCktPnNvdXJjZU9yaWdpbigpOyB9CiAgICAgLy8gVGhpcyBpcyBOT1QgdGhlIHBhdGggdGhhdCBz
aG91bGQgYmUgdXNlZCBmb3IgY29tcHV0aW5nIHJlbGF0aXZlIHBhdGhzIGZyb20gYSBzY3JpcHQu
IFVzZSBTb3VyY2VPcmlnaW4ncyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1ZXMgbWF5IG9yIG1heSBu
b3QgYmUgdGhlIHNhbWUuLi4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGZvciBgZXJyb3Iuc291
cmNlVVJMYCBhbmQgc3RhY2sgdHJhY2VzLgogICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkg
Y29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJMKCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKaW5kZXggNmVlMWM1Yjky
Y2Q1NjkxY2YzZTgxNjQzYTZlMTliZTQzNjE4YjlkZi4uNmI4ZjNkZjYzMzUwNDVkNWFjMjFlZjVh
MDgyZDQ4NjgwNGZhM2U2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RhY2tGcmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Rh
Y2tGcmFtZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgU3RhY2tGcmFtZTo6U3RhY2tGcmFtZShXYXNt
OjpJbmRleE9yTmFtZSBpbmRleE9yTmFtZSkKIHsKIH0KIAotaW50cHRyX3QgU3RhY2tGcmFtZTo6
c291cmNlSUQoKSBjb25zdAorU291cmNlSUQgU3RhY2tGcmFtZTo6c291cmNlSUQoKSBjb25zdAog
ewogICAgIGlmICghbV9jb2RlQmxvY2spCiAgICAgICAgIHJldHVybiBub1NvdXJjZUlEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCmluZGV4IDA2MDlhNTZkNGU3
YjIyYWU5YmZjNTE5NmIzYTIxNDBiNGQzZTM4NzcuLjMzYjRhMjBiM2VmMjE1NTM0NGUxNTNjMzhl
N2E3OTAyM2VlNzFmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0YWNrRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0Zy
YW1lLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgY29tcHV0ZUxp
bmVBbmRDb2x1bW4odW5zaWduZWQmIGxpbmUsIHVuc2lnbmVkJiBjb2x1bW4pIGNvbnN0OwogICAg
IFN0cmluZyBmdW5jdGlvbk5hbWUoVk0mKSBjb25zdDsKLSAgICBpbnRwdHJfdCBzb3VyY2VJRCgp
IGNvbnN0OworICAgIFNvdXJjZUlEIHNvdXJjZUlEKCkgY29uc3Q7CiAgICAgU3RyaW5nIHNvdXJj
ZVVSTCgpIGNvbnN0OwogICAgIFN0cmluZyB0b1N0cmluZyhWTSYpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5jcHAKaW5k
ZXggMDhkNWI5NjhmMWJhNTcyY2RlNGY0NzM1ZjI0NWU1MmQ1MjE0OWI2My4uMTUzYjY3NThiYjk0
YjEyMWU2NmJiNzQyZWU4NTgzM2Y5YTg3MzY5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotc3RkOjpwYWlyPFR5cGVMb2NhdGlvbiosIGJvb2w+IFR5cGVM
b2NhdGlvbkNhY2hlOjpnZXRUeXBlTG9jYXRpb24oR2xvYmFsVmFyaWFibGVJRCBnbG9iYWxWYXJp
YWJsZUlELCBpbnRwdHJfdCBzb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwg
UmVmUHRyPFR5cGVTZXQ+JiYgZ2xvYmFsVHlwZVNldCwgVk0qIHZtKQorc3RkOjpwYWlyPFR5cGVM
b2NhdGlvbiosIGJvb2w+IFR5cGVMb2NhdGlvbkNhY2hlOjpnZXRUeXBlTG9jYXRpb24oR2xvYmFs
VmFyaWFibGVJRCBnbG9iYWxWYXJpYWJsZUlELCBTb3VyY2VJRCBzb3VyY2VJRCwgdW5zaWduZWQg
c3RhcnQsIHVuc2lnbmVkIGVuZCwgUmVmUHRyPFR5cGVTZXQ+JiYgZ2xvYmFsVHlwZVNldCwgVk0q
IHZtKQogewogICAgIExvY2F0aW9uS2V5IGtleTsKICAgICBrZXkubV9nbG9iYWxWYXJpYWJsZUlE
ID0gZ2xvYmFsVmFyaWFibGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9UeXBlTG9jYXRpb25DYWNoZS5oCmluZGV4IDg2NzU4ZTI3MThhMzNjNDUxMGIyMjM5YjNmZGEx
ODFhYmY3NWVhOTUuLjBjMTM0ZWU5OGY3MTZhOWY5MzlkOGViYzU4NDVlMzAxOWM2ZDkyODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUu
aApAQCAtNTIsMTIgKzUyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIEdsb2Jh
bFZhcmlhYmxlSUQgbV9nbG9iYWxWYXJpYWJsZUlEOwotICAgICAgICBpbnRwdHJfdCBtX3NvdXJj
ZUlEOworICAgICAgICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgICAgICB1bnNpZ25lZCBtX3N0
YXJ0OwogICAgICAgICB1bnNpZ25lZCBtX2VuZDsKICAgICB9OwogCi0gICAgc3RkOjpwYWlyPFR5
cGVMb2NhdGlvbiosIGJvb2w+IGdldFR5cGVMb2NhdGlvbihHbG9iYWxWYXJpYWJsZUlELCBpbnRw
dHJfdCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgUmVmUHRyPFR5cGVTZXQ+JiYsIFZN
Kik7CisgICAgc3RkOjpwYWlyPFR5cGVMb2NhdGlvbiosIGJvb2w+IGdldFR5cGVMb2NhdGlvbihH
bG9iYWxWYXJpYWJsZUlELCBTb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwg
UmVmUHRyPFR5cGVTZXQ+JiYsIFZNKik7CiBwcml2YXRlOgogICAgIHVzaW5nIExvY2F0aW9uTWFw
ID0gU3RkVW5vcmRlcmVkTWFwPExvY2F0aW9uS2V5LCBUeXBlTG9jYXRpb24qLCBIYXNoTWV0aG9k
PExvY2F0aW9uS2V5Pj47CiAgICAgTG9jYXRpb25NYXAgbV9sb2NhdGlvbk1hcDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCmluZGV4IDYyMjExMzk0
OWJlOWE3NTdlZDQwMGI1MmRhNTEyOThhMzIzZGFiZjYuLjdlMWJjZTI5YmFmZWZmYmNhNjRmYzU0
NWVhNGFiODhjOGVlMWZkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1R5cGVQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZVByb2ZpbGVyLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFR5cGVQcm9maWxlcjo6aW5z
ZXJ0TmV3TG9jYXRpb24oVHlwZUxvY2F0aW9uKiBsb2NhdGlvbikKICAgICBidWNrZXQuYXBwZW5k
KGxvY2F0aW9uKTsKIH0KIAotU3RyaW5nIFR5cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9uRm9y
RXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IgZGVzY3JpcHRv
ciwgdW5zaWduZWQgb2Zmc2V0LCBpbnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZtKQorU3RyaW5nIFR5
cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9m
aWxlclNlYXJjaERlc2NyaXB0b3IgZGVzY3JpcHRvciwgdW5zaWduZWQgb2Zmc2V0LCBTb3VyY2VJ
RCBzb3VyY2VJRCwgVk0mIHZtKQogewogICAgIC8vIFRoaXMgcmV0dXJucyBhIEpTT04gc3RyaW5n
IHJlcHJlc2VudGluZyBhbiBPYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAg
ICAgLy8gICAgIGdsb2JhbFR5cGVTZXQ6ICdKU09OPFR5cGVTZXQ+IHwgbnVsbCcKQEAgLTEwMiw3
ICsxMDIsNyBAQCBTdHJpbmcgVHlwZVByb2ZpbGVyOjp0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNz
aW9uQXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNoRGVzYwogICAgIHJldHVybiBqc29uLnRvU3Ry
aW5nKCk7CiB9CiAKLVR5cGVMb2NhdGlvbiogVHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24odW5z
aWduZWQgZGl2b3QsIGludHB0cl90IHNvdXJjZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlw
dG9yIGRlc2NyaXB0b3IsIFZNJiB2bSkKK1R5cGVMb2NhdGlvbiogVHlwZVByb2ZpbGVyOjpmaW5k
TG9jYXRpb24odW5zaWduZWQgZGl2b3QsIFNvdXJjZUlEIHNvdXJjZUlELCBUeXBlUHJvZmlsZXJT
ZWFyY2hEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFZNJiB2bSkKIHsKICAgICBRdWVyeUtleSBxdWVy
eUtleShzb3VyY2VJRCwgZGl2b3QsIGRlc2NyaXB0b3IpOwogICAgIGF1dG8gaXRlciA9IG1fcXVl
cnlDYWNoZS5maW5kKHF1ZXJ5S2V5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1R5cGVQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZVByb2ZpbGVyLmgKaW5kZXggNzc5Y2MwMGMxMGRhOWUxZWI2Y2ExOTc4MDU3ZmRhMjE5ZDgw
Y2JjNS4uMjRiMmM1YzljYmQ2NTAwMWZhYTg5NGNlMzBmNTBmOGNkMTc3MjEzMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgKQEAgLTUwLDIxICs1MCwy
MSBAQCBzdHJ1Y3QgUXVlcnlLZXkgewogICAgICAgICAsIG1fc2VhcmNoRGVzY3JpcHRvcihUeXBl
UHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yRnVuY3Rpb25SZXR1cm4pCiAgICAgeyB9CiAKLSAgICBR
dWVyeUtleShpbnRwdHJfdCBzb3VyY2VJRCwgdW5zaWduZWQgZGl2b3QsIFR5cGVQcm9maWxlclNl
YXJjaERlc2NyaXB0b3Igc2VhcmNoRGVzY3JpcHRvcikKKyAgICBRdWVyeUtleShTb3VyY2VJRCBz
b3VyY2VJRCwgdW5zaWduZWQgZGl2b3QsIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3Igc2Vh
cmNoRGVzY3JpcHRvcikKICAgICAgICAgOiBtX3NvdXJjZUlEKHNvdXJjZUlEKQogICAgICAgICAs
IG1fZGl2b3QoZGl2b3QpCiAgICAgICAgICwgbV9zZWFyY2hEZXNjcmlwdG9yKHNlYXJjaERlc2Ny
aXB0b3IpCiAgICAgeyB9CiAKICAgICBRdWVyeUtleShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1
ZVR5cGUpCi0gICAgICAgIDogbV9zb3VyY2VJRChJTlRQVFJfTUFYKQorICAgICAgICA6IG1fc291
cmNlSUQoVUlOVF9NQVgpCiAgICAgICAgICwgbV9kaXZvdChVSU5UX01BWCkKICAgICAgICAgLCBt
X3NlYXJjaERlc2NyaXB0b3IoVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvckZ1bmN0aW9uUmV0
dXJuKQogICAgIHsgfQogCiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0
IAogICAgIHsgCi0gICAgICAgIHJldHVybiBtX3NvdXJjZUlEID09IElOVFBUUl9NQVggCisgICAg
ICAgIHJldHVybiBtX3NvdXJjZUlEID09IFVJTlRfTUFYCiAgICAgICAgICAgICAmJiBtX2Rpdm90
ID09IFVJTlRfTUFYCiAgICAgICAgICAgICAmJiBtX3NlYXJjaERlc2NyaXB0b3IgPT0gVHlwZVBy
b2ZpbGVyU2VhcmNoRGVzY3JpcHRvckZ1bmN0aW9uUmV0dXJuOwogICAgIH0KQEAgLTgyLDcgKzgy
LDcgQEAgc3RydWN0IFF1ZXJ5S2V5IHsKICAgICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQogCi0g
ICAgaW50cHRyX3QgbV9zb3VyY2VJRDsKKyAgICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgIHVu
c2lnbmVkIG1fZGl2b3Q7CiAgICAgVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBtX3NlYXJj
aERlc2NyaXB0b3I7CiB9OwpAQCAtMTE2LDE3ICsxMTYsMTcgQEAgY2xhc3MgVHlwZVByb2ZpbGVy
IHsKIHB1YmxpYzoKICAgICBUeXBlUHJvZmlsZXIoKTsKICAgICB2b2lkIGxvZ1R5cGVzRm9yVHlw
ZUxvY2F0aW9uKFR5cGVMb2NhdGlvbiosIFZNJik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nIHR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFy
Y2hEZXNjcmlwdG9yLCB1bnNpZ25lZCBvZmZzZXQsIGludHB0cl90IHNvdXJjZUlELCBWTSYpOwor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyB0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9u
QXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciwgdW5zaWduZWQgb2Zmc2V0LCBT
b3VyY2VJRCwgVk0mKTsKICAgICB2b2lkIGluc2VydE5ld0xvY2F0aW9uKFR5cGVMb2NhdGlvbiop
OwogICAgIFR5cGVMb2NhdGlvbkNhY2hlKiB0eXBlTG9jYXRpb25DYWNoZSgpIHsgcmV0dXJuICZt
X3R5cGVMb2NhdGlvbkNhY2hlOyB9Ci0gICAgVHlwZUxvY2F0aW9uKiBmaW5kTG9jYXRpb24odW5z
aWduZWQgZGl2b3QsIGludHB0cl90IHNvdXJjZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlw
dG9yLCBWTSYpOworICAgIFR5cGVMb2NhdGlvbiogZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90
LCBTb3VyY2VJRCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciwgVk0mKTsKICAgICBHbG9i
YWxWYXJpYWJsZUlEIGdldE5leHRVbmlxdWVWYXJpYWJsZUlEKCkgeyByZXR1cm4gbV9uZXh0VW5p
cXVlVmFyaWFibGVJRCsrOyB9CiAgICAgVHlwZUxvY2F0aW9uKiBuZXh0VHlwZUxvY2F0aW9uKCk7
CiAgICAgdm9pZCBpbnZhbGlkYXRlVHlwZVNldENhY2hlKFZNJik7CiAgICAgdm9pZCBkdW1wVHlw
ZVByb2ZpbGVyRGF0YShWTSYpOwogICAgIAogcHJpdmF0ZToKLSAgICB0eXBlZGVmIEhhc2hNYXA8
aW50cHRyX3QsIFZlY3RvcjxUeXBlTG9jYXRpb24qPj4gU291cmNlSURUb0xvY2F0aW9uQnVja2V0
TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxTb3VyY2VJRCwgVmVjdG9yPFR5cGVMb2NhdGlvbio+
PiBTb3VyY2VJRFRvTG9jYXRpb25CdWNrZXRNYXA7CiAgICAgU291cmNlSURUb0xvY2F0aW9uQnVj
a2V0TWFwIG1fYnVja2V0TWFwOwogICAgIFR5cGVMb2NhdGlvbkNhY2hlIG1fdHlwZUxvY2F0aW9u
Q2FjaGU7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFF1ZXJ5S2V5LCBUeXBlTG9jYXRpb24qPiBUeXBl
TG9jYXRpb25RdWVyeUNhY2hlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440785</attachid>
            <date>2021-10-11 07:17:40 -0700</date>
            <delta_ts>2021-10-11 07:18:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231436-20211011101739.patch</filename>
            <type>text/plain</type>
            <size>41440</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OThiZWM5NmI1M2Y2ODhmZmI4YjVkYmU1NDY4ZTk2Nzc5OWIwM2Q4Li4yZjU4NDk1ZjhlOGIzNmNm
ZTBkZGU0NWU3ZjJiOTA1ZGQ3ZDc2MDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OCBAQAorMjAyMS0xMC0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTb3VyY2VJRCBzaG91bGQgaGF2ZSBhIHR5cGUgbmFtZSBhbmQgb25s
eSBiZSAzMi1iaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAg
ICBUaGlzIHBhdGNoIGdpdmVzIFNvdXJjZUlEIGEgcHJvcGVyIHR5cGUgbmFtZSBhbmQgc2hyaW5r
cyBpdCB0bworICAgICAgICAzMi1iaXRzIG9uIDY0LWJpdCBzeXN0ZW1zLiBTaHJpbmtpbmcgdGhl
IHNpemUgbWFrZXMgcm9vbSBvbgorICAgICAgICBTb3VyY2VQcm92aWRlciBmb3IgbWV0YWRhdGEg
aW4gYSBmdXR1cmUgcGF0Y2ggSSdtIHdvcmtpbmcgb24uCisgICAgICAgIEl0J3MgYWxzbyBwcmV0
dHkgdW5saWtlbHkgdGhhdCBhbnkgc3lzdGVtIGhhcyBtb3JlIHRoYW4gfjQgYmlsbGlvbgorICAg
ICAgICBzY3JpcHQgdGFncywgZXZhbHMsIHdhc20gbW9kdWxlcyBzbyBzaGlua2luZyB0aGUgc2l6
ZSBpcyB1bmxpa2VseQorICAgICAgICB0byBjYXVzZSBhbnkgZGVidWdnZXIvcHJvZmlsaW5nIGlz
c3Vlcy4KKworICAgICAgICAqIGJ5dGVjb2RlL1R5cGVMb2NhdGlvbi5oOgorICAgICAgICAqIGRl
YnVnZ2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnRvZ2dsZUJyZWFr
cG9pbnQpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6cGF1c2VJZk5lZWRlZCk6CisgICAgICAg
ICogZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckxv
Y2F0aW9uOjpEZWJ1Z2dlckxvY2F0aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlclBy
aW1pdGl2ZXMuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oOgor
ICAgICAgICAoSW5zcGVjdG9yOjpKYXZhU2NyaXB0Q2FsbEZyYW1lOjpzb3VyY2VJRCBjb25zdCk6
CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwOgorICAgICAg
ICAoSW5zcGVjdG9yOjpDcmVhdGVTY3JpcHRDYWxsU3RhY2tGdW5jdG9yOjpvcGVyYXRvcigpIGNv
bnN0KToKKyAgICAgICAgKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4Y2Vw
dGlvbik6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6c291cmNlSUQpOgorICAgICAgICAqIGludGVycHJl
dGVyL1N0YWNrVmlzaXRvci5oOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAo
SlNDOjpTY29wZU5vZGU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBwYXJzZXIvU291cmNl
Q29kZS5oOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpTb3VyY2VDb2RlKToKKyAgICAgICAg
KEpTQzo6U291cmNlQ29kZTo6Zmlyc3RMaW5lIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNl
Q29kZTo6c3RhcnRDb2x1bW4gY29uc3QpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpwcm92
aWRlcklEIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6cHJvdmlkZXIgY29uc3Qp
OgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAg
KEpTQzo6U291cmNlQ29kZTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgIChKU0M6Om1ha2VT
b3VyY2UpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpzdWJFeHByZXNzaW9uIGNvbnN0KToK
KyAgICAgICAgKiBwYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VQcm92aWRlcjo6Z2V0SUQpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5oOgor
ICAgICAgICAoSlNDOjpTb3VyY2VQcm92aWRlcjo6YXNJRCk6CisgICAgICAgICogcnVudGltZS9D
b250cm9sRmxvd1Byb2ZpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9maWxl
cjo6Z2V0QmFzaWNCbG9ja0xvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9m
aWxlcjo6Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRCBjb25zdCk6CisgICAgICAgIChKU0M6OkNv
bnRyb2xGbG93UHJvZmlsZXI6Omhhc0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRCZWVuRXhlY3V0ZWQp
OgorICAgICAgICAoSlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpiYXNpY0Jsb2NrRXhlY3V0aW9u
Q291bnRBdFRleHRPZmZzZXQpOgorICAgICAgICAqIHJ1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxl
ci5oOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcDoKKyAg
ICAgICAgKEpTQzo6RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zmc2V0
KToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjppbnNlcnRVbmV4ZWN1
dGVkUmFuZ2UpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OnJlbW92
ZVVuZXhlY3V0ZWRSYW5nZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNo
ZTo6Z2V0RnVuY3Rpb25SYW5nZXMpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25IYXNFeGVj
dXRlZENhY2hlLmg6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6c291cmNlSUQpOgorICAg
ICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oOgorICAgICAgICAqIHJ1bnRpbWUvU2Ny
aXB0RXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpzb3VyY2VJ
RCBjb25zdCk6CisgICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmNwcDoKKyAgICAgICAgKEpT
Qzo6U3RhY2tGcmFtZTo6c291cmNlSUQgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvU3RhY2tG
cmFtZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuY3BwOgorICAgICAg
ICAoSlNDOjpUeXBlTG9jYXRpb25DYWNoZTo6Z2V0VHlwZUxvY2F0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmg6CisgICAgICAgICogcnVudGltZS9UeXBlUHJvZmls
ZXIuY3BwOgorICAgICAgICAoSlNDOjpUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4
cHJlc3Npb25BdE9mZnNldCk6CisgICAgICAgIChKU0M6OlR5cGVQcm9maWxlcjo6ZmluZExvY2F0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL1R5cGVQcm9maWxlci5oOgorICAgICAgICAoSlNDOjpR
dWVyeUtleTo6UXVlcnlLZXkpOgorICAgICAgICAoSlNDOjpRdWVyeUtleTo6aXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUgY29uc3QpOgorCiAyMDIxLTEwLTA3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBgaGlnaFdhdGVyTWFya2Agc2hvdWxkIGJlIGEg
cmVhZG9ubHkgV2ViSURMIGF0dHJpYnV0ZSBvZiBxdWV1aW5nIHN0cmF0ZWdpZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiMzJjMzBmMTEwZjZhMjllMmM4MTZmODdjNTU2
YTEyZmRiZTBkNmM4Li4wNzdkMmIyZGFkOWM1ODQ2NWZkZGNmYzc2NDgzY2Y1YzJmYzVkZjExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02NTksNiArNjU5LDcgQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBieXRlY29kZS9Q
dXRCeUlkRmxhZ3MuaAogICAgIGJ5dGVjb2RlL1NldFByaXZhdGVCcmFuZFN0YXR1cy5oCiAgICAg
Ynl0ZWNvZGUvU2V0UHJpdmF0ZUJyYW5kVmFyaWFudC5oCisgICAgYnl0ZWNvZGUvU291cmNlSUQu
aAogICAgIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKICAgICBieXRlY29kZS9TdHJ1Y3R1cmVT
ZXQuaAogICAgIGJ5dGVjb2RlL1N1cGVyU2FtcGxlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDhjMzU1NDUwZDI0ZjY5YThjOTE4ZmJkMzkwNWI0MmJjYjk1MDc5MzguLjJlMWEz
YmEwNzA5OWNlMGY1MDM1ZDk2MTM1NTdmYjE2MjExZmRkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC05MzksNiArOTM5LDcgQEAKIAkJNTM0RTAzNTQxRTUzQkQyOTAwMjEzRjY0
IC8qIEludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNEUwMzUzMUU1M0JEMjkwMDIxM0Y2NCAvKiBJbnRyaW5z
aWNHZXR0ZXJBY2Nlc3NDYXNlLmggKi87IH07CiAJCTUzNEUwMzU2MUU1M0JFREUwMDIxM0Y2NCAv
KiBQcm94eWFibGVBY2Nlc3NDYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MzRFMDM1NTFFNTNCRURFMDAyMTNGNjQgLyogUHJveHlhYmxlQWNjZXNz
Q2FzZS5oICovOyB9OwogCQk1MzRFMDM1ODFFNTNCRjJGMDAyMTNGNjQgLyogR2V0dGVyU2V0dGVy
QWNjZXNzQ2FzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTM0RTAzNTcxRTUzQkYyRjAwMjEzRjY0IC8qIEdldHRlclNldHRlckFjY2Vzc0Nhc2UuaCAq
LzsgfTsKKwkJNTM1MDM1NjUyNzE0N0U1QTAwRUMxQTdFIC8qIFNvdXJjZUlELmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzUwMzU2NDI3MTQ3RTU5MDBF
QzFBN0UgLyogU291cmNlSUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk1MzUyOUE0QzFDNDU3Qjc1MDAwQjQ5QzYgLyogQVBJVXRpbHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNTI5QTRCMUM0NTdC
NzUwMDBCNDlDNiAvKiBBUElVdGlscy5oICovOyB9OwogCQk1MzU1NTcxNDFEOUQ5RUE1MDA2RDU4
M0IgLyogV2FzbU1lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTM1NTU3MTMxRDlEOUVBNTAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MzVDMjQ2MTFGNzg5
MjhFMDA2RUM0MEUgLyogY3JlYXRlX3JlZ2V4X3RhYmxlcyBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MThGODIxMTE3OEVCNEIwMDI0NjVBNyAvKiBjcmVh
dGVfcmVnZXhfdGFibGVzICovOyB9OwpAQCAtMzczOSw2ICszNzQwLDcgQEAKIAkJNTM0RTAzNTMx
RTUzQkQyOTAwMjEzRjY0IC8qIEludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzRFMDM1NTFFNTNCRURFMDAyMTNGNjQgLyogUHJv
eHlhYmxlQWNjZXNzQ2FzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm94
eWFibGVBY2Nlc3NDYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNEUwMzU3
MUU1M0JGMkYwMDIxM0Y2NCAvKiBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdldHRlclNldHRlckFjY2Vzc0Nhc2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTM1MDM1NjQyNzE0N0U1OTAwRUMxQTdFIC8qIFNvdXJjZUlE
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUlELmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNTI5QTRCMUM0NTdCNzUwMDBCNDlDNiAvKiBBUElVdGls
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElVdGlscy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MzU1NTcxMzFEOUQ5RUE1MDA2RDU4M0IgLyogV2FzbU1l
bW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtTWVtb3J5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNTU1NzE1MUQ5REZBMzIwMDZENTgzQiAvKiBX
YXNtTWVtb3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdhc21N
ZW1vcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODY2Niw2ICs4NjY4LDcg
QEAKIAkJCQkwRjZGQzc0RjE5NjExMEE4MDBFMUQwMkQgLyogQ29tcGxleEdldFN0YXR1cy5oICov
LAogCQkJCTYyRTNENUVGMUI4RDBCNzMwMEI4NjhCQiAvKiBEYXRhRm9ybWF0LmNwcCAqLywKIAkJ
CQkwRjQyNkE0QTE0NjBDRDZCMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oICovLAorCQkJCTUzNTAz
NTY0MjcxNDdFNTkwMEVDMUE3RSAvKiBTb3VyY2VJRC5oICovLAogCQkJCTBGQzcxMkRDMTdDRDg3
NzgwMDhDQzkzQyAvKiBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwICovLAogCQkJCTBG
QzcxMkREMTdDRDg3NzgwMDhDQzkzQyAvKiBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAq
LywKIAkJCQlGRTUwNjg2NjFBRTI1RTI4MDAwOURBQjcgLyogRGVmZXJyZWRTb3VyY2VEdW1wLmNw
cCAqLywKQEAgLTEwMzgzLDYgKzEwMzg2LDcgQEAKIAkJCQkwRjJCNjcwMjE3QjZCNUFCMDBBN0FF
M0YgLyogSlNVaW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDMxN0I2QjVB
QjAwQTdBRTNGIC8qIEpTVWludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NzAw
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU1VpbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUz
NTAzNTY1MjcxNDdFNUEwMEVDMUE3RSAvKiBTb3VyY2VJRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyQjY3MDExN0I2QjVBQjAwQTdBRTNGIC8qIEpTVWludDhDbGFtcGVkQXJyYXkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg2RTNDNjEyMTY3QkFCRDcwMDZENzYwQSAvKiBKU1ZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NkUzQzYxQjE2N0JBQkVFMDA2RDc2MEEgLyogSlNWYWx1ZUludGVybmFs
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9UeXBlTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9UeXBl
TG9jYXRpb24uaAppbmRleCAxZTkyMzlkYzRlMDM1MmJkYjJiNTkyNzUzNDg0Njc3MTQ4ZGI3M2Vj
Li5jNzZmMDVhZDA0MWQ3NTQ5YmNlZjVkYjQwY2Q1YzVjOWY5MDU5NTVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVHlwZUxvY2F0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1R5cGVMb2NhdGlvbi5oCkBAIC01MCw3ICs1MCw3IEBA
IHB1YmxpYzoKICAgICBHbG9iYWxWYXJpYWJsZUlEIG1fZ2xvYmFsVmFyaWFibGVJRDsKICAgICBS
ZWZQdHI8VHlwZVNldD4gbV9pbnN0cnVjdGlvblR5cGVTZXQ7CiAgICAgUmVmUHRyPFR5cGVTZXQ+
IG1fZ2xvYmFsVHlwZVNldDsKLSAgICBpbnRwdHJfdCBtX3NvdXJjZUlEOworICAgIFNvdXJjZUlE
IG1fc291cmNlSUQ7CiAgICAgdW5zaWduZWQgbV9kaXZvdFN0YXJ0OwogICAgIHVuc2lnbmVkIG1f
ZGl2b3RFbmQ7CiAgICAgdW5zaWduZWQgbV9kaXZvdEZvckZ1bmN0aW9uT2Zmc2V0SWZSZXR1cm5T
dGF0ZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApp
bmRleCBkZDM1N2Q4NWM0NDc2ZDM1MWM3ZTUxNDQ5NGEyZmVhNmE4YTRmYTFjLi4wYmNlMmE2ODk4
OTM3ZmEyZDhiNDQwY2IyZjI2MTZkNTFlMzY1Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKQEAgLTM1MCw3ICszNTAsNyBAQCB2b2lkIERlYnVnZ2Vy
Ojp0b2dnbGVCcmVha3BvaW50KENvZGVCbG9jayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVh
a3BvaW50LCBCcgogCiAgICAgU2NyaXB0RXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGNvZGVCbG9j
ay0+b3duZXJFeGVjdXRhYmxlKCk7CiAKLSAgICBTb3VyY2VJRCBzb3VyY2VJRCA9IHN0YXRpY19j
YXN0PFNvdXJjZUlEPihleGVjdXRhYmxlLT5zb3VyY2VJRCgpKTsKKyAgICBTb3VyY2VJRCBzb3Vy
Y2VJRCA9IGV4ZWN1dGFibGUtPnNvdXJjZUlEKCk7CiAgICAgaWYgKGJyZWFrcG9pbnQuc291cmNl
SUQoKSAhPSBzb3VyY2VJRCkKICAgICAgICAgcmV0dXJuOwogCkBAIC04NzUsNyArODc1LDcgQEAg
dm9pZCBEZWJ1Z2dlcjo6cGF1c2VJZk5lZWRlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogICAgIGlmIChtX3N1cHByZXNzQWxsUGF1c2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
bnRwdHJfdCBzb3VyY2VJRCA9IERlYnVnZ2VyQ2FsbEZyYW1lOjpzb3VyY2VJREZvckNhbGxGcmFt
ZShtX2N1cnJlbnRDYWxsRnJhbWUpOworICAgIFNvdXJjZUlEIHNvdXJjZUlEID0gRGVidWdnZXJD
YWxsRnJhbWU6OnNvdXJjZUlERm9yQ2FsbEZyYW1lKG1fY3VycmVudENhbGxGcmFtZSk7CiAKICAg
ICBhdXRvIGJsYWNrYm94VHlwZUl0ZXJhdG9yID0gbV9ibGFja2JveGVkU2NyaXB0cy5maW5kKHNv
dXJjZUlEKTsKICAgICBpZiAoYmxhY2tib3hUeXBlSXRlcmF0b3IgIT0gbV9ibGFja2JveGVkU2Ny
aXB0cy5lbmQoKSAmJiBibGFja2JveFR5cGVJdGVyYXRvci0+dmFsdWUgPT0gQmxhY2tib3hUeXBl
OjpJZ25vcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckxvY2F0aW9uLmgKaW5kZXggZTk0ODc3MTY4YzQwMDRlYjljYWQzOGU3NWI5ZTM4ZmMyMDA2MjMw
Yy4uNGE4MzEyMWI2NGFhNDA1ZTQ4OTBjN2QxMDEwNDQwNTFlMzc0NTAzNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGFibGU7CiBzdHJ1Y3QgRGVidWdnZXJMb2NhdGlv
biB7CiAKICAgICBEZWJ1Z2dlckxvY2F0aW9uKCkgeyB9Ci0gICAgRGVidWdnZXJMb2NhdGlvbihp
bnRwdHJfdCBzb3VyY2VJRCwgdW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQorICAgIERl
YnVnZ2VyTG9jYXRpb24oU291cmNlSUQgc291cmNlSUQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVk
IGNvbHVtbikKICAgICAgICAgOiBzb3VyY2VJRChzb3VyY2VJRCkKICAgICAgICAgLCBsaW5lKGxp
bmUpCiAgICAgICAgICwgY29sdW1uKGNvbHVtbikKQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IERl
YnVnZ2VyTG9jYXRpb24gewogCiAgICAgRGVidWdnZXJMb2NhdGlvbihTY3JpcHRFeGVjdXRhYmxl
Kik7CiAKLSAgICBpbnRwdHJfdCBzb3VyY2VJRCB7IG5vU291cmNlSUQgfTsKKyAgICBTb3VyY2VJ
RCBzb3VyY2VJRCB7IG5vU291cmNlSUQgfTsKICAgICB1bnNpZ25lZCBsaW5lIHsgMCB9OwogICAg
IHVuc2lnbmVkIGNvbHVtbiB7IDAgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJQcmltaXRpdmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJQcmltaXRpdmVzLmgKaW5kZXggNDI1NjNhY2YzZTJmYmY5ZTMz
YzBmNTQwYmFkNTdjMzQzMDU2NjhlZi4uYmYyMjYwZTQ3OTU5MWNhYWViYjNhM2YxM2U0NmU3N2M5
M2E1Nzc5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyUHJpbWl0aXZlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlclByaW1pdGl2ZXMuaApAQCAtMjUsMTEgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiU291cmNlSUQuaCIKICNpbmNsdWRlIDxzdGRkZWYuaD4KIAogbmFtZXNwYWNlIEpT
QyB7CiAKLXVzaW5nIFNvdXJjZUlEID0gc2l6ZV90OwogY29uc3RleHByIFNvdXJjZUlEIG5vU291
cmNlSUQgPSAwOwogCiB1c2luZyBCcmVha3BvaW50SUQgPSBzaXplX3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4
IDk1YmQxZjMyYjAxOTI4OGRlNzczM2E3OTBlZDIzYWE0MmE2MTRhZjAuLjBiMzc3Mzc0ZThlNmNm
ZWJhNWI5MTE5YWUzOThmMTYwMTA3Y2U1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIxIEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNyAr
NDEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgSmF2YVNjcmlwdENhbGxGcmFtZSogY2FsbGVy
KCk7Ci0gICAgaW50cHRyX3Qgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2Fs
bEZyYW1lLT5zb3VyY2VJRCgpOyB9CisgICAgSlNDOjpTb3VyY2VJRCBzb3VyY2VJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUtPnNvdXJjZUlEKCk7IH0KICAgICBjb25zdCBU
ZXh0UG9zaXRpb24gcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2FsbEZyYW1l
LT5wb3NpdGlvbigpOyB9CiAgICAgaW50IGxpbmUoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2Vy
Q2FsbEZyYW1lLT5saW5lKCk7IH0KICAgICBpbnQgY29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9k
ZWJ1Z2dlckNhbGxGcmFtZS0+Y29sdW1uKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCmluZGV4IDk2
YTM1Y2ViZThiYjY0MjU4MjlhNzI5MWZmMDI5ZmNlNGMyM2E4ZWIuLjQxYWNjODU3YzY3NjhjOWY2
YmE5ODMwYTcxYWEwMmZhOTM0NzZmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcApAQCAtNjIsNyAr
NjIsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICB1bnNpZ25lZCBsaW5lOwogICAgICAgICAgICAg
dW5zaWduZWQgY29sdW1uOwogICAgICAgICAgICAgdmlzaXRvci0+Y29tcHV0ZUxpbmVBbmRDb2x1
bW4obGluZSwgY29sdW1uKTsKLSAgICAgICAgICAgIG1fZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxs
RnJhbWUodmlzaXRvci0+ZnVuY3Rpb25OYW1lKCksIHZpc2l0b3ItPnNvdXJjZVVSTCgpLCBzdGF0
aWNfY2FzdDxTb3VyY2VJRD4odmlzaXRvci0+c291cmNlSUQoKSksIGxpbmUsIGNvbHVtbikpOwor
ICAgICAgICAgICAgbV9mcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZSh2aXNpdG9yLT5mdW5j
dGlvbk5hbWUoKSwgdmlzaXRvci0+c291cmNlVVJMKCksIHZpc2l0b3ItPnNvdXJjZUlEKCksIGxp
bmUsIGNvbHVtbikpOwogCiAgICAgICAgICAgICBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVD
YXB0dXJlLS07CiAgICAgICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKQEAg
LTE2MCw3ICsxNjAsNyBAQCBSZWY8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2tGcm9tRXhjZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsbwogICAgICAgICB1bnNpZ25l
ZCBjb2x1bW47CiAgICAgICAgIHN0YWNrVHJhY2VbaV0uY29tcHV0ZUxpbmVBbmRDb2x1bW4obGlu
ZSwgY29sdW1uKTsKICAgICAgICAgU3RyaW5nIGZ1bmN0aW9uTmFtZSA9IHN0YWNrVHJhY2VbaV0u
ZnVuY3Rpb25OYW1lKHZtKTsKLSAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUo
ZnVuY3Rpb25OYW1lLCBzdGFja1RyYWNlW2ldLnNvdXJjZVVSTCgpLCBzdGF0aWNfY2FzdDxTb3Vy
Y2VJRD4oc3RhY2tUcmFjZVtpXS5zb3VyY2VJRCgpKSwgbGluZSwgY29sdW1uKSk7CisgICAgICAg
IGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGZ1bmN0aW9uTmFtZSwgc3RhY2tUcmFjZVtp
XS5zb3VyY2VVUkwoKSwgc3RhY2tUcmFjZVtpXS5zb3VyY2VJRCgpLCBsaW5lLCBjb2x1bW4pKTsK
ICAgICB9CiAKICAgICAvLyBGYWxsYmFjayB0byBnZXR0aW5nIGF0IGxlYXN0IHRoZSBsaW5lIGFu
ZCBzb3VyY2VVUkwgZnJvbSB0aGUgZXhjZXB0aW9uIG9iamVjdCBpZiBpdCBoYXMgdmFsdWVzIGFu
ZCB0aGUgZXhjZXB0aW9uU3RhY2sgZG9lc24ndC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKaW5kZXggNTdhMWJkYjZkYmQ1YjE2MDY5
MWM2NTY1MGZjMGQ0NWRiZTgwOWVhYi4uNGI1ZmZjNmFkMDk4YWE4YjhiNWQ2ZmUzMjNkZTQ1OWM3
MDQ0ZjEwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0
YWNrVmlzaXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0
YWNrVmlzaXRvci5jcHAKQEAgLTM1MSw3ICszNTEsNyBAQCBTdHJpbmcgU3RhY2tWaXNpdG9yOjpG
cmFtZTo6dG9TdHJpbmcoKSBjb25zdAogICAgIHJldHVybiBtYWtlU3RyaW5nKGZ1bmN0aW9uTmFt
ZSwgc2VwYXJhdG9yLCBzb3VyY2VVUkwsICc6JywgbGluZSwgJzonLCBjb2x1bW4pOwogfQogCi1p
bnRwdHJfdCBTdGFja1Zpc2l0b3I6OkZyYW1lOjpzb3VyY2VJRCgpCitTb3VyY2VJRCBTdGFja1Zp
c2l0b3I6OkZyYW1lOjpzb3VyY2VJRCgpCiB7CiAgICAgaWYgKENvZGVCbG9jayogY29kZUJsb2Nr
ID0gdGhpcy0+Y29kZUJsb2NrKCkpCiAgICAgICAgIHJldHVybiBjb2RlQmxvY2stPm93bmVyRXhl
Y3V0YWJsZSgpLT5zb3VyY2VJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1N0YWNrVmlzaXRvci5oCmluZGV4IDBiYjlhZjU4MTVhNTEwNjNhMDNiMzIwMDA0MTM2
MTg4NGNlNmRmMjcuLjE0ZGRhOWZhYWEzYzhmNDFmOGRiZjRiY2U5YmE1YzliMGIzYzNjMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmgK
QEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkJ5dGVjb2RlSW5kZXguaCIKICNpbmNsdWRl
ICJDYWxsZWVCaXRzLmgiCisjaW5jbHVkZSAiU291cmNlSUQuaCIKICNpbmNsdWRlICJXYXNtSW5k
ZXhPck5hbWUuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSW5k
ZW50ZXIuaD4KQEAgLTg3LDcgKzg4LDcgQEAgcHVibGljOgogICAgICAgICBKU19FWFBPUlRfUFJJ
VkFURSBTdHJpbmcgc291cmNlVVJMKCkgY29uc3Q7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRF
IFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIGlu
dHB0cl90IHNvdXJjZUlEKCk7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZUlEIHNv
dXJjZUlEKCk7CiAKICAgICAgICAgQ29kZVR5cGUgY29kZVR5cGUoKSBjb25zdDsKICAgICAgICAg
Ym9vbCBoYXNMaW5lQW5kQ29sdW1uSW5mbygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCmluZGV4IGE0MjRjZjFmYWZmYWJkYTc0NTc2NzY1YzI1MzE3NTQyZjVlZmM1NzUu
LmUzMGViODE0YjllMjAyNmVjNGUyYWEzNjQyOTI0ODM4OTJmZTczMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTE4OTgsNyArMTg5OCw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBTY29wZU5vZGUoUGFyc2VyQXJlbmEmLCBjb25zdCBKU1Rva2VuTG9jYXRpb24m
IHN0YXJ0LCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIGVuZCwgY29uc3QgU291cmNlQ29kZSYsIFNv
dXJjZUVsZW1lbnRzKiwgVmFyaWFibGVFbnZpcm9ubWVudCYmLCBGdW5jdGlvblN0YWNrJiYsIFZh
cmlhYmxlRW52aXJvbm1lbnQmJiwgVW5pcXVlZFN0cmluZ0ltcGxQdHJTZXQmJiwgQ29kZUZlYXR1
cmVzLCBMZXhpY2FsU2NvcGVGZWF0dXJlcywgSW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVz
LCBpbnQgbnVtQ29uc3RhbnRzKTsKIAogICAgICAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Uo
KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsgfQotICAgICAgICBpbnRwdHJfdCBzb3VyY2VJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVySUQoKTsgfQorICAgICAgICBTb3VyY2VJ
RCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVySUQoKTsgfQogCiAg
ICAgICAgIGludCBzdGFydExpbmUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0TGluZU51bWJlcjsg
fQogICAgICAgICBpbnQgc3RhcnRTdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRT
dGFydE9mZnNldDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaApp
bmRleCA5OTJkODlhMjEwM2RlMzZjMGZkZDY3NWE1M2ZmOGIxMzEwYzAxZjM1Li44NmZlMTI0YTg3
M2NlNzUxYzYwYWVlYzhkNzkwNzM5NjM5YTRjMzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZUNvZGUuaApAQCAtMzIsNzkgKzMyLDc5IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi0gICAgY2xhc3MgU291cmNlQ29kZSA6IHB1YmxpYyBVbmxpbmtlZFNvdXJjZUNvZGUgewot
ICAgICAgICBmcmllbmQgY2xhc3MgQ2FjaGVkU291cmNlQ29kZTsKLSAgICAgICAgZnJpZW5kIGNs
YXNzIENhY2hlZFNvdXJjZUNvZGVXaXRob3V0UHJvdmlkZXI7Ci0KLSAgICBwdWJsaWM6Ci0gICAg
ICAgIFNvdXJjZUNvZGUoKQotICAgICAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoKQotICAg
ICAgICAgICAgLCBtX2ZpcnN0TGluZShPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKQotICAg
ICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCkpCi0g
ICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFNvdXJjZUNvZGUoUmVmPFNvdXJjZVByb3Zp
ZGVyPiYmIHByb3ZpZGVyKQotICAgICAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoV1RGTW92
ZShwcm92aWRlcikpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFNvdXJjZUNvZGUo
UmVmPFNvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRD
b2x1bW4pCi0gICAgICAgICAgICA6IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3ZpZGVy
KSkKLSAgICAgICAgICAgICwgbV9maXJzdExpbmUoT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2Vk
SW50KHN0ZDo6bWF4KGZpcnN0TGluZSwgMSkpKQotICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1u
KE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChzdGFydENvbHVtbiwgMSkp
KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTb3VyY2VDb2RlKFJlZlB0cjxTb3Vy
Y2VQcm92aWRlcj4mJiBwcm92aWRlciwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBp
bnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCi0gICAgICAgICAgICA6IFVubGlua2VkU291
cmNlQ29kZShXVEZNb3ZlKHByb3ZpZGVyKSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCkKLSAgICAg
ICAgICAgICwgbV9maXJzdExpbmUoT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6
bWF4KGZpcnN0TGluZSwgMSkpKQotICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxO
dW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChzdGFydENvbHVtbiwgMSkpKQotICAgICAg
ICB7Ci0gICAgICAgIH0KLQotICAgICAgICBPcmRpbmFsTnVtYmVyIGZpcnN0TGluZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZmlyc3RMaW5lOyB9Ci0gICAgICAgIE9yZGluYWxOdW1iZXIgc3RhcnRDb2x1
bW4oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9Ci0KLSAgICAgICAgaW50cHRyX3Qg
cHJvdmlkZXJJRCgpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghbV9wcm92aWRl
cikKLSAgICAgICAgICAgICAgICByZXR1cm4gU291cmNlUHJvdmlkZXI6Om51bGxJRDsKLSAgICAg
ICAgICAgIHJldHVybiBtX3Byb3ZpZGVyLT5hc0lEKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBT
b3VyY2VQcm92aWRlciogcHJvdmlkZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyLmdldCgp
OyB9Ci0KLSAgICAgICAgU291cmNlQ29kZSBzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFj
ZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBj
b25zdDsKLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU291cmNlQ29kZSYgb3RoZXIp
IGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX2ZpcnN0TGluZSA9PSBvdGhl
ci5tX2ZpcnN0TGluZQotICAgICAgICAgICAgICAgICYmIG1fc3RhcnRDb2x1bW4gPT0gb3RoZXIu
bV9zdGFydENvbHVtbgotICAgICAgICAgICAgICAgICYmIG1fcHJvdmlkZXIgPT0gb3RoZXIubV9w
cm92aWRlcgotICAgICAgICAgICAgICAgICYmIG1fc3RhcnRPZmZzZXQgPT0gb3RoZXIubV9zdGFy
dE9mZnNldAotICAgICAgICAgICAgICAgICYmIG1fZW5kT2Zmc2V0ID09IG90aGVyLm1fZW5kT2Zm
c2V0OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNvdXJjZUNv
ZGUmIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9
PSBvdGhlcik7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIE9yZGluYWxOdW1i
ZXIgbV9maXJzdExpbmU7Ci0gICAgICAgIE9yZGluYWxOdW1iZXIgbV9zdGFydENvbHVtbjsKLSAg
ICB9OwotCi0gICAgaW5saW5lIFNvdXJjZUNvZGUgbWFrZVNvdXJjZShjb25zdCBTdHJpbmcmIHNv
dXJjZSwgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSA9
IFN0cmluZygpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRp
b24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRl
clNvdXJjZVR5cGU6OlByb2dyYW0pCitjbGFzcyBTb3VyY2VDb2RlIDogcHVibGljIFVubGlua2Vk
U291cmNlQ29kZSB7CisgICAgZnJpZW5kIGNsYXNzIENhY2hlZFNvdXJjZUNvZGU7CisgICAgZnJp
ZW5kIGNsYXNzIENhY2hlZFNvdXJjZUNvZGVXaXRob3V0UHJvdmlkZXI7CisKK3B1YmxpYzoKKyAg
ICBTb3VyY2VDb2RlKCkKKyAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoKQorICAgICAgICAs
IG1fZmlyc3RMaW5lKE9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCkpCisgICAgICAgICwgbV9z
dGFydENvbHVtbihPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIFNvdXJjZUNvZGUoU3RyaW5nU291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNv
dXJjZU9yaWdpbiwgV1RGTW92ZShmaWxlbmFtZSksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUp
LCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29s
dW1uLm9uZUJhc2VkSW50KCkpOwogICAgIH0KLSAgICAKLSAgICBpbmxpbmUgU291cmNlQ29kZSBT
b3VyY2VDb2RlOjpzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xv
c2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBjb25zdAorCisgICAgU291
cmNlQ29kZShSZWY8U291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCisgICAgICAgIDogVW5saW5r
ZWRTb3VyY2VDb2RlKFdURk1vdmUocHJvdmlkZXIpKQorICAgIHsKKyAgICB9CisKKyAgICBTb3Vy
Y2VDb2RlKFJlZjxTb3VyY2VQcm92aWRlcj4mJiBwcm92aWRlciwgaW50IGZpcnN0TGluZSwgaW50
IHN0YXJ0Q29sdW1uKQorICAgICAgICA6IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3Zp
ZGVyKSkKKyAgICAgICAgLCBtX2ZpcnN0TGluZShPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJ
bnQoc3RkOjptYXgoZmlyc3RMaW5lLCAxKSkpCisgICAgICAgICwgbV9zdGFydENvbHVtbihPcmRp
bmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjptYXgoc3RhcnRDb2x1bW4sIDEpKSkKKyAg
ICB7CisgICAgfQorCisgICAgU291cmNlQ29kZShSZWZQdHI8U291cmNlUHJvdmlkZXI+JiYgcHJv
dmlkZXIsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwgaW50IGZpcnN0TGluZSwgaW50
IHN0YXJ0Q29sdW1uKQorICAgICAgICA6IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3Zp
ZGVyKSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCkKKyAgICAgICAgLCBtX2ZpcnN0TGluZShPcmRp
bmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjptYXgoZmlyc3RMaW5lLCAxKSkpCisgICAg
ICAgICwgbV9zdGFydENvbHVtbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjpt
YXgoc3RhcnRDb2x1bW4sIDEpKSkKKyAgICB7CisgICAgfQorCisgICAgT3JkaW5hbE51bWJlciBm
aXJzdExpbmUoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0TGluZTsgfQorICAgIE9yZGluYWxOdW1i
ZXIgc3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9CisKKyAgICBT
b3VyY2VJRCBwcm92aWRlcklEKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9wcm92aWRl
cikKKyAgICAgICAgICAgIHJldHVybiBTb3VyY2VQcm92aWRlcjo6bnVsbElEOworICAgICAgICBy
ZXR1cm4gbV9wcm92aWRlci0+YXNJRCgpOworICAgIH0KKworICAgIFNvdXJjZVByb3ZpZGVyKiBw
cm92aWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlkZXIuZ2V0KCk7IH0KKworICAgIFNvdXJj
ZUNvZGUgc3ViRXhwcmVzc2lvbih1bnNpZ25lZCBvcGVuQnJhY2UsIHVuc2lnbmVkIGNsb3NlQnJh
Y2UsIGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVtbikgY29uc3Q7CisKKyAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgU291cmNlQ29kZSYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICBz
dGFydENvbHVtbiArPSAxOyAvLyBDb252ZXJ0IHRvIGJhc2UgMS4KLSAgICAgICAgcmV0dXJuIFNv
dXJjZUNvZGUoUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiB7IHByb3ZpZGVyKCkgfSwgb3BlbkJyYWNl
LCBjbG9zZUJyYWNlICsgMSwgZmlyc3RMaW5lLCBzdGFydENvbHVtbik7CisgICAgICAgIHJldHVy
biBtX2ZpcnN0TGluZSA9PSBvdGhlci5tX2ZpcnN0TGluZQorICAgICAgICAgICAgJiYgbV9zdGFy
dENvbHVtbiA9PSBvdGhlci5tX3N0YXJ0Q29sdW1uCisgICAgICAgICAgICAmJiBtX3Byb3ZpZGVy
ID09IG90aGVyLm1fcHJvdmlkZXIKKyAgICAgICAgICAgICYmIG1fc3RhcnRPZmZzZXQgPT0gb3Ro
ZXIubV9zdGFydE9mZnNldAorICAgICAgICAgICAgJiYgbV9lbmRPZmZzZXQgPT0gb3RoZXIubV9l
bmRPZmZzZXQ7CiAgICAgfQogCisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNvdXJjZUNvZGUm
IG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBPcmRpbmFsTnVtYmVyIG1fZmlyc3RMaW5lOworICAgIE9y
ZGluYWxOdW1iZXIgbV9zdGFydENvbHVtbjsKK307CisKK2lubGluZSBTb3VyY2VDb2RlIG1ha2VT
b3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3Jp
Z2luLCBTdHJpbmcgZmlsZW5hbWUgPSBTdHJpbmcoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFy
dFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3Vy
Y2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpQcm9ncmFtKQoreworICAgIHJldHVy
biBTb3VyY2VDb2RlKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VP
cmlnaW4sIFdURk1vdmUoZmlsZW5hbWUpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSwgc3Rh
cnRQb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5v
bmVCYXNlZEludCgpKTsKK30KKworaW5saW5lIFNvdXJjZUNvZGUgU291cmNlQ29kZTo6c3ViRXhw
cmVzc2lvbih1bnNpZ25lZCBvcGVuQnJhY2UsIHVuc2lnbmVkIGNsb3NlQnJhY2UsIGludCBmaXJz
dExpbmUsIGludCBzdGFydENvbHVtbikgY29uc3QKK3sKKyAgICBzdGFydENvbHVtbiArPSAxOyAv
LyBDb252ZXJ0IHRvIGJhc2UgMS4KKyAgICByZXR1cm4gU291cmNlQ29kZShSZWZQdHI8U291cmNl
UHJvdmlkZXI+IHsgcHJvdmlkZXIoKSB9LCBvcGVuQnJhY2UsIGNsb3NlQnJhY2UgKyAxLCBmaXJz
dExpbmUsIHN0YXJ0Q29sdW1uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCmluZGV4IDYwNmU1ZjE3
NDRhZjBmNjEwZGRjY2U3NjFiYzkzZTMyMjNiOTUzZGIuLjJiZDU1OWIzNTNjMzg3YTVmNjAxMjVj
MjM2Y2ZjOTRlMjg5OTI3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU291cmNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlUHJvdmlkZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAyMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJTb3VyY2VQcm92aWRlci5oIgogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KLQogbmFt
ZXNwYWNlIEpTQyB7CiAKIERFRklORV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoU3Ry
aW5nU291cmNlUHJvdmlkZXIpOwpAQCAtNDQsMTMgKzQyLDEwIEBAIFNvdXJjZVByb3ZpZGVyOjp+
U291cmNlUHJvdmlkZXIoKQogewogfQogCi1zdGF0aWMgTG9jayBwcm92aWRlcklkTG9jazsKLQog
dm9pZCBTb3VyY2VQcm92aWRlcjo6Z2V0SUQoKQogewotICAgIExvY2tlciBsb2NrZXIgeyBwcm92
aWRlcklkTG9jayB9OwogICAgIGlmICghbV9pZCkgewotICAgICAgICBzdGF0aWMgaW50cHRyX3Qg
bmV4dFByb3ZpZGVySUQgPSAwOworICAgICAgICBzdGF0aWMgc3RkOjphdG9taWM8U291cmNlSUQ+
IG5leHRQcm92aWRlcklEID0gbnVsbElEOwogICAgICAgICBtX2lkID0gKytuZXh0UHJvdmlkZXJJ
RDsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pZCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCmluZGV4IDEyOWVlNWM0OWUyNDdhZmNk
OWYwOGQ1OWVmZTlmYjEyOGY5YWJiZTEuLmRjNjE2NjBiOGZjYzZhMDE2NGQ2ODgyZjg3NTIxNWE2
OTUyYzM5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNl
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC03OSw3ICs3OSw3IEBAIGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7
CiAgICAgICAgIFRleHRQb3NpdGlvbiBzdGFydFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9z
dGFydFBvc2l0aW9uOyB9CiAgICAgICAgIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VU
eXBlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VUeXBlOyB9CiAKLSAgICAgICAgaW50cHRyX3Qg
YXNJRCgpCisgICAgICAgIFNvdXJjZUlEIGFzSUQoKQogICAgICAgICB7CiAgICAgICAgICAgICBp
ZiAoIW1faWQpCiAgICAgICAgICAgICAgICAgZ2V0SUQoKTsKQEAgLTk4LDcgKzk4LDcgQEAgY2xh
c3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICAgICAgU3RyaW5nIG1fc291cmNlVVJM
RGlyZWN0aXZlOwogICAgICAgICBTdHJpbmcgbV9zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlOwog
ICAgICAgICBUZXh0UG9zaXRpb24gbV9zdGFydFBvc2l0aW9uOwotICAgICAgICB1aW50cHRyX3Qg
bV9pZCB7IDAgfTsKKyAgICAgICAgU291cmNlSUQgbV9pZCB7IDAgfTsKICAgICB9OwogCiAgICAg
REVDTEFSRV9BTExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoU3RyaW5nU291cmNlUHJvdmlk
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZs
b3dQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxv
d1Byb2ZpbGVyLmNwcAppbmRleCBlYmI0Mjk5MmQwZTJkM2VlYjExZmEzMDZiZGQ2N2UzMjZhOGI0
ZTcyLi44ODg3ZDY4MmJmZTBjNzYxMjY2ZmE3ZTVhY2VjMTljODJkMDQ0MTFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNw
cApAQCAtNDQsNyArNDQsNyBAQCBDb250cm9sRmxvd1Byb2ZpbGVyOjp+Q29udHJvbEZsb3dQcm9m
aWxlcigpCiAgICAgfQogfQogCi1CYXNpY0Jsb2NrTG9jYXRpb24qIENvbnRyb2xGbG93UHJvZmls
ZXI6OmdldEJhc2ljQmxvY2tMb2NhdGlvbihpbnRwdHJfdCBzb3VyY2VJRCwgaW50IHN0YXJ0T2Zm
c2V0LCBpbnQgZW5kT2Zmc2V0KQorQmFzaWNCbG9ja0xvY2F0aW9uKiBDb250cm9sRmxvd1Byb2Zp
bGVyOjpnZXRCYXNpY0Jsb2NrTG9jYXRpb24oU291cmNlSUQgc291cmNlSUQsIGludCBzdGFydE9m
ZnNldCwgaW50IGVuZE9mZnNldCkKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc291cmNlSURC
dWNrZXRzLmFkZChzb3VyY2VJRCwgQmxvY2tMb2NhdGlvbkNhY2hlKCkpOwogICAgIEJsb2NrTG9j
YXRpb25DYWNoZSYgYmxvY2tMb2NhdGlvbkNhY2hlID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZTsKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBDb250cm9sRmxvd1Byb2ZpbGVyOjpkdW1wRGF0YSgp
IGNvbnN0CiAgICAgfQogfQogCi1WZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiBDb250cm9sRmxvd1By
b2ZpbGVyOjpnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKGludHB0cl90IHNvdXJjZUlELCBWTSYg
dm0pIGNvbnN0IAorVmVjdG9yPEJhc2ljQmxvY2tSYW5nZT4gQ29udHJvbEZsb3dQcm9maWxlcjo6
Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRChTb3VyY2VJRCBzb3VyY2VJRCwgVk0mIHZtKSBjb25z
dAogewogICAgIFZlY3RvcjxCYXNpY0Jsb2NrUmFuZ2U+IHJlc3VsdCgwKTsKICAgICBhdXRvIGJ1
Y2tldEZpbmRSZXN1bHQgPSBtX3NvdXJjZUlEQnVja2V0cy5maW5kKHNvdXJjZUlEKTsKQEAgLTEy
MCwxNCArMTIwLDE0IEBAIHN0YXRpYyBCYXNpY0Jsb2NrUmFuZ2UgZmluZEJhc2ljQmxvY2tBdFRl
eHRPZmZzZXQoaW50IG9mZnNldCwgY29uc3QgVmVjdG9yPEJhc2ljCiAgICAgcmV0dXJuIGJlc3RS
YW5nZTsKIH0KIAotYm9vbCBDb250cm9sRmxvd1Byb2ZpbGVyOjpoYXNCYXNpY0Jsb2NrQXRUZXh0
T2Zmc2V0QmVlbkV4ZWN1dGVkKGludCBvZmZzZXQsIGludHB0cl90IHNvdXJjZUlELCBWTSYgdm0p
Citib29sIENvbnRyb2xGbG93UHJvZmlsZXI6Omhhc0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRCZWVu
RXhlY3V0ZWQoaW50IG9mZnNldCwgU291cmNlSUQgc291cmNlSUQsIFZNJiB2bSkKIHsKICAgICBj
b25zdCBWZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiYgYmxvY2tzID0gZ2V0QmFzaWNCbG9ja3NGb3JT
b3VyY2VJRChzb3VyY2VJRCwgdm0pOwogICAgIEJhc2ljQmxvY2tSYW5nZSByYW5nZSA9IGZpbmRC
YXNpY0Jsb2NrQXRUZXh0T2Zmc2V0KG9mZnNldCwgYmxvY2tzKTsKICAgICByZXR1cm4gcmFuZ2Uu
bV9oYXNFeGVjdXRlZDsKIH0KIAotc2l6ZV90IENvbnRyb2xGbG93UHJvZmlsZXI6OmJhc2ljQmxv
Y2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldChpbnQgb2Zmc2V0LCBpbnRwdHJfdCBzb3VyY2VJ
RCwgVk0mIHZtKQorc2l6ZV90IENvbnRyb2xGbG93UHJvZmlsZXI6OmJhc2ljQmxvY2tFeGVjdXRp
b25Db3VudEF0VGV4dE9mZnNldChpbnQgb2Zmc2V0LCBTb3VyY2VJRCBzb3VyY2VJRCwgVk0mIHZt
KQogewogICAgIGNvbnN0IFZlY3RvcjxCYXNpY0Jsb2NrUmFuZ2U+JiBibG9ja3MgPSBnZXRCYXNp
Y0Jsb2Nrc0ZvclNvdXJjZUlEKHNvdXJjZUlELCB2bSk7CiAgICAgQmFzaWNCbG9ja1JhbmdlIHJh
bmdlID0gZmluZEJhc2ljQmxvY2tBdFRleHRPZmZzZXQob2Zmc2V0LCBibG9ja3MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5oCmlu
ZGV4IDFjNDk1NTlmNTIwNTA3OWEyYzZkMmRiNGRjZTBiNTM2M2QyYjlkNTUuLjZkY2ExNGRlNjIx
MTdlODJmNGE3NmVkNzc0OTQ1MGRiZjk3NjE5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmgKQEAgLTkxLDE2ICs5MSwxNiBA
QCBjbGFzcyBDb250cm9sRmxvd1Byb2ZpbGVyIHsKIHB1YmxpYzoKICAgICBDb250cm9sRmxvd1By
b2ZpbGVyKCk7CiAgICAgfkNvbnRyb2xGbG93UHJvZmlsZXIoKTsKLSAgICBCYXNpY0Jsb2NrTG9j
YXRpb24qIGdldEJhc2ljQmxvY2tMb2NhdGlvbihpbnRwdHJfdCBzb3VyY2VJRCwgaW50IHN0YXJ0
T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0KTsKKyAgICBCYXNpY0Jsb2NrTG9jYXRpb24qIGdldEJhc2lj
QmxvY2tMb2NhdGlvbihTb3VyY2VJRCwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0KTsK
ICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGR1bXBEYXRhKCkgY29uc3Q7Ci0gICAgVmVjdG9y
PEJhc2ljQmxvY2tSYW5nZT4gZ2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRChpbnRwdHJfdCBzb3Vy
Y2VJRCwgVk0mKSBjb25zdDsKKyAgICBWZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiBnZXRCYXNpY0Js
b2Nrc0ZvclNvdXJjZUlEKFNvdXJjZUlELCBWTSYpIGNvbnN0OwogICAgIEJhc2ljQmxvY2tMb2Nh
dGlvbiogZHVtbXlCYXNpY0Jsb2NrKCkgeyByZXR1cm4gJm1fZHVtbXlCYXNpY0Jsb2NrOyB9Ci0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBoYXNCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4
ZWN1dGVkKGludCwgaW50cHRyX3QsIFZNJik7ICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3Ig
dGVzdGluZy4KLSAgICBKU19FWFBPUlRfUFJJVkFURSBzaXplX3QgYmFzaWNCbG9ja0V4ZWN1dGlv
bkNvdW50QXRUZXh0T2Zmc2V0KGludCwgaW50cHRyX3QsIFZNJik7IC8vIFRoaXMgZnVuY3Rpb24g
ZXhpc3RzIGZvciB0ZXN0aW5nLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaGFzQmFzaWNC
bG9ja0F0VGV4dE9mZnNldEJlZW5FeGVjdXRlZChpbnQsIFNvdXJjZUlELCBWTSYpOyAvLyBUaGlz
IGZ1bmN0aW9uIGV4aXN0cyBmb3IgdGVzdGluZy4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBzaXpl
X3QgYmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50QXRUZXh0T2Zmc2V0KGludCwgU291cmNlSUQsIFZN
Jik7IC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGZvciB0ZXN0aW5nLgogCiBwcml2YXRlOgogICAg
IHR5cGVkZWYgSGFzaE1hcDxCYXNpY0Jsb2NrS2V5LCBCYXNpY0Jsb2NrTG9jYXRpb24qPiBCbG9j
a0xvY2F0aW9uQ2FjaGU7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPGludHB0cl90LCBCbG9ja0xvY2F0
aW9uQ2FjaGU+IFNvdXJjZUlEQnVja2V0czsKKyAgICB0eXBlZGVmIEhhc2hNYXA8U291cmNlSUQs
IEJsb2NrTG9jYXRpb25DYWNoZT4gU291cmNlSURCdWNrZXRzOwogCiAgICAgU291cmNlSURCdWNr
ZXRzIG1fc291cmNlSURCdWNrZXRzOwogICAgIEJhc2ljQmxvY2tMb2NhdGlvbiBtX2R1bW15QmFz
aWNCbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uSGFzRXhlY3V0ZWRDYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuY3BwCmluZGV4IGE4YWFkYWRmZDE3NDJhYjRlMTFmN2Ni
ODEzYTI5Y2Y5YWZlZDIzODUuLjY4YzA2MDZiMDcxMzEyNGM3YWExNzBjMWRhMmQ5OTZkOGUxNGUz
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFz
RXhlY3V0ZWRDYWNoZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotYm9vbCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6Omhhc0V4ZWN1dGVkQXRPZmZz
ZXQoaW50cHRyX3QgaWQsIHVuc2lnbmVkIG9mZnNldCkKK2Jvb2wgRnVuY3Rpb25IYXNFeGVjdXRl
ZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zmc2V0KFNvdXJjZUlEIGlkLCB1bnNpZ25lZCBvZmZzZXQp
CiB7CiAgICAgaWYgKG1fcmFuZ2VNYXAuZmluZChpZCkgPT0gbV9yYW5nZU1hcC5lbmQoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDksNyArNDksNyBAQCBib29sIEZ1bmN0aW9uSGFzRXhl
Y3V0ZWRDYWNoZTo6aGFzRXhlY3V0ZWRBdE9mZnNldChpbnRwdHJfdCBpZCwgdW5zaWduZWQgb2Zm
c2V0KQogICAgIHJldHVybiBoYXNFeGVjdXRlZDsKIH0KIAotdm9pZCBGdW5jdGlvbkhhc0V4ZWN1
dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0ZWRSYW5nZShpbnRwdHJfdCBpZCwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkIGVuZCkgCit2b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6aW5zZXJ0
VW5leGVjdXRlZFJhbmdlKFNvdXJjZUlEIGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5k
KQogewogICAgIGlmIChtX3JhbmdlTWFwLmZpbmQoaWQpID09IG1fcmFuZ2VNYXAuZW5kKCkpIHsK
ICAgICAgICAgUmFuZ2VNYXAgbWFwOwpAQCAtNjYsNyArNjYsNyBAQCB2b2lkIEZ1bmN0aW9uSGFz
RXhlY3V0ZWRDYWNoZTo6aW5zZXJ0VW5leGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1bnNpZ25l
ZCBzdGFydAogICAgICAgICBtYXBbcmFuZ2VdID0gZmFsc2U7CiB9CiAKLXZvaWQgRnVuY3Rpb25I
YXNFeGVjdXRlZENhY2hlOjpyZW1vdmVVbmV4ZWN1dGVkUmFuZ2UoaW50cHRyX3QgaWQsIHVuc2ln
bmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpCit2b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6
cmVtb3ZlVW5leGVjdXRlZFJhbmdlKFNvdXJjZUlEIGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWdu
ZWQgZW5kKQogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbmV2ZXIgaGF2ZSBhbiBpbnN0YW5j
ZSB3aGVyZSB3ZSByZXR1cm4gaGVyZSwgYnV0IGN1cnJlbnRseSBkbyBpbiBzb21lIHNpdHVhdGlv
bnMuIEZpbmQgb3V0IHdoeS4KICAgICBpZiAobV9yYW5nZU1hcC5maW5kKGlkKSA9PSBtX3Jhbmdl
TWFwLmVuZCgpKQpAQCAtODAsNyArODAsNyBAQCB2b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNo
ZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydAogICAg
IG1hcFtyYW5nZV0gPSB0cnVlOwogfQogCi1WZWN0b3I8c3RkOjp0dXBsZTxib29sLCB1bnNpZ25l
ZCwgdW5zaWduZWQ+PiBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OmdldEZ1bmN0aW9uUmFuZ2Vz
KGludHB0cl90IGlkKQorVmVjdG9yPHN0ZDo6dHVwbGU8Ym9vbCwgdW5zaWduZWQsIHVuc2lnbmVk
Pj4gRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpnZXRGdW5jdGlvblJhbmdlcyhTb3VyY2VJRCBp
ZCkKIHsKICAgICBWZWN0b3I8c3RkOjp0dXBsZTxib29sLCB1bnNpZ25lZCwgdW5zaWduZWQ+PiBy
YW5nZXMoMCk7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV9yYW5nZU1hcC5maW5kKGlkKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0
ZWRDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVj
dXRlZENhY2hlLmgKaW5kZXggOWUyYjIwY2ZmNzA1OWM0NDE1ZDhjNjc5MjM1YjMyNjAyNTcxMjg2
ZS4uY2FhOTJkNmZlZTY0ZTg4YmRmYzRmMDBiNmEzNzJlMmI4MTljY2Q5MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENh
Y2hlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTb3Vy
Y2VJRC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWV0aG9kLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZFVu
b3JkZXJlZE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ4LDEwICs0OSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIHVuc2lnbmVkIG1fZW5kOwogICAgIH07CiAKLSAgICBib29sIGhh
c0V4ZWN1dGVkQXRPZmZzZXQoaW50cHRyX3QgaWQsIHVuc2lnbmVkIG9mZnNldCk7Ci0gICAgdm9p
ZCBpbnNlcnRVbmV4ZWN1dGVkUmFuZ2UoaW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNp
Z25lZCBlbmQpOwotICAgIHZvaWQgcmVtb3ZlVW5leGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKTsKLSAgICBWZWN0b3I8c3RkOjp0dXBsZTxib29s
LCB1bnNpZ25lZCwgdW5zaWduZWQ+PiBnZXRGdW5jdGlvblJhbmdlcyhpbnRwdHJfdCBpZCk7Cisg
ICAgYm9vbCBoYXNFeGVjdXRlZEF0T2Zmc2V0KFNvdXJjZUlELCB1bnNpZ25lZCBvZmZzZXQpOwor
ICAgIHZvaWQgaW5zZXJ0VW5leGVjdXRlZFJhbmdlKFNvdXJjZUlELCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgZW5kKTsKKyAgICB2b2lkIHJlbW92ZVVuZXhlY3V0ZWRSYW5nZShTb3VyY2VJRCwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCk7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8Ym9v
bCwgdW5zaWduZWQsIHVuc2lnbmVkPj4gZ2V0RnVuY3Rpb25SYW5nZXMoU291cmNlSUQpOwogCiBw
cml2YXRlOgogICAgIHVzaW5nIFJhbmdlTWFwID0gU3RkVW5vcmRlcmVkTWFwPEZ1bmN0aW9uUmFu
Z2UsIGJvb2wsIEhhc2hNZXRob2Q8RnVuY3Rpb25SYW5nZT4+OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAppbmRleCBiMjdlOGUzZDY0
ZGU4NmYzNWNiNDY3NTg1NzQ2Y2VmYzM5YTk1YmEyLi43Y2Q3OGM2OTI1ZTJhMmEwMjUzZDYwZGI1
NmUzOTg3ZmUyZjg4NzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtOTE4LDcgKzkxOCw3IEBAIHVuc2lnbmVkIFNhbXBs
aW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmZ1bmN0aW9uU3RhcnRDb2x1bW4oKQogICAgIHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7CiB9CiAKLWludHB0cl90IFNh
bXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OnNvdXJjZUlEKCkKK1NvdXJjZUlEIFNhbXBsaW5n
UHJvZmlsZXI6OlN0YWNrRnJhbWU6OnNvdXJjZUlEKCkKIHsKICAgICBzd2l0Y2ggKGZyYW1lVHlw
ZSkgewogICAgIGNhc2UgRnJhbWVUeXBlOjpVbmtub3duOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCmluZGV4IDlhZjI3NTY1ZDQ1MTg1ODU0
ODVmYzdiOTA3ZmU3M2ZlNWNjYzc0ZGEuLjU4OGNmZjA2Mjk5ZTRiYWE4MjgyYWZhYjQzNzZkMTBh
OWI3MjQ1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBs
aW5nUHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGlu
Z1Byb2ZpbGVyLmgKQEAgLTE0OCw3ICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBk
aXNwbGF5TmFtZUZvckpTT05UZXN0cyhWTSYpOyAvLyBVc2VkIGZvciBKU0Mgc3RyZXNzIHRlc3Rz
IGJlY2F1c2UgdGhleSB3YW50IHRoZSAiKGFub255bW91cyBmdW5jdGlvbikiIHN0cmluZyBmb3Ig
YW5vbnltb3VzIGZ1bmN0aW9ucyBhbmQgdGhleSB3YW50ICIoZXZhbCkiIGZvciBldmFsJ2QgY29k
ZS4KICAgICAgICAgaW50IGZ1bmN0aW9uU3RhcnRMaW5lKCk7CiAgICAgICAgIHVuc2lnbmVkIGZ1
bmN0aW9uU3RhcnRDb2x1bW4oKTsKLSAgICAgICAgaW50cHRyX3Qgc291cmNlSUQoKTsKKyAgICAg
ICAgU291cmNlSUQgc291cmNlSUQoKTsKICAgICAgICAgU3RyaW5nIHVybCgpOwogICAgIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFi
bGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaApp
bmRleCBmMzFiZDMzZjZlZTFkMTgyMDI2N2YzM2JiYTE4NDM4YWM5YjI3N2E2Li43NWRhZWU0Yjhm
MjhiNWJjMTBlMGU2MWMyMzY5MGU2NDkyMDc1MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1Ymxp
YzoKICAgICBDb2RlQmxvY2tIYXNoIGhhc2hGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCkgY29u
c3Q7CiAKICAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3Nv
dXJjZTsgfQotICAgIGludHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uu
cHJvdmlkZXJJRCgpOyB9CisgICAgU291cmNlSUQgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBt
X3NvdXJjZS5wcm92aWRlcklEKCk7IH0KICAgICBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9y
aWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdpbigp
OyB9CiAgICAgLy8gVGhpcyBpcyBOT1QgdGhlIHBhdGggdGhhdCBzaG91bGQgYmUgdXNlZCBmb3Ig
Y29tcHV0aW5nIHJlbGF0aXZlIHBhdGhzIGZyb20gYSBzY3JpcHQuIFVzZSBTb3VyY2VPcmlnaW4n
cyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1ZXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIHNhbWUuLi4g
VGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGZvciBgZXJyb3Iuc291cmNlVVJMYCBhbmQgc3RhY2sg
dHJhY2VzLgogICAgIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJMKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKaW5kZXggNmVlMWM1YjkyY2Q1NjkxY2YzZTgxNjQzYTZl
MTliZTQzNjE4YjlkZi4uNmI4ZjNkZjYzMzUwNDVkNWFjMjFlZjVhMDgyZDQ4NjgwNGZhM2U2YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKQEAgLTUx
LDcgKzUxLDcgQEAgU3RhY2tGcmFtZTo6U3RhY2tGcmFtZShXYXNtOjpJbmRleE9yTmFtZSBpbmRl
eE9yTmFtZSkKIHsKIH0KIAotaW50cHRyX3QgU3RhY2tGcmFtZTo6c291cmNlSUQoKSBjb25zdAor
U291cmNlSUQgU3RhY2tGcmFtZTo6c291cmNlSUQoKSBjb25zdAogewogICAgIGlmICghbV9jb2Rl
QmxvY2spCiAgICAgICAgIHJldHVybiBub1NvdXJjZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RhY2tGcmFtZS5oCmluZGV4IDA2MDlhNTZkNGU3YjIyYWU5YmZjNTE5NmIzYTIx
NDBiNGQzZTM4NzcuLjMzYjRhMjBiM2VmMjE1NTM0NGUxNTNjMzhlN2E3OTAyM2VlNzFmOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmgKQEAgLTQ3LDcgKzQ3
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgY29tcHV0ZUxpbmVBbmRDb2x1bW4odW5zaWdu
ZWQmIGxpbmUsIHVuc2lnbmVkJiBjb2x1bW4pIGNvbnN0OwogICAgIFN0cmluZyBmdW5jdGlvbk5h
bWUoVk0mKSBjb25zdDsKLSAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0OworICAgIFNvdXJj
ZUlEIHNvdXJjZUlEKCkgY29uc3Q7CiAgICAgU3RyaW5nIHNvdXJjZVVSTCgpIGNvbnN0OwogICAg
IFN0cmluZyB0b1N0cmluZyhWTSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5jcHAKaW5kZXggMDhkNWI5NjhmMWJhNTcy
Y2RlNGY0NzM1ZjI0NWU1MmQ1MjE0OWI2My4uMTUzYjY3NThiYjk0YjEyMWU2NmJiNzQyZWU4NTgz
M2Y5YTg3MzY5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlw
ZUxvY2F0aW9uQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVMb2NhdGlvbkNhY2hlLmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotc3RkOjpwYWlyPFR5cGVMb2NhdGlvbiosIGJvb2w+IFR5cGVMb2NhdGlvbkNhY2hlOjpnZXRU
eXBlTG9jYXRpb24oR2xvYmFsVmFyaWFibGVJRCBnbG9iYWxWYXJpYWJsZUlELCBpbnRwdHJfdCBz
b3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgUmVmUHRyPFR5cGVTZXQ+JiYg
Z2xvYmFsVHlwZVNldCwgVk0qIHZtKQorc3RkOjpwYWlyPFR5cGVMb2NhdGlvbiosIGJvb2w+IFR5
cGVMb2NhdGlvbkNhY2hlOjpnZXRUeXBlTG9jYXRpb24oR2xvYmFsVmFyaWFibGVJRCBnbG9iYWxW
YXJpYWJsZUlELCBTb3VyY2VJRCBzb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVu
ZCwgUmVmUHRyPFR5cGVTZXQ+JiYgZ2xvYmFsVHlwZVNldCwgVk0qIHZtKQogewogICAgIExvY2F0
aW9uS2V5IGtleTsKICAgICBrZXkubV9nbG9iYWxWYXJpYWJsZUlEID0gZ2xvYmFsVmFyaWFibGVJ
RDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlv
bkNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNo
ZS5oCmluZGV4IDg2NzU4ZTI3MThhMzNjNDUxMGIyMjM5YjNmZGExODFhYmY3NWVhOTUuLmE4ZTg4
YWRiZDE1YWFiODBlMzQxZWU2YTQzMTdhZjMxMjQ1MjQwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaApAQCAtMjUsNiArMjUsNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNvdXJjZUlELmgiCiAjaW5jbHVkZSAiVHlw
ZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1ldGhvZC5oPgpAQCAtNTIsMTIgKzUzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAg
ICAgICAgIEdsb2JhbFZhcmlhYmxlSUQgbV9nbG9iYWxWYXJpYWJsZUlEOwotICAgICAgICBpbnRw
dHJfdCBtX3NvdXJjZUlEOworICAgICAgICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgICAgICB1
bnNpZ25lZCBtX3N0YXJ0OwogICAgICAgICB1bnNpZ25lZCBtX2VuZDsKICAgICB9OwogCi0gICAg
c3RkOjpwYWlyPFR5cGVMb2NhdGlvbiosIGJvb2w+IGdldFR5cGVMb2NhdGlvbihHbG9iYWxWYXJp
YWJsZUlELCBpbnRwdHJfdCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgUmVmUHRyPFR5
cGVTZXQ+JiYsIFZNKik7CisgICAgc3RkOjpwYWlyPFR5cGVMb2NhdGlvbiosIGJvb2w+IGdldFR5
cGVMb2NhdGlvbihHbG9iYWxWYXJpYWJsZUlELCBTb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVu
c2lnbmVkIGVuZCwgUmVmUHRyPFR5cGVTZXQ+JiYsIFZNKik7CiBwcml2YXRlOgogICAgIHVzaW5n
IExvY2F0aW9uTWFwID0gU3RkVW5vcmRlcmVkTWFwPExvY2F0aW9uS2V5LCBUeXBlTG9jYXRpb24q
LCBIYXNoTWV0aG9kPExvY2F0aW9uS2V5Pj47CiAgICAgTG9jYXRpb25NYXAgbV9sb2NhdGlvbk1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCmlu
ZGV4IDYyMjExMzk0OWJlOWE3NTdlZDQwMGI1MmRhNTEyOThhMzIzZGFiZjYuLjdlMWJjZTI5YmFm
ZWZmYmNhNjRmYzU0NWVhNGFiODhjOGVlMWZkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFR5cGVQ
cm9maWxlcjo6aW5zZXJ0TmV3TG9jYXRpb24oVHlwZUxvY2F0aW9uKiBsb2NhdGlvbikKICAgICBi
dWNrZXQuYXBwZW5kKGxvY2F0aW9uKTsKIH0KIAotU3RyaW5nIFR5cGVQcm9maWxlcjo6dHlwZUlu
Zm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0
b3IgZGVzY3JpcHRvciwgdW5zaWduZWQgb2Zmc2V0LCBpbnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZt
KQorU3RyaW5nIFR5cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zm
c2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IgZGVzY3JpcHRvciwgdW5zaWduZWQgb2Zm
c2V0LCBTb3VyY2VJRCBzb3VyY2VJRCwgVk0mIHZtKQogewogICAgIC8vIFRoaXMgcmV0dXJucyBh
IEpTT04gc3RyaW5nIHJlcHJlc2VudGluZyBhbiBPYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHBy
b3BlcnRpZXM6CiAgICAgLy8gICAgIGdsb2JhbFR5cGVTZXQ6ICdKU09OPFR5cGVTZXQ+IHwgbnVs
bCcKQEAgLTEwMiw3ICsxMDIsNyBAQCBTdHJpbmcgVHlwZVByb2ZpbGVyOjp0eXBlSW5mb3JtYXRp
b25Gb3JFeHByZXNzaW9uQXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNoRGVzYwogICAgIHJldHVy
biBqc29uLnRvU3RyaW5nKCk7CiB9CiAKLVR5cGVMb2NhdGlvbiogVHlwZVByb2ZpbGVyOjpmaW5k
TG9jYXRpb24odW5zaWduZWQgZGl2b3QsIGludHB0cl90IHNvdXJjZUlELCBUeXBlUHJvZmlsZXJT
ZWFyY2hEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFZNJiB2bSkKK1R5cGVMb2NhdGlvbiogVHlwZVBy
b2ZpbGVyOjpmaW5kTG9jYXRpb24odW5zaWduZWQgZGl2b3QsIFNvdXJjZUlEIHNvdXJjZUlELCBU
eXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFZNJiB2bSkKIHsKICAgICBR
dWVyeUtleSBxdWVyeUtleShzb3VyY2VJRCwgZGl2b3QsIGRlc2NyaXB0b3IpOwogICAgIGF1dG8g
aXRlciA9IG1fcXVlcnlDYWNoZS5maW5kKHF1ZXJ5S2V5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgKaW5kZXggNzc5Y2MwMGMxMGRhOWUxZWI2Y2ExOTc4
MDU3ZmRhMjE5ZDgwY2JjNS4uOTdkOTczZjgzZjg2NmJhY2ZjNjk0NGQ2YmUxZjFiMDcyOTQyYTQy
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTb3VyY2VJRC5oIgog
I2luY2x1ZGUgIlR5cGVMb2NhdGlvbi5oIgogI2luY2x1ZGUgIlR5cGVMb2NhdGlvbkNhY2hlLmgi
CiAjaW5jbHVkZSA8d3RmL0JhZy5oPgpAQCAtNTAsMjEgKzUxLDIxIEBAIHN0cnVjdCBRdWVyeUtl
eSB7CiAgICAgICAgICwgbV9zZWFyY2hEZXNjcmlwdG9yKFR5cGVQcm9maWxlclNlYXJjaERlc2Ny
aXB0b3JGdW5jdGlvblJldHVybikKICAgICB7IH0KIAotICAgIFF1ZXJ5S2V5KGludHB0cl90IHNv
dXJjZUlELCB1bnNpZ25lZCBkaXZvdCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBzZWFy
Y2hEZXNjcmlwdG9yKQorICAgIFF1ZXJ5S2V5KFNvdXJjZUlEIHNvdXJjZUlELCB1bnNpZ25lZCBk
aXZvdCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBzZWFyY2hEZXNjcmlwdG9yKQogICAg
ICAgICA6IG1fc291cmNlSUQoc291cmNlSUQpCiAgICAgICAgICwgbV9kaXZvdChkaXZvdCkKICAg
ICAgICAgLCBtX3NlYXJjaERlc2NyaXB0b3Ioc2VhcmNoRGVzY3JpcHRvcikKICAgICB7IH0KIAog
ICAgIFF1ZXJ5S2V5KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgOiBt
X3NvdXJjZUlEKElOVFBUUl9NQVgpCisgICAgICAgIDogbV9zb3VyY2VJRChVSU5UX01BWCkKICAg
ICAgICAgLCBtX2Rpdm90KFVJTlRfTUFYKQogICAgICAgICAsIG1fc2VhcmNoRGVzY3JpcHRvcihU
eXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yRnVuY3Rpb25SZXR1cm4pCiAgICAgeyB9CiAKICAg
ICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgCiAgICAgeyAKLSAgICAgICAg
cmV0dXJuIG1fc291cmNlSUQgPT0gSU5UUFRSX01BWCAKKyAgICAgICAgcmV0dXJuIG1fc291cmNl
SUQgPT0gVUlOVF9NQVgKICAgICAgICAgICAgICYmIG1fZGl2b3QgPT0gVUlOVF9NQVgKICAgICAg
ICAgICAgICYmIG1fc2VhcmNoRGVzY3JpcHRvciA9PSBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlw
dG9yRnVuY3Rpb25SZXR1cm47CiAgICAgfQpAQCAtODIsNyArODMsNyBAQCBzdHJ1Y3QgUXVlcnlL
ZXkgewogICAgICAgICByZXR1cm4gaGFzaDsKICAgICB9CiAKLSAgICBpbnRwdHJfdCBtX3NvdXJj
ZUlEOworICAgIFNvdXJjZUlEIG1fc291cmNlSUQ7CiAgICAgdW5zaWduZWQgbV9kaXZvdDsKICAg
ICBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIG1fc2VhcmNoRGVzY3JpcHRvcjsKIH07CkBA
IC0xMTYsMTcgKzExNywxNyBAQCBjbGFzcyBUeXBlUHJvZmlsZXIgewogcHVibGljOgogICAgIFR5
cGVQcm9maWxlcigpOwogICAgIHZvaWQgbG9nVHlwZXNGb3JUeXBlTG9jYXRpb24oVHlwZUxvY2F0
aW9uKiwgVk0mKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgdHlwZUluZm9ybWF0aW9u
Rm9yRXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IsIHVuc2ln
bmVkIG9mZnNldCwgaW50cHRyX3Qgc291cmNlSUQsIFZNJik7CisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgU3RyaW5nIHR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJvZmls
ZXJTZWFyY2hEZXNjcmlwdG9yLCB1bnNpZ25lZCBvZmZzZXQsIFNvdXJjZUlELCBWTSYpOwogICAg
IHZvaWQgaW5zZXJ0TmV3TG9jYXRpb24oVHlwZUxvY2F0aW9uKik7CiAgICAgVHlwZUxvY2F0aW9u
Q2FjaGUqIHR5cGVMb2NhdGlvbkNhY2hlKCkgeyByZXR1cm4gJm1fdHlwZUxvY2F0aW9uQ2FjaGU7
IH0KLSAgICBUeXBlTG9jYXRpb24qIGZpbmRMb2NhdGlvbih1bnNpZ25lZCBkaXZvdCwgaW50cHRy
X3Qgc291cmNlSUQsIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IsIFZNJik7CisgICAgVHlw
ZUxvY2F0aW9uKiBmaW5kTG9jYXRpb24odW5zaWduZWQgZGl2b3QsIFNvdXJjZUlELCBUeXBlUHJv
ZmlsZXJTZWFyY2hEZXNjcmlwdG9yLCBWTSYpOwogICAgIEdsb2JhbFZhcmlhYmxlSUQgZ2V0TmV4
dFVuaXF1ZVZhcmlhYmxlSUQoKSB7IHJldHVybiBtX25leHRVbmlxdWVWYXJpYWJsZUlEKys7IH0K
ICAgICBUeXBlTG9jYXRpb24qIG5leHRUeXBlTG9jYXRpb24oKTsKICAgICB2b2lkIGludmFsaWRh
dGVUeXBlU2V0Q2FjaGUoVk0mKTsKICAgICB2b2lkIGR1bXBUeXBlUHJvZmlsZXJEYXRhKFZNJik7
CiAgICAgCiBwcml2YXRlOgotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnRwdHJfdCwgVmVjdG9yPFR5
cGVMb2NhdGlvbio+PiBTb3VyY2VJRFRvTG9jYXRpb25CdWNrZXRNYXA7CisgICAgdHlwZWRlZiBI
YXNoTWFwPFNvdXJjZUlELCBWZWN0b3I8VHlwZUxvY2F0aW9uKj4+IFNvdXJjZUlEVG9Mb2NhdGlv
bkJ1Y2tldE1hcDsKICAgICBTb3VyY2VJRFRvTG9jYXRpb25CdWNrZXRNYXAgbV9idWNrZXRNYXA7
CiAgICAgVHlwZUxvY2F0aW9uQ2FjaGUgbV90eXBlTG9jYXRpb25DYWNoZTsKICAgICB0eXBlZGVm
IEhhc2hNYXA8UXVlcnlLZXksIFR5cGVMb2NhdGlvbio+IFR5cGVMb2NhdGlvblF1ZXJ5Q2FjaGU7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440786</attachid>
            <date>2021-10-11 07:18:43 -0700</date>
            <delta_ts>2021-10-11 08:01:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231436-20211011101842.patch</filename>
            <type>text/plain</type>
            <size>41526</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OThiZWM5NmI1M2Y2ODhmZmI4YjVkYmU1NDY4ZTk2Nzc5OWIwM2Q4Li4wOGFhNzgyMTVkODdlZTc3
MjBkNmEyMzk4MzE4YTUwNzc4YjdlOTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MCBAQAorMjAyMS0xMC0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTb3VyY2VJRCBzaG91bGQgaGF2ZSBhIHR5cGUgbmFtZSBhbmQgb25s
eSBiZSAzMi1iaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAg
ICBUaGlzIHBhdGNoIGdpdmVzIFNvdXJjZUlEIGEgcHJvcGVyIHR5cGUgbmFtZSBhbmQgc2hyaW5r
cyBpdCB0bworICAgICAgICAzMi1iaXRzIG9uIDY0LWJpdCBzeXN0ZW1zLiBTaHJpbmtpbmcgdGhl
IHNpemUgbWFrZXMgcm9vbSBvbgorICAgICAgICBTb3VyY2VQcm92aWRlciBmb3IgbWV0YWRhdGEg
aW4gYSBmdXR1cmUgcGF0Y2ggSSdtIHdvcmtpbmcgb24uCisgICAgICAgIEl0J3MgYWxzbyBwcmV0
dHkgdW5saWtlbHkgdGhhdCBhbnkgc3lzdGVtIGhhcyBtb3JlIHRoYW4gfjQgYmlsbGlvbgorICAg
ICAgICBzY3JpcHQgdGFncywgZXZhbHMsIHdhc20gbW9kdWxlcyBzbyBzaGlua2luZyB0aGUgc2l6
ZSBpcyB1bmxpa2VseQorICAgICAgICB0byBjYXVzZSBhbnkgZGVidWdnZXIvcHJvZmlsaW5nIGlz
c3Vlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvVHlwZUxv
Y2F0aW9uLmg6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAoSlND
OjpEZWJ1Z2dlcjo6dG9nZ2xlQnJlYWtwb2ludCk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpw
YXVzZUlmTmVlZGVkKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmg6Cisg
ICAgICAgIChKU0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAg
ICAqIGRlYnVnZ2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oOgorICAgICAgICAqIGluc3BlY3Rvci9K
YXZhU2NyaXB0Q2FsbEZyYW1lLmg6CisgICAgICAgIChJbnNwZWN0b3I6OkphdmFTY3JpcHRDYWxs
RnJhbWU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0
YWNrRmFjdG9yeS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkNyZWF0ZVNjcmlwdENhbGxTdGFj
a0Z1bmN0b3I6Om9wZXJhdG9yKCkgY29uc3QpOgorICAgICAgICAoSW5zcGVjdG9yOjpjcmVhdGVT
Y3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFj
a1Zpc2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTdGFja1Zpc2l0b3I6OkZyYW1lOjpzb3VyY2VJ
RCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmg6CisgICAgICAgICogcGFy
c2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNjb3BlTm9kZTo6c291cmNlSUQgY29uc3QpOgor
ICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6
OlNvdXJjZUNvZGUpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpmaXJzdExpbmUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpzdGFydENvbHVtbiBjb25zdCk6CisgICAgICAg
IChKU0M6OlNvdXJjZUNvZGU6OnByb3ZpZGVySUQgY29uc3QpOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VDb2RlOjpwcm92aWRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6Om9wZXJh
dG9yPT0gY29uc3QpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpvcGVyYXRvciE9IGNvbnN0
KToKKyAgICAgICAgKEpTQzo6bWFrZVNvdXJjZSk6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6
OnN1YkV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5j
cHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpnZXRJRCk6CisgICAgICAgICogcGFy
c2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjphc0lE
KToKKyAgICAgICAgKiBydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwOgorICAgICAgICAo
SlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2NrTG9jYXRpb24pOgorICAgICAg
ICAoSlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9maWxlcjo6aGFzQmFzaWNCbG9ja0F0
VGV4dE9mZnNldEJlZW5FeGVjdXRlZCk6CisgICAgICAgIChKU0M6OkNvbnRyb2xGbG93UHJvZmls
ZXI6OmJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldCk6CisgICAgICAgICogcnVu
dGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkhh
c0V4ZWN1dGVkQ2FjaGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1dGVkQ2Fj
aGU6Omhhc0V4ZWN1dGVkQXRPZmZzZXQpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1
dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0ZWRSYW5nZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9u
SGFzRXhlY3V0ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdlKToKKyAgICAgICAgKEpTQzo6
RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpnZXRGdW5jdGlvblJhbmdlcyk6CisgICAgICAgICog
cnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpTdGFj
a0ZyYW1lOjpzb3VyY2VJRCk6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmg6
CisgICAgICAgICogcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNj
cmlwdEV4ZWN1dGFibGU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1N0YWNr
RnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpzb3VyY2VJRCBjb25zdCk6Cisg
ICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmg6CisgICAgICAgICogcnVudGltZS9UeXBlTG9j
YXRpb25DYWNoZS5jcHA6CisgICAgICAgIChKU0M6OlR5cGVMb2NhdGlvbkNhY2hlOjpnZXRUeXBl
TG9jYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlR5cGVQcm9maWxl
cjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6
VHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZVByb2Zp
bGVyLmg6CisgICAgICAgIChKU0M6OlF1ZXJ5S2V5OjpRdWVyeUtleSk6CisgICAgICAgIChKU0M6
OlF1ZXJ5S2V5Ojppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisKIDIwMjEtMTAtMDcg
IEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIGBoaWdo
V2F0ZXJNYXJrYCBzaG91bGQgYmUgYSByZWFkb25seSBXZWJJREwgYXR0cmlidXRlIG9mIHF1ZXVp
bmcgc3RyYXRlZ2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGIzMmMz
MGYxMTBmNmEyOWUyYzgxNmY4N2M1NTZhMTJmZGJlMGQ2YzguLjA3N2QyYjJkYWQ5YzU4NDY1ZmRk
Y2ZjNzY0ODNjZjVjMmZjNWRmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTY1OSw2ICs2NTksNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIGJ5dGVjb2RlL1B1dEJ5SWRGbGFncy5oCiAgICAgYnl0ZWNvZGUvU2V0UHJp
dmF0ZUJyYW5kU3RhdHVzLmgKICAgICBieXRlY29kZS9TZXRQcml2YXRlQnJhbmRWYXJpYW50LmgK
KyAgICBieXRlY29kZS9Tb3VyY2VJRC5oCiAgICAgYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAog
ICAgIGJ5dGVjb2RlL1N0cnVjdHVyZVNldC5oCiAgICAgYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGMzNTU0NTBkMjRmNjlhOGM5MThmYmQz
OTA1YjQyYmNiOTUwNzkzOC4uZmI0MTU4ODA3ODEwY2JmOTc2YTViMTg3MWQ3ZGVjN2IyMmIzYjky
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzOSw2ICs5MzksNyBAQAogCQk1
MzRFMDM1NDFFNTNCRDI5MDAyMTNGNjQgLyogSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM0RTAzNTMxRTUz
QkQyOTAwMjEzRjY0IC8qIEludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaCAqLzsgfTsKIAkJNTM0
RTAzNTYxRTUzQkVERTAwMjEzRjY0IC8qIFByb3h5YWJsZUFjY2Vzc0Nhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNEUwMzU1MUU1M0JFREUwMDIx
M0Y2NCAvKiBQcm94eWFibGVBY2Nlc3NDYXNlLmggKi87IH07CiAJCTUzNEUwMzU4MUU1M0JGMkYw
MDIxM0Y2NCAvKiBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzRFMDM1NzFFNTNCRjJGMDAyMTNGNjQgLyogR2V0
dGVyU2V0dGVyQWNjZXNzQ2FzZS5oICovOyB9OworCQk1MzUwMzU2NTI3MTQ3RTVBMDBFQzFBN0Ug
LyogU291cmNlSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUzNTAzNTY0MjcxNDdFNTkwMEVDMUE3RSAvKiBTb3VyY2VJRC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUzNTI5QTRDMUM0NTdCNzUwMDBC
NDlDNiAvKiBBUElVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTM1MjlBNEIxQzQ1N0I3NTAwMEI0OUM2IC8qIEFQSVV0aWxzLmggKi87IH07CiAJ
CTUzNTU1NzE0MUQ5RDlFQTUwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzU1NTcxMzFEOUQ5RUE1MDA2RDU4M0Ig
LyogV2FzbU1lbW9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUzNUMyNDYxMUY3ODkyOEUwMDZFQzQwRSAvKiBjcmVhdGVfcmVnZXhfdGFibGVz
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxOEY4MjEx
MTc4RUI0QjAwMjQ2NUE3IC8qIGNyZWF0ZV9yZWdleF90YWJsZXMgKi87IH07CkBAIC0zNzM5LDYg
KzM3NDAsNyBAQAogCQk1MzRFMDM1MzFFNTNCRDI5MDAyMTNGNjQgLyogSW50cmluc2ljR2V0dGVy
QWNjZXNzQ2FzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRyaW5zaWNH
ZXR0ZXJBY2Nlc3NDYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNEUwMzU1
MUU1M0JFREUwMDIxM0Y2NCAvKiBQcm94eWFibGVBY2Nlc3NDYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb3h5YWJsZUFjY2Vzc0Nhc2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTM0RTAzNTcxRTUzQkYyRjAwMjEzRjY0IC8qIEdldHRlclNldHRlckFj
Y2Vzc0Nhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0dGVyU2V0dGVy
QWNjZXNzQ2FzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MzUwMzU2NDI3MTQ3
RTU5MDBFQzFBN0UgLyogU291cmNlSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU291cmNlSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM1MjlBNEIxQzQ1
N0I3NTAwMEI0OUM2IC8qIEFQSVV0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNTU1NzEzMUQ5
RDlFQTUwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdhc21NZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM1NTU3
MTUxRDlERkEzMjAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2FzbU1lbW9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC04Nzg4LDYgKzg3OTAsNyBAQAogCQkJCTg2NURBMEM3MjVCODk2MEMwMDg3NTc3MiAv
KiBTZXRQcml2YXRlQnJhbmRTdGF0dXMuaCAqLywKIAkJCQk4NjVEQTBDNjI1Qjg5NTlFMDA4NzU3
NzIgLyogU2V0UHJpdmF0ZUJyYW5kVmFyaWFudC5jcHAgKi8sCiAJCQkJODY1REEwQzQyNUI4OTU3
NDAwODc1NzcyIC8qIFNldFByaXZhdGVCcmFuZFZhcmlhbnQuaCAqLywKKwkJCQk1MzUwMzU2NDI3
MTQ3RTU5MDBFQzFBN0UgLyogU291cmNlSUQuaCAqLywKIAkJCQkwRkQ4MkU4NDE0MUYzRkRBMDAx
NzlDOTQgLyogU3BlY3VsYXRlZFR5cGUuY3BwICovLAogCQkJCTBGRDgyRTRGMTQxREFFQTEwMDE3
OUM5NCAvKiBTcGVjdWxhdGVkVHlwZS5oICovLAogCQkJCTBGQjQzOEEyMTkyNzBCMUQwMEUxRkJD
OSAvKiBTdHJ1Y3R1cmVTZXQuY3BwICovLApAQCAtMTA2ODAsNiArMTA2ODMsNyBAQAogCQkJCUUz
RjIzQTdGMUVDRjEzRUUwMDk3OEQ5OSAvKiBTbmlwcGV0U2xvd1BhdGhDYWxscy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQyMDFENTkxREVDRjI2QTAwOTA0QkQzIC8qIFNvdXJjZUNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwQjc5MTkxMUMwMjRBMTMwMDI0ODFFMiAvKiBTb3VyY2VDb2RlS2V5
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzUwMzU2NTI3MTQ3RTVBMDBFQzFBN0UgLyogU291cmNl
SUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMzQyRjM2RjcyNDQwOTY4MDRBREIyNCAvKiBTb3Vy
Y2VPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDYzMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5REMxNkMxMkVGMjk0RTAw
MTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1R5cGVMb2NhdGlvbi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1R5cGVMb2NhdGlvbi5oCmluZGV4IDFlOTIzOWRjNGUw
MzUyYmRiMmI1OTI3NTM0ODQ2NzcxNDhkYjczZWMuLmM3NmYwNWFkMDQxZDc1NDliY2VmNWRiNDBj
ZDVjNWM5ZjkwNTk1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9UeXBlTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVHlw
ZUxvY2F0aW9uLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIEdsb2JhbFZhcmlhYmxl
SUQgbV9nbG9iYWxWYXJpYWJsZUlEOwogICAgIFJlZlB0cjxUeXBlU2V0PiBtX2luc3RydWN0aW9u
VHlwZVNldDsKICAgICBSZWZQdHI8VHlwZVNldD4gbV9nbG9iYWxUeXBlU2V0OwotICAgIGludHB0
cl90IG1fc291cmNlSUQ7CisgICAgU291cmNlSUQgbV9zb3VyY2VJRDsKICAgICB1bnNpZ25lZCBt
X2Rpdm90U3RhcnQ7CiAgICAgdW5zaWduZWQgbV9kaXZvdEVuZDsKICAgICB1bnNpZ25lZCBtX2Rp
dm90Rm9yRnVuY3Rpb25PZmZzZXRJZlJldHVyblN0YXRlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IGRkMzU3ZDg1YzQ0NzZkMzUxYzdlNTE0
NDk0YTJmZWE2YThhNGZhMWMuLjBiY2UyYTY4OTg5MzdmYTJkOGI0NDBjYjJmMjYxNmQ1MWUzNjVi
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAt
MzUwLDcgKzM1MCw3IEBAIHZvaWQgRGVidWdnZXI6OnRvZ2dsZUJyZWFrcG9pbnQoQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQsIEJyCiAKICAgICBTY3JpcHRFeGVj
dXRhYmxlKiBleGVjdXRhYmxlID0gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKTsKIAotICAg
IFNvdXJjZUlEIHNvdXJjZUlEID0gc3RhdGljX2Nhc3Q8U291cmNlSUQ+KGV4ZWN1dGFibGUtPnNv
dXJjZUlEKCkpOworICAgIFNvdXJjZUlEIHNvdXJjZUlEID0gZXhlY3V0YWJsZS0+c291cmNlSUQo
KTsKICAgICBpZiAoYnJlYWtwb2ludC5zb3VyY2VJRCgpICE9IHNvdXJjZUlEKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTg3NSw3ICs4NzUsNyBAQCB2b2lkIERlYnVnZ2VyOjpwYXVzZUlmTmVlZGVk
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgaWYgKG1fc3VwcHJlc3NBbGxQYXVz
ZXMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludHB0cl90IHNvdXJjZUlEID0gRGVidWdnZXJD
YWxsRnJhbWU6OnNvdXJjZUlERm9yQ2FsbEZyYW1lKG1fY3VycmVudENhbGxGcmFtZSk7CisgICAg
U291cmNlSUQgc291cmNlSUQgPSBEZWJ1Z2dlckNhbGxGcmFtZTo6c291cmNlSURGb3JDYWxsRnJh
bWUobV9jdXJyZW50Q2FsbEZyYW1lKTsKIAogICAgIGF1dG8gYmxhY2tib3hUeXBlSXRlcmF0b3Ig
PSBtX2JsYWNrYm94ZWRTY3JpcHRzLmZpbmQoc291cmNlSUQpOwogICAgIGlmIChibGFja2JveFR5
cGVJdGVyYXRvciAhPSBtX2JsYWNrYm94ZWRTY3JpcHRzLmVuZCgpICYmIGJsYWNrYm94VHlwZUl0
ZXJhdG9yLT52YWx1ZSA9PSBCbGFja2JveFR5cGU6Oklnbm9yZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaAppbmRleCBlOTQ4NzcxNjhj
NDAwNGViOWNhZDM4ZTc1YjllMzhmYzIwMDYyMzBjLi40YTgzMTIxYjY0YWE0MDVlNDg5MGM3ZDEw
MTA0NDA1MWUzNzQ1MDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckxvY2F0aW9uLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0
YWJsZTsKIHN0cnVjdCBEZWJ1Z2dlckxvY2F0aW9uIHsKIAogICAgIERlYnVnZ2VyTG9jYXRpb24o
KSB7IH0KLSAgICBEZWJ1Z2dlckxvY2F0aW9uKGludHB0cl90IHNvdXJjZUlELCB1bnNpZ25lZCBs
aW5lLCB1bnNpZ25lZCBjb2x1bW4pCisgICAgRGVidWdnZXJMb2NhdGlvbihTb3VyY2VJRCBzb3Vy
Y2VJRCwgdW5zaWduZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQogICAgICAgICA6IHNvdXJjZUlE
KHNvdXJjZUlEKQogICAgICAgICAsIGxpbmUobGluZSkKICAgICAgICAgLCBjb2x1bW4oY29sdW1u
KQpAQCAtNDMsNyArNDMsNyBAQCBzdHJ1Y3QgRGVidWdnZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1
Z2dlckxvY2F0aW9uKFNjcmlwdEV4ZWN1dGFibGUqKTsKIAotICAgIGludHB0cl90IHNvdXJjZUlE
IHsgbm9Tb3VyY2VJRCB9OworICAgIFNvdXJjZUlEIHNvdXJjZUlEIHsgbm9Tb3VyY2VJRCB9Owog
ICAgIHVuc2lnbmVkIGxpbmUgeyAwIH07CiAgICAgdW5zaWduZWQgY29sdW1uIHsgMCB9OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1p
dGl2ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1pdGl2
ZXMuaAppbmRleCA0MjU2M2FjZjNlMmZiZjllMzNjMGY1NDBiYWQ1N2MzNDMwNTY2OGVmLi5iZjIy
NjBlNDc5NTkxY2FhZWJiM2EzZjEzZTQ2ZTc3YzkzYTU3NzkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQcmltaXRpdmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oCkBAIC0yNSwxMSAr
MjUsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTb3VyY2VJRC5oIgogI2luY2x1
ZGUgPHN0ZGRlZi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAotdXNpbmcgU291cmNlSUQgPSBzaXpl
X3Q7CiBjb25zdGV4cHIgU291cmNlSUQgbm9Tb3VyY2VJRCA9IDA7CiAKIHVzaW5nIEJyZWFrcG9p
bnRJRCA9IHNpemVfdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgKaW5kZXggOTViZDFmMzJiMDE5Mjg4ZGU3NzMzYTc5MGVk
MjNhYTQyYTYxNGFmMC4uMGIzNzczNzRlOGU2Y2ZlYmE1YjkxMTlhZTM5OGYxNjAxMDdjZTU2NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2Fs
bEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0
Q2FsbEZyYW1lLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDEzLTIwMTQgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMjEgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAg
ICBKYXZhU2NyaXB0Q2FsbEZyYW1lKiBjYWxsZXIoKTsKLSAgICBpbnRwdHJfdCBzb3VyY2VJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUtPnNvdXJjZUlEKCk7IH0KKyAgICBK
U0M6OlNvdXJjZUlEIHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z2dlckNhbGxGcmFt
ZS0+c291cmNlSUQoKTsgfQogICAgIGNvbnN0IFRleHRQb3NpdGlvbiBwb3NpdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUtPnBvc2l0aW9uKCk7IH0KICAgICBpbnQgbGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxsRnJhbWUtPmxpbmUoKTsgfQogICAgIGlu
dCBjb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2FsbEZyYW1lLT5jb2x1bW4oKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxs
U3RhY2tGYWN0b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeS5jcHAKaW5kZXggOTZhMzVjZWJlOGJiNjQyNTgyOWE3MjkxZmYwMjlm
Y2U0YzIzYThlYi4uNDFhY2M4NTdjNjc2OGM5ZjZiYTk4MzBhNzFhYTAyZmE5MzQ3NmY5YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tG
YWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENh
bGxTdGFja0ZhY3RvcnkuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IHVuc2lnbmVkIGxpbmU7CiAgICAgICAgICAgICB1bnNpZ25lZCBjb2x1bW47CiAgICAgICAgICAg
ICB2aXNpdG9yLT5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4pOwotICAgICAgICAg
ICAgbV9mcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZSh2aXNpdG9yLT5mdW5jdGlvbk5hbWUo
KSwgdmlzaXRvci0+c291cmNlVVJMKCksIHN0YXRpY19jYXN0PFNvdXJjZUlEPih2aXNpdG9yLT5z
b3VyY2VJRCgpKSwgbGluZSwgY29sdW1uKSk7CisgICAgICAgICAgICBtX2ZyYW1lcy5hcHBlbmQo
U2NyaXB0Q2FsbEZyYW1lKHZpc2l0b3ItPmZ1bmN0aW9uTmFtZSgpLCB2aXNpdG9yLT5zb3VyY2VV
UkwoKSwgdmlzaXRvci0+c291cmNlSUQoKSwgbGluZSwgY29sdW1uKSk7CiAKICAgICAgICAgICAg
IG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUtLTsKICAgICAgICAgICAgIHJldHVy
biBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlOwpAQCAtMTYwLDcgKzE2MCw3IEBAIFJlZjxTY3JpcHRD
YWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zyb21FeGNlcHRpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvCiAgICAgICAgIHVuc2lnbmVkIGNvbHVtbjsKICAgICAgICAgc3RhY2tUcmFj
ZVtpXS5jb21wdXRlTGluZUFuZENvbHVtbihsaW5lLCBjb2x1bW4pOwogICAgICAgICBTdHJpbmcg
ZnVuY3Rpb25OYW1lID0gc3RhY2tUcmFjZVtpXS5mdW5jdGlvbk5hbWUodm0pOwotICAgICAgICBm
cmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZShmdW5jdGlvbk5hbWUsIHN0YWNrVHJhY2VbaV0u
c291cmNlVVJMKCksIHN0YXRpY19jYXN0PFNvdXJjZUlEPihzdGFja1RyYWNlW2ldLnNvdXJjZUlE
KCkpLCBsaW5lLCBjb2x1bW4pKTsKKyAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJh
bWUoZnVuY3Rpb25OYW1lLCBzdGFja1RyYWNlW2ldLnNvdXJjZVVSTCgpLCBzdGFja1RyYWNlW2ld
LnNvdXJjZUlEKCksIGxpbmUsIGNvbHVtbikpOwogICAgIH0KIAogICAgIC8vIEZhbGxiYWNrIHRv
IGdldHRpbmcgYXQgbGVhc3QgdGhlIGxpbmUgYW5kIHNvdXJjZVVSTCBmcm9tIHRoZSBleGNlcHRp
b24gb2JqZWN0IGlmIGl0IGhhcyB2YWx1ZXMgYW5kIHRoZSBleGNlcHRpb25TdGFjayBkb2Vzbid0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlz
aXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9y
LmNwcAppbmRleCA1N2ExYmRiNmRiZDViMTYwNjkxYzY1NjUwZmMwZDQ1ZGJlODA5ZWFiLi40YjVm
ZmM2YWQwOThhYThiOGI1ZDZmZTMyM2RlNDU5YzcwNDRmMTBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcApAQCAtMzUxLDcgKzM1
MSw3IEBAIFN0cmluZyBTdGFja1Zpc2l0b3I6OkZyYW1lOjp0b1N0cmluZygpIGNvbnN0CiAgICAg
cmV0dXJuIG1ha2VTdHJpbmcoZnVuY3Rpb25OYW1lLCBzZXBhcmF0b3IsIHNvdXJjZVVSTCwgJzon
LCBsaW5lLCAnOicsIGNvbHVtbik7CiB9CiAKLWludHB0cl90IFN0YWNrVmlzaXRvcjo6RnJhbWU6
OnNvdXJjZUlEKCkKK1NvdXJjZUlEIFN0YWNrVmlzaXRvcjo6RnJhbWU6OnNvdXJjZUlEKCkKIHsK
ICAgICBpZiAoQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSB0aGlzLT5jb2RlQmxvY2soKSkKICAgICAg
ICAgcmV0dXJuIGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCktPnNvdXJjZUlEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmgKaW5kZXgg
MGJiOWFmNTgxNWE1MTA2M2EwM2IzMjAwMDQxMzYxODg0Y2U2ZGYyNy4uMTRkZGE5ZmFhYTNjOGY0
MWY4ZGJmNGJjZTliYTVjOWIwYjNjM2MxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVk
ZSAiQnl0ZWNvZGVJbmRleC5oIgogI2luY2x1ZGUgIkNhbGxlZUJpdHMuaCIKKyNpbmNsdWRlICJT
b3VyY2VJRC5oIgogI2luY2x1ZGUgIldhc21JbmRleE9yTmFtZS5oIgogI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9JbmRlbnRlci5oPgpAQCAtODcsNyArODgsNyBAQCBw
dWJsaWM6CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBzb3VyY2VVUkwoKSBjb25z
dDsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CiAK
LSAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgaW50cHRyX3Qgc291cmNlSUQoKTsKKyAgICAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgU291cmNlSUQgc291cmNlSUQoKTsKIAogICAgICAgICBDb2RlVHlw
ZSBjb2RlVHlwZSgpIGNvbnN0OwogICAgICAgICBib29sIGhhc0xpbmVBbmRDb2x1bW5JbmZvKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggYTQyNGNmMWZhZmZh
YmRhNzQ1NzY3NjVjMjUzMTc1NDJmNWVmYzU3NS4uZTMwZWI4MTRiOWUyMDI2ZWM0ZTJhYTM2NDI5
MjQ4Mzg5MmZlNzMwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMTg5
OCw3ICsxODk4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNjb3BlTm9kZShQYXJzZXJB
cmVuYSYsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnQsIGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgZW5kLCBjb25zdCBTb3VyY2VDb2RlJiwgU291cmNlRWxlbWVudHMqLCBWYXJpYWJsZUVudmly
b25tZW50JiYsIEZ1bmN0aW9uU3RhY2smJiwgVmFyaWFibGVFbnZpcm9ubWVudCYmLCBVbmlxdWVk
U3RyaW5nSW1wbFB0clNldCYmLCBDb2RlRmVhdHVyZXMsIExleGljYWxTY29wZUZlYXR1cmVzLCBJ
bm5lckFycm93RnVuY3Rpb25Db2RlRmVhdHVyZXMsIGludCBudW1Db25zdGFudHMpOwogCiAgICAg
ICAgIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9
Ci0gICAgICAgIGludHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJv
dmlkZXJJRCgpOyB9CisgICAgICAgIFNvdXJjZUlEIHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2UucHJvdmlkZXJJRCgpOyB9CiAKICAgICAgICAgaW50IHN0YXJ0TGluZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhcnRMaW5lTnVtYmVyOyB9CiAgICAgICAgIGludCBzdGFydFN0YXJ0T2Zm
c2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFN0YXJ0T2Zmc2V0OyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCmluZGV4IDk5MmQ4OWEyMTAzZGUzNmMwZmRkNjc1
YTUzZmY4YjEzMTBjMDFmMzUuLjg2ZmUxMjRhODczY2U3NTFjNjBhZWVjOGQ3OTA3Mzk2MzlhNGMz
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCkBAIC0zMiw3
OSArMzIsNzkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSAgICBjbGFzcyBTb3VyY2VDb2RlIDog
cHVibGljIFVubGlua2VkU291cmNlQ29kZSB7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRT
b3VyY2VDb2RlOwotICAgICAgICBmcmllbmQgY2xhc3MgQ2FjaGVkU291cmNlQ29kZVdpdGhvdXRQ
cm92aWRlcjsKLQotICAgIHB1YmxpYzoKLSAgICAgICAgU291cmNlQ29kZSgpCi0gICAgICAgICAg
ICA6IFVubGlua2VkU291cmNlQ29kZSgpCi0gICAgICAgICAgICAsIG1fZmlyc3RMaW5lKE9yZGlu
YWxOdW1iZXI6OmJlZm9yZUZpcnN0KCkpCi0gICAgICAgICAgICAsIG1fc3RhcnRDb2x1bW4oT3Jk
aW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAg
ICAgU291cmNlQ29kZShSZWY8U291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIpCi0gICAgICAgICAg
ICA6IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3ZpZGVyKSkKLSAgICAgICAgewotICAg
ICAgICB9Ci0KLSAgICAgICAgU291cmNlQ29kZShSZWY8U291cmNlUHJvdmlkZXI+JiYgcHJvdmlk
ZXIsIGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVtbikKLSAgICAgICAgICAgIDogVW5saW5r
ZWRTb3VyY2VDb2RlKFdURk1vdmUocHJvdmlkZXIpKQotICAgICAgICAgICAgLCBtX2ZpcnN0TGlu
ZShPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjptYXgoZmlyc3RMaW5lLCAxKSkp
Ci0gICAgICAgICAgICAsIG1fc3RhcnRDb2x1bW4oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2Vk
SW50KHN0ZDo6bWF4KHN0YXJ0Q29sdW1uLCAxKSkpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0g
ICAgICAgIFNvdXJjZUNvZGUoUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyLCBpbnQg
c3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQsIGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVt
bikKLSAgICAgICAgICAgIDogVW5saW5rZWRTb3VyY2VDb2RlKFdURk1vdmUocHJvdmlkZXIpLCBz
dGFydE9mZnNldCwgZW5kT2Zmc2V0KQotICAgICAgICAgICAgLCBtX2ZpcnN0TGluZShPcmRpbmFs
TnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjptYXgoZmlyc3RMaW5lLCAxKSkpCi0gICAgICAg
ICAgICAsIG1fc3RhcnRDb2x1bW4oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6
bWF4KHN0YXJ0Q29sdW1uLCAxKSkpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIE9y
ZGluYWxOdW1iZXIgZmlyc3RMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdExpbmU7IH0KLSAg
ICAgICAgT3JkaW5hbE51bWJlciBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRD
b2x1bW47IH0KLQotICAgICAgICBpbnRwdHJfdCBwcm92aWRlcklEKCkgY29uc3QKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKCFtX3Byb3ZpZGVyKQotICAgICAgICAgICAgICAgIHJldHVybiBT
b3VyY2VQcm92aWRlcjo6bnVsbElEOwotICAgICAgICAgICAgcmV0dXJuIG1fcHJvdmlkZXItPmFz
SUQoKTsKLSAgICAgICAgfQotCi0gICAgICAgIFNvdXJjZVByb3ZpZGVyKiBwcm92aWRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvdmlkZXIuZ2V0KCk7IH0KLQotICAgICAgICBTb3VyY2VDb2RlIHN1
YkV4cHJlc3Npb24odW5zaWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQg
Zmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pIGNvbnN0OwotCi0gICAgICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBTb3VyY2VDb2RlJiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIG1fZmlyc3RMaW5lID09IG90aGVyLm1fZmlyc3RMaW5lCi0gICAgICAgICAgICAg
ICAgJiYgbV9zdGFydENvbHVtbiA9PSBvdGhlci5tX3N0YXJ0Q29sdW1uCi0gICAgICAgICAgICAg
ICAgJiYgbV9wcm92aWRlciA9PSBvdGhlci5tX3Byb3ZpZGVyCi0gICAgICAgICAgICAgICAgJiYg
bV9zdGFydE9mZnNldCA9PSBvdGhlci5tX3N0YXJ0T2Zmc2V0Ci0gICAgICAgICAgICAgICAgJiYg
bV9lbmRPZmZzZXQgPT0gb3RoZXIubV9lbmRPZmZzZXQ7Ci0gICAgICAgIH0KLQotICAgICAgICBi
b29sIG9wZXJhdG9yIT0oY29uc3QgU291cmNlQ29kZSYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKLSAgICAgICAgfQotCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgT3JkaW5hbE51bWJlciBtX2ZpcnN0TGluZTsKLSAgICAgICAgT3Jk
aW5hbE51bWJlciBtX3N0YXJ0Q29sdW1uOwotICAgIH07Ci0KLSAgICBpbmxpbmUgU291cmNlQ29k
ZSBtYWtlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNv
dXJjZU9yaWdpbiwgU3RyaW5nIGZpbGVuYW1lID0gU3RyaW5nKCksIGNvbnN0IFRleHRQb3NpdGlv
biYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5
cGUgc291cmNlVHlwZSA9IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKK2NsYXNz
IFNvdXJjZUNvZGUgOiBwdWJsaWMgVW5saW5rZWRTb3VyY2VDb2RlIHsKKyAgICBmcmllbmQgY2xh
c3MgQ2FjaGVkU291cmNlQ29kZTsKKyAgICBmcmllbmQgY2xhc3MgQ2FjaGVkU291cmNlQ29kZVdp
dGhvdXRQcm92aWRlcjsKKworcHVibGljOgorICAgIFNvdXJjZUNvZGUoKQorICAgICAgICA6IFVu
bGlua2VkU291cmNlQ29kZSgpCisgICAgICAgICwgbV9maXJzdExpbmUoT3JkaW5hbE51bWJlcjo6
YmVmb3JlRmlyc3QoKSkKKyAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmJl
Zm9yZUZpcnN0KCkpCiAgICAgewotICAgICAgICByZXR1cm4gU291cmNlQ29kZShTdHJpbmdTb3Vy
Y2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgc291cmNlT3JpZ2luLCBXVEZNb3ZlKGZpbGVuYW1l
KSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRpb24ubV9saW5lLm9uZUJh
c2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJbnQoKSk7CiAgICAgfQot
ICAgIAotICAgIGlubGluZSBTb3VyY2VDb2RlIFNvdXJjZUNvZGU6OnN1YkV4cHJlc3Npb24odW5z
aWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQgZmlyc3RMaW5lLCBpbnQg
c3RhcnRDb2x1bW4pIGNvbnN0CisKKyAgICBTb3VyY2VDb2RlKFJlZjxTb3VyY2VQcm92aWRlcj4m
JiBwcm92aWRlcikKKyAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoV1RGTW92ZShwcm92aWRl
cikpCisgICAgeworICAgIH0KKworICAgIFNvdXJjZUNvZGUoUmVmPFNvdXJjZVByb3ZpZGVyPiYm
IHByb3ZpZGVyLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCisgICAgICAgIDogVW5s
aW5rZWRTb3VyY2VDb2RlKFdURk1vdmUocHJvdmlkZXIpKQorICAgICAgICAsIG1fZmlyc3RMaW5l
KE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChmaXJzdExpbmUsIDEpKSkK
KyAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChz
dGQ6Om1heChzdGFydENvbHVtbiwgMSkpKQorICAgIHsKKyAgICB9CisKKyAgICBTb3VyY2VDb2Rl
KFJlZlB0cjxTb3VyY2VQcm92aWRlcj4mJiBwcm92aWRlciwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQg
ZW5kT2Zmc2V0LCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCisgICAgICAgIDogVW5s
aW5rZWRTb3VyY2VDb2RlKFdURk1vdmUocHJvdmlkZXIpLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0
KQorICAgICAgICAsIG1fZmlyc3RMaW5lKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChz
dGQ6Om1heChmaXJzdExpbmUsIDEpKSkKKyAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxO
dW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChzdGFydENvbHVtbiwgMSkpKQorICAgIHsK
KyAgICB9CisKKyAgICBPcmRpbmFsTnVtYmVyIGZpcnN0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Zmlyc3RMaW5lOyB9CisgICAgT3JkaW5hbE51bWJlciBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0
dXJuIG1fc3RhcnRDb2x1bW47IH0KKworICAgIFNvdXJjZUlEIHByb3ZpZGVySUQoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgaWYgKCFtX3Byb3ZpZGVyKQorICAgICAgICAgICAgcmV0dXJuIFNvdXJj
ZVByb3ZpZGVyOjpudWxsSUQ7CisgICAgICAgIHJldHVybiBtX3Byb3ZpZGVyLT5hc0lEKCk7Cisg
ICAgfQorCisgICAgU291cmNlUHJvdmlkZXIqIHByb3ZpZGVyKCkgY29uc3QgeyByZXR1cm4gbV9w
cm92aWRlci5nZXQoKTsgfQorCisgICAgU291cmNlQ29kZSBzdWJFeHByZXNzaW9uKHVuc2lnbmVk
IG9wZW5CcmFjZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0
Q29sdW1uKSBjb25zdDsKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb3VyY2VDb2RlJiBv
dGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHN0YXJ0Q29sdW1uICs9IDE7IC8vIENvbnZlcnQg
dG8gYmFzZSAxLgotICAgICAgICByZXR1cm4gU291cmNlQ29kZShSZWZQdHI8U291cmNlUHJvdmlk
ZXI+IHsgcHJvdmlkZXIoKSB9LCBvcGVuQnJhY2UsIGNsb3NlQnJhY2UgKyAxLCBmaXJzdExpbmUs
IHN0YXJ0Q29sdW1uKTsKKyAgICAgICAgcmV0dXJuIG1fZmlyc3RMaW5lID09IG90aGVyLm1fZmly
c3RMaW5lCisgICAgICAgICAgICAmJiBtX3N0YXJ0Q29sdW1uID09IG90aGVyLm1fc3RhcnRDb2x1
bW4KKyAgICAgICAgICAgICYmIG1fcHJvdmlkZXIgPT0gb3RoZXIubV9wcm92aWRlcgorICAgICAg
ICAgICAgJiYgbV9zdGFydE9mZnNldCA9PSBvdGhlci5tX3N0YXJ0T2Zmc2V0CisgICAgICAgICAg
ICAmJiBtX2VuZE9mZnNldCA9PSBvdGhlci5tX2VuZE9mZnNldDsKICAgICB9CiAKKyAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgU291cmNlQ29kZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgfQorCitwcml2YXRlOgorICAgIE9yZGlu
YWxOdW1iZXIgbV9maXJzdExpbmU7CisgICAgT3JkaW5hbE51bWJlciBtX3N0YXJ0Q29sdW1uOwor
fTsKKworaW5saW5lIFNvdXJjZUNvZGUgbWFrZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwg
Y29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSA9IFN0cmlu
ZygpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwg
U291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJj
ZVR5cGU6OlByb2dyYW0pCit7CisgICAgcmV0dXJuIFNvdXJjZUNvZGUoU3RyaW5nU291cmNlUHJv
dmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShmaWxlbmFtZSksIHN0
YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZElu
dCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkpOworfQorCitpbmxpbmUg
U291cmNlQ29kZSBTb3VyY2VDb2RlOjpzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFjZSwg
dW5zaWduZWQgY2xvc2VCcmFjZSwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBjb25z
dAoreworICAgIHN0YXJ0Q29sdW1uICs9IDE7IC8vIENvbnZlcnQgdG8gYmFzZSAxLgorICAgIHJl
dHVybiBTb3VyY2VDb2RlKFJlZlB0cjxTb3VyY2VQcm92aWRlcj4geyBwcm92aWRlcigpIH0sIG9w
ZW5CcmFjZSwgY2xvc2VCcmFjZSArIDEsIGZpcnN0TGluZSwgc3RhcnRDb2x1bW4pOworfQorCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU291cmNlUHJvdmlkZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3Vy
Y2VQcm92aWRlci5jcHAKaW5kZXggNjA2ZTVmMTc0NGFmMGY2MTBkZGNjZTc2MWJjOTNlMzIyM2I5
NTNkYi4uMmJkNTU5YjM1M2MzODdhNWY2MDEyNWMyMzZjZmM5NGUyODk5MjdjMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsOCArMjYs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNvdXJjZVByb3ZpZGVyLmgiCiAK
LSNpbmNsdWRlIDx3dGYvTG9jay5oPgotCiBuYW1lc3BhY2UgSlNDIHsKIAogREVGSU5FX0FMTE9D
QVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihTdHJpbmdTb3VyY2VQcm92aWRlcik7CkBAIC00NCwx
MyArNDIsMTAgQEAgU291cmNlUHJvdmlkZXI6On5Tb3VyY2VQcm92aWRlcigpCiB7CiB9CiAKLXN0
YXRpYyBMb2NrIHByb3ZpZGVySWRMb2NrOwotCiB2b2lkIFNvdXJjZVByb3ZpZGVyOjpnZXRJRCgp
CiB7Ci0gICAgTG9ja2VyIGxvY2tlciB7IHByb3ZpZGVySWRMb2NrIH07CiAgICAgaWYgKCFtX2lk
KSB7Ci0gICAgICAgIHN0YXRpYyBpbnRwdHJfdCBuZXh0UHJvdmlkZXJJRCA9IDA7CisgICAgICAg
IHN0YXRpYyBzdGQ6OmF0b21pYzxTb3VyY2VJRD4gbmV4dFByb3ZpZGVySUQgPSBudWxsSUQ7CiAg
ICAgICAgIG1faWQgPSArK25leHRQcm92aWRlcklEOwogICAgICAgICBSRUxFQVNFX0FTU0VSVCht
X2lkKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Nv
dXJjZVByb3ZpZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyLmgKaW5kZXggMTI5ZWU1YzQ5ZTI0N2FmY2Q5ZjA4ZDU5ZWZlOWZiMTI4ZjlhYmJlMS4uZGM2
MTY2MGI4ZmNjNmEwMTY0ZDY4ODJmODc1MjE1YTY5NTJjMzljYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc5LDcgKzc5LDcgQEAgY2xh
c3MgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazsKICAgICAgICAgVGV4dFBvc2l0aW9uIHN0YXJ0
UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0UG9zaXRpb247IH0KICAgICAgICAgU291
cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJjZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZVR5cGU7IH0KIAotICAgICAgICBpbnRwdHJfdCBhc0lEKCkKKyAgICAgICAgU291cmNlSUQgYXNJ
RCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9pZCkKICAgICAgICAgICAgICAgICBn
ZXRJRCgpOwpAQCAtOTgsNyArOTgsNyBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2Nr
OwogICAgICAgICBTdHJpbmcgbV9zb3VyY2VVUkxEaXJlY3RpdmU7CiAgICAgICAgIFN0cmluZyBt
X3NvdXJjZU1hcHBpbmdVUkxEaXJlY3RpdmU7CiAgICAgICAgIFRleHRQb3NpdGlvbiBtX3N0YXJ0
UG9zaXRpb247Ci0gICAgICAgIHVpbnRwdHJfdCBtX2lkIHsgMCB9OworICAgICAgICBTb3VyY2VJ
RCBtX2lkIHsgMCB9OwogICAgIH07CiAKICAgICBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBf
SURFTlRJRklFUihTdHJpbmdTb3VyY2VQcm92aWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwCmluZGV4IGViYjQyOTky
ZDBlMmQzZWViMTFmYTMwNmJkZDY3ZTMyNmE4YjRlNzIuLjg4ODdkNjgyYmZlMGM3NjEyNjZmYTdl
NWFjZWMxOWM4MmQwNDQxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIENvbnRyb2xG
bG93UHJvZmlsZXI6On5Db250cm9sRmxvd1Byb2ZpbGVyKCkKICAgICB9CiB9CiAKLUJhc2ljQmxv
Y2tMb2NhdGlvbiogQ29udHJvbEZsb3dQcm9maWxlcjo6Z2V0QmFzaWNCbG9ja0xvY2F0aW9uKGlu
dHB0cl90IHNvdXJjZUlELCBpbnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQpCitCYXNpY0Js
b2NrTG9jYXRpb24qIENvbnRyb2xGbG93UHJvZmlsZXI6OmdldEJhc2ljQmxvY2tMb2NhdGlvbihT
b3VyY2VJRCBzb3VyY2VJRCwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0KQogewogICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV9zb3VyY2VJREJ1Y2tldHMuYWRkKHNvdXJjZUlELCBCbG9ja0xv
Y2F0aW9uQ2FjaGUoKSk7CiAgICAgQmxvY2tMb2NhdGlvbkNhY2hlJiBibG9ja0xvY2F0aW9uQ2Fj
aGUgPSBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwpAQCAtNjYsNyArNjYsNyBAQCB2b2lkIENv
bnRyb2xGbG93UHJvZmlsZXI6OmR1bXBEYXRhKCkgY29uc3QKICAgICB9CiB9CiAKLVZlY3RvcjxC
YXNpY0Jsb2NrUmFuZ2U+IENvbnRyb2xGbG93UHJvZmlsZXI6OmdldEJhc2ljQmxvY2tzRm9yU291
cmNlSUQoaW50cHRyX3Qgc291cmNlSUQsIFZNJiB2bSkgY29uc3QgCitWZWN0b3I8QmFzaWNCbG9j
a1JhbmdlPiBDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKFNv
dXJjZUlEIHNvdXJjZUlELCBWTSYgdm0pIGNvbnN0CiB7CiAgICAgVmVjdG9yPEJhc2ljQmxvY2tS
YW5nZT4gcmVzdWx0KDApOwogICAgIGF1dG8gYnVja2V0RmluZFJlc3VsdCA9IG1fc291cmNlSURC
dWNrZXRzLmZpbmQoc291cmNlSUQpOwpAQCAtMTIwLDE0ICsxMjAsMTQgQEAgc3RhdGljIEJhc2lj
QmxvY2tSYW5nZSBmaW5kQmFzaWNCbG9ja0F0VGV4dE9mZnNldChpbnQgb2Zmc2V0LCBjb25zdCBW
ZWN0b3I8QmFzaWMKICAgICByZXR1cm4gYmVzdFJhbmdlOwogfQogCi1ib29sIENvbnRyb2xGbG93
UHJvZmlsZXI6Omhhc0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRCZWVuRXhlY3V0ZWQoaW50IG9mZnNl
dCwgaW50cHRyX3Qgc291cmNlSUQsIFZNJiB2bSkKK2Jvb2wgQ29udHJvbEZsb3dQcm9maWxlcjo6
aGFzQmFzaWNCbG9ja0F0VGV4dE9mZnNldEJlZW5FeGVjdXRlZChpbnQgb2Zmc2V0LCBTb3VyY2VJ
RCBzb3VyY2VJRCwgVk0mIHZtKQogewogICAgIGNvbnN0IFZlY3RvcjxCYXNpY0Jsb2NrUmFuZ2U+
JiBibG9ja3MgPSBnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKHNvdXJjZUlELCB2bSk7CiAgICAg
QmFzaWNCbG9ja1JhbmdlIHJhbmdlID0gZmluZEJhc2ljQmxvY2tBdFRleHRPZmZzZXQob2Zmc2V0
LCBibG9ja3MpOwogICAgIHJldHVybiByYW5nZS5tX2hhc0V4ZWN1dGVkOwogfQogCi1zaXplX3Qg
Q29udHJvbEZsb3dQcm9maWxlcjo6YmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50QXRUZXh0T2Zmc2V0
KGludCBvZmZzZXQsIGludHB0cl90IHNvdXJjZUlELCBWTSYgdm0pCitzaXplX3QgQ29udHJvbEZs
b3dQcm9maWxlcjo6YmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50QXRUZXh0T2Zmc2V0KGludCBvZmZz
ZXQsIFNvdXJjZUlEIHNvdXJjZUlELCBWTSYgdm0pCiB7CiAgICAgY29uc3QgVmVjdG9yPEJhc2lj
QmxvY2tSYW5nZT4mIGJsb2NrcyA9IGdldEJhc2ljQmxvY2tzRm9yU291cmNlSUQoc291cmNlSUQs
IHZtKTsKICAgICBCYXNpY0Jsb2NrUmFuZ2UgcmFuZ2UgPSBmaW5kQmFzaWNCbG9ja0F0VGV4dE9m
ZnNldChvZmZzZXQsIGJsb2Nrcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmgKaW5kZXggMWM0OTU1OWY1MjA1MDc5YTJjNmQyZGI0
ZGNlMGI1MzYzZDJiOWQ1NS4uNmRjYTE0ZGU2MjExN2U4MmY0YTc2ZWQ3NzQ5NDUwZGJmOTc2MTkw
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQ
cm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93
UHJvZmlsZXIuaApAQCAtOTEsMTYgKzkxLDE2IEBAIGNsYXNzIENvbnRyb2xGbG93UHJvZmlsZXIg
ewogcHVibGljOgogICAgIENvbnRyb2xGbG93UHJvZmlsZXIoKTsKICAgICB+Q29udHJvbEZsb3dQ
cm9maWxlcigpOwotICAgIEJhc2ljQmxvY2tMb2NhdGlvbiogZ2V0QmFzaWNCbG9ja0xvY2F0aW9u
KGludHB0cl90IHNvdXJjZUlELCBpbnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQpOworICAg
IEJhc2ljQmxvY2tMb2NhdGlvbiogZ2V0QmFzaWNCbG9ja0xvY2F0aW9uKFNvdXJjZUlELCBpbnQg
c3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQg
ZHVtcERhdGEoKSBjb25zdDsKLSAgICBWZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiBnZXRCYXNpY0Js
b2Nrc0ZvclNvdXJjZUlEKGludHB0cl90IHNvdXJjZUlELCBWTSYpIGNvbnN0OworICAgIFZlY3Rv
cjxCYXNpY0Jsb2NrUmFuZ2U+IGdldEJhc2ljQmxvY2tzRm9yU291cmNlSUQoU291cmNlSUQsIFZN
JikgY29uc3Q7CiAgICAgQmFzaWNCbG9ja0xvY2F0aW9uKiBkdW1teUJhc2ljQmxvY2soKSB7IHJl
dHVybiAmbV9kdW1teUJhc2ljQmxvY2s7IH0KLSAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGhh
c0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRCZWVuRXhlY3V0ZWQoaW50LCBpbnRwdHJfdCwgVk0mKTsg
IC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGZvciB0ZXN0aW5nLgotICAgIEpTX0VYUE9SVF9QUklW
QVRFIHNpemVfdCBiYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnRBdFRleHRPZmZzZXQoaW50LCBpbnRw
dHJfdCwgVk0mKTsgLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgZm9yIHRlc3RpbmcuCisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgYm9vbCBoYXNCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVk
KGludCwgU291cmNlSUQsIFZNJik7IC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGZvciB0ZXN0aW5n
LgorICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBiYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnRB
dFRleHRPZmZzZXQoaW50LCBTb3VyY2VJRCwgVk0mKTsgLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMg
Zm9yIHRlc3RpbmcuCiAKIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPEJhc2ljQmxvY2tL
ZXksIEJhc2ljQmxvY2tMb2NhdGlvbio+IEJsb2NrTG9jYXRpb25DYWNoZTsKLSAgICB0eXBlZGVm
IEhhc2hNYXA8aW50cHRyX3QsIEJsb2NrTG9jYXRpb25DYWNoZT4gU291cmNlSURCdWNrZXRzOwor
ICAgIHR5cGVkZWYgSGFzaE1hcDxTb3VyY2VJRCwgQmxvY2tMb2NhdGlvbkNhY2hlPiBTb3VyY2VJ
REJ1Y2tldHM7CiAKICAgICBTb3VyY2VJREJ1Y2tldHMgbV9zb3VyY2VJREJ1Y2tldHM7CiAgICAg
QmFzaWNCbG9ja0xvY2F0aW9uIG1fZHVtbXlCYXNpY0Jsb2NrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5jcHAK
aW5kZXggYThhYWRhZGZkMTc0MmFiNGUxMWY3Y2I4MTNhMjljZjlhZmVkMjM4NS4uNjhjMDYwNmIw
NzEzMTI0YzdhYTE3MGMxZGEyZDk5NmQ4ZTE0ZTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuY3BwCkBA
IC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1ib29sIEZ1bmN0aW9uSGFzRXhl
Y3V0ZWRDYWNoZTo6aGFzRXhlY3V0ZWRBdE9mZnNldChpbnRwdHJfdCBpZCwgdW5zaWduZWQgb2Zm
c2V0KQorYm9vbCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6Omhhc0V4ZWN1dGVkQXRPZmZzZXQo
U291cmNlSUQgaWQsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICBpZiAobV9yYW5nZU1hcC5maW5k
KGlkKSA9PSBtX3JhbmdlTWFwLmVuZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00OSw3
ICs0OSw3IEBAIGJvb2wgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zm
c2V0KGludHB0cl90IGlkLCB1bnNpZ25lZCBvZmZzZXQpCiAgICAgcmV0dXJuIGhhc0V4ZWN1dGVk
OwogfQogCi12b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6aW5zZXJ0VW5leGVjdXRlZFJh
bmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKSAKK3ZvaWQgRnVu
Y3Rpb25IYXNFeGVjdXRlZENhY2hlOjppbnNlcnRVbmV4ZWN1dGVkUmFuZ2UoU291cmNlSUQgaWQs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpCiB7CiAgICAgaWYgKG1fcmFuZ2VNYXAuZmlu
ZChpZCkgPT0gbV9yYW5nZU1hcC5lbmQoKSkgewogICAgICAgICBSYW5nZU1hcCBtYXA7CkBAIC02
Niw3ICs2Niw3IEBAIHZvaWQgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjppbnNlcnRVbmV4ZWN1
dGVkUmFuZ2UoaW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0CiAgICAgICAgIG1hcFtyYW5nZV0g
PSBmYWxzZTsKIH0KIAotdm9pZCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OnJlbW92ZVVuZXhl
Y3V0ZWRSYW5nZShpbnRwdHJfdCBpZCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkKK3Zv
aWQgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpyZW1vdmVVbmV4ZWN1dGVkUmFuZ2UoU291cmNl
SUQgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpCiB7CiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBuZXZlciBoYXZlIGFuIGluc3RhbmNlIHdoZXJlIHdlIHJldHVybiBoZXJlLCBidXQg
Y3VycmVudGx5IGRvIGluIHNvbWUgc2l0dWF0aW9ucy4gRmluZCBvdXQgd2h5LgogICAgIGlmICht
X3JhbmdlTWFwLmZpbmQoaWQpID09IG1fcmFuZ2VNYXAuZW5kKCkpCkBAIC04MCw3ICs4MCw3IEBA
IHZvaWQgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpyZW1vdmVVbmV4ZWN1dGVkUmFuZ2UoaW50
cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0CiAgICAgbWFwW3JhbmdlXSA9IHRydWU7CiB9CiAKLVZl
Y3RvcjxzdGQ6OnR1cGxlPGJvb2wsIHVuc2lnbmVkLCB1bnNpZ25lZD4+IEZ1bmN0aW9uSGFzRXhl
Y3V0ZWRDYWNoZTo6Z2V0RnVuY3Rpb25SYW5nZXMoaW50cHRyX3QgaWQpCitWZWN0b3I8c3RkOjp0
dXBsZTxib29sLCB1bnNpZ25lZCwgdW5zaWduZWQ+PiBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6
OmdldEZ1bmN0aW9uUmFuZ2VzKFNvdXJjZUlEIGlkKQogewogICAgIFZlY3RvcjxzdGQ6OnR1cGxl
PGJvb2wsIHVuc2lnbmVkLCB1bnNpZ25lZD4+IHJhbmdlcygwKTsKICAgICBhdXRvIGZpbmRSZXN1
bHQgPSBtX3JhbmdlTWFwLmZpbmQoaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaAppbmRleCA5ZTJiMjBjZmY3
MDU5YzQ0MTVkOGM2NzkyMzViMzI2MDI1NzEyODZlLi5jYWE5MmQ2ZmVlNjRlODhiZGZjNGYwMGI2
YTM3MmUyYjgxOWNjZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNvdXJjZUlELmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
ZXRob2QuaD4KICNpbmNsdWRlIDx3dGYvU3RkVW5vcmRlcmVkTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpAQCAtNDgsMTAgKzQ5LDEwIEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQg
bV9lbmQ7CiAgICAgfTsKIAotICAgIGJvb2wgaGFzRXhlY3V0ZWRBdE9mZnNldChpbnRwdHJfdCBp
ZCwgdW5zaWduZWQgb2Zmc2V0KTsKLSAgICB2b2lkIGluc2VydFVuZXhlY3V0ZWRSYW5nZShpbnRw
dHJfdCBpZCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCk7Ci0gICAgdm9pZCByZW1vdmVV
bmV4ZWN1dGVkUmFuZ2UoaW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQp
OwotICAgIFZlY3RvcjxzdGQ6OnR1cGxlPGJvb2wsIHVuc2lnbmVkLCB1bnNpZ25lZD4+IGdldEZ1
bmN0aW9uUmFuZ2VzKGludHB0cl90IGlkKTsKKyAgICBib29sIGhhc0V4ZWN1dGVkQXRPZmZzZXQo
U291cmNlSUQsIHVuc2lnbmVkIG9mZnNldCk7CisgICAgdm9pZCBpbnNlcnRVbmV4ZWN1dGVkUmFu
Z2UoU291cmNlSUQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOworICAgIHZvaWQgcmVt
b3ZlVW5leGVjdXRlZFJhbmdlKFNvdXJjZUlELCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5k
KTsKKyAgICBWZWN0b3I8c3RkOjp0dXBsZTxib29sLCB1bnNpZ25lZCwgdW5zaWduZWQ+PiBnZXRG
dW5jdGlvblJhbmdlcyhTb3VyY2VJRCk7CiAKIHByaXZhdGU6CiAgICAgdXNpbmcgUmFuZ2VNYXAg
PSBTdGRVbm9yZGVyZWRNYXA8RnVuY3Rpb25SYW5nZSwgYm9vbCwgSGFzaE1ldGhvZDxGdW5jdGlv
blJhbmdlPj47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1w
bGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5n
UHJvZmlsZXIuY3BwCmluZGV4IGIyN2U4ZTNkNjRkZTg2ZjM1Y2I0Njc1ODU3NDZjZWZjMzlhOTVi
YTIuLjdjZDc4YzY5MjVlMmEyYTAyNTNkNjBkYjU2ZTM5ODdmZTJmODg3M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCkBAIC05
MTgsNyArOTE4LDcgQEAgdW5zaWduZWQgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZnVu
Y3Rpb25TdGFydENvbHVtbigpCiAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKTsKIH0KIAotaW50cHRyX3QgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6
c291cmNlSUQoKQorU291cmNlSUQgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6c291cmNl
SUQoKQogewogICAgIHN3aXRjaCAoZnJhbWVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVR5cGU6OlVu
a25vd246CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGlu
Z1Byb2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmgKaW5kZXggOWFmMjc1NjVkNDUxODU4NTQ4NWZjN2I5MDdmZTczZmU1Y2NjNzRkYS4uNTg4
Y2ZmMDYyOTllNGJhYTgyODJhZmFiNDM3NmQxMGE5YjcyNDUyOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtMTQ4LDcgKzE0OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1lRm9ySlNPTlRlc3RzKFZNJik7
IC8vIFVzZWQgZm9yIEpTQyBzdHJlc3MgdGVzdHMgYmVjYXVzZSB0aGV5IHdhbnQgdGhlICIoYW5v
bnltb3VzIGZ1bmN0aW9uKSIgc3RyaW5nIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zIGFuZCB0aGV5
IHdhbnQgIihldmFsKSIgZm9yIGV2YWwnZCBjb2RlLgogICAgICAgICBpbnQgZnVuY3Rpb25TdGFy
dExpbmUoKTsKICAgICAgICAgdW5zaWduZWQgZnVuY3Rpb25TdGFydENvbHVtbigpOwotICAgICAg
ICBpbnRwdHJfdCBzb3VyY2VJRCgpOworICAgICAgICBTb3VyY2VJRCBzb3VyY2VJRCgpOwogICAg
ICAgICBTdHJpbmcgdXJsKCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCmluZGV4IGYzMWJkMzNmNmVlMWQxODIwMjY3ZjMz
YmJhMTg0MzhhYzliMjc3YTYuLjc1ZGFlZTRiOGYyOGI1YmMxMGUwZTYxYzIzNjkwZTY0OTIwNzUx
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1
dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRh
YmxlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIENvZGVCbG9ja0hhc2ggaGFzaEZv
cihDb2RlU3BlY2lhbGl6YXRpb25LaW5kKSBjb25zdDsKIAogICAgIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9Ci0gICAgaW50cHRyX3Qgc291cmNl
SUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KKyAgICBTb3VyY2VJ
RCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVySUQoKTsgfQogICAg
IGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2UucHJvdmlkZXIoKS0+c291cmNlT3JpZ2luKCk7IH0KICAgICAvLyBUaGlzIGlzIE5PVCB0aGUg
cGF0aCB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBjb21wdXRpbmcgcmVsYXRpdmUgcGF0aHMgZnJv
bSBhIHNjcmlwdC4gVXNlIFNvdXJjZU9yaWdpbidzIFVSTCBmb3IgdGhhdCwgdGhlIHZhbHVlcyBt
YXkgb3IgbWF5IG5vdCBiZSB0aGUgc2FtZS4uLiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9y
IGBlcnJvci5zb3VyY2VVUkxgIGFuZCBzdGFjayB0cmFjZXMuCiAgICAgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VVUkwo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFt
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcAppbmRl
eCA2ZWUxYzViOTJjZDU2OTFjZjNlODE2NDNhNmUxOWJlNDM2MThiOWRmLi42YjhmM2RmNjMzNTA0
NWQ1YWMyMWVmNWEwODJkNDg2ODA0ZmEzZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdGFja0ZyYW1lLmNwcApAQCAtNTEsNyArNTEsNyBAQCBTdGFja0ZyYW1lOjpTdGFj
a0ZyYW1lKFdhc206OkluZGV4T3JOYW1lIGluZGV4T3JOYW1lKQogewogfQogCi1pbnRwdHJfdCBT
dGFja0ZyYW1lOjpzb3VyY2VJRCgpIGNvbnN0CitTb3VyY2VJRCBTdGFja0ZyYW1lOjpzb3VyY2VJ
RCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NvZGVCbG9jaykKICAgICAgICAgcmV0dXJuIG5vU291
cmNlSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0Zy
YW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmgKaW5kZXgg
MDYwOWE1NmQ0ZTdiMjJhZTliZmM1MTk2YjNhMjE0MGI0ZDNlMzg3Ny4uMzNiNGEyMGIzZWYyMTU1
MzQ0ZTE1M2MzOGU3YTc5MDIzZWU3MWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0YWNrRnJhbWUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9p
ZCBjb21wdXRlTGluZUFuZENvbHVtbih1bnNpZ25lZCYgbGluZSwgdW5zaWduZWQmIGNvbHVtbikg
Y29uc3Q7CiAgICAgU3RyaW5nIGZ1bmN0aW9uTmFtZShWTSYpIGNvbnN0OwotICAgIGludHB0cl90
IHNvdXJjZUlEKCkgY29uc3Q7CisgICAgU291cmNlSUQgc291cmNlSUQoKSBjb25zdDsKICAgICBT
dHJpbmcgc291cmNlVVJMKCkgY29uc3Q7CiAgICAgU3RyaW5nIHRvU3RyaW5nKFZNJikgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlv
bkNhY2hlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNh
Y2hlLmNwcAppbmRleCAwOGQ1Yjk2OGYxYmE1NzJjZGU0ZjQ3MzVmMjQ1ZTUyZDUyMTQ5YjYzLi4x
NTNiNjc1OGJiOTRiMTIxZTY2YmI3NDJlZTg1ODMzZjlhODczNjljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuY3BwCkBAIC0zMyw3
ICszMyw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGQ6OnBhaXI8VHlwZUxvY2F0aW9uKiwg
Ym9vbD4gVHlwZUxvY2F0aW9uQ2FjaGU6OmdldFR5cGVMb2NhdGlvbihHbG9iYWxWYXJpYWJsZUlE
IGdsb2JhbFZhcmlhYmxlSUQsIGludHB0cl90IHNvdXJjZUlELCB1bnNpZ25lZCBzdGFydCwgdW5z
aWduZWQgZW5kLCBSZWZQdHI8VHlwZVNldD4mJiBnbG9iYWxUeXBlU2V0LCBWTSogdm0pCitzdGQ6
OnBhaXI8VHlwZUxvY2F0aW9uKiwgYm9vbD4gVHlwZUxvY2F0aW9uQ2FjaGU6OmdldFR5cGVMb2Nh
dGlvbihHbG9iYWxWYXJpYWJsZUlEIGdsb2JhbFZhcmlhYmxlSUQsIFNvdXJjZUlEIHNvdXJjZUlE
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBSZWZQdHI8VHlwZVNldD4mJiBnbG9iYWxU
eXBlU2V0LCBWTSogdm0pCiB7CiAgICAgTG9jYXRpb25LZXkga2V5OwogICAgIGtleS5tX2dsb2Jh
bFZhcmlhYmxlSUQgPSBnbG9iYWxWYXJpYWJsZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmgKaW5kZXggODY3NThlMjcxOGEzM2M0NTEw
YjIyMzliM2ZkYTE4MWFiZjc1ZWE5NS4uYThlODhhZGJkMTVhYWI4MGUzNDFlZTZhNDMxN2FmMzEy
NDUyNDBlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUxv
Y2F0aW9uQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9j
YXRpb25DYWNoZS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiU291cmNlSUQuaCIKICNpbmNsdWRlICJUeXBlTG9jYXRpb24uaCIKICNpbmNsdWRlIDx3dGYv
RmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWV0aG9kLmg+CkBAIC01MiwxMiArNTMs
MTIgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgR2xvYmFsVmFyaWFibGVJRCBtX2ds
b2JhbFZhcmlhYmxlSUQ7Ci0gICAgICAgIGludHB0cl90IG1fc291cmNlSUQ7CisgICAgICAgIFNv
dXJjZUlEIG1fc291cmNlSUQ7CiAgICAgICAgIHVuc2lnbmVkIG1fc3RhcnQ7CiAgICAgICAgIHVu
c2lnbmVkIG1fZW5kOwogICAgIH07CiAKLSAgICBzdGQ6OnBhaXI8VHlwZUxvY2F0aW9uKiwgYm9v
bD4gZ2V0VHlwZUxvY2F0aW9uKEdsb2JhbFZhcmlhYmxlSUQsIGludHB0cl90LCB1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgZW5kLCBSZWZQdHI8VHlwZVNldD4mJiwgVk0qKTsKKyAgICBzdGQ6OnBh
aXI8VHlwZUxvY2F0aW9uKiwgYm9vbD4gZ2V0VHlwZUxvY2F0aW9uKEdsb2JhbFZhcmlhYmxlSUQs
IFNvdXJjZUlELCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBSZWZQdHI8VHlwZVNldD4m
JiwgVk0qKTsKIHByaXZhdGU6CiAgICAgdXNpbmcgTG9jYXRpb25NYXAgPSBTdGRVbm9yZGVyZWRN
YXA8TG9jYXRpb25LZXksIFR5cGVMb2NhdGlvbiosIEhhc2hNZXRob2Q8TG9jYXRpb25LZXk+PjsK
ICAgICBMb2NhdGlvbk1hcCBtX2xvY2F0aW9uTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAKaW5kZXggNjIyMTEzOTQ5YmU5YTc1N2VkNDAwYjUy
ZGE1MTI5OGEzMjNkYWJmNi4uN2UxYmNlMjliYWZlZmZiY2E2NGZjNTQ1ZWE0YWI4OGM4ZWUxZmQ2
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3Bw
CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgVHlwZVByb2ZpbGVyOjppbnNlcnROZXdMb2NhdGlvbihU
eXBlTG9jYXRpb24qIGxvY2F0aW9uKQogICAgIGJ1Y2tldC5hcHBlbmQobG9jYXRpb24pOwogfQog
Ci1TdHJpbmcgVHlwZVByb2ZpbGVyOjp0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZz
ZXQoVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBkZXNjcmlwdG9yLCB1bnNpZ25lZCBvZmZz
ZXQsIGludHB0cl90IHNvdXJjZUlELCBWTSYgdm0pCitTdHJpbmcgVHlwZVByb2ZpbGVyOjp0eXBl
SW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3Jp
cHRvciBkZXNjcmlwdG9yLCB1bnNpZ25lZCBvZmZzZXQsIFNvdXJjZUlEIHNvdXJjZUlELCBWTSYg
dm0pCiB7CiAgICAgLy8gVGhpcyByZXR1cm5zIGEgSlNPTiBzdHJpbmcgcmVwcmVzZW50aW5nIGFu
IE9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAvLyAgICAgZ2xvYmFs
VHlwZVNldDogJ0pTT048VHlwZVNldD4gfCBudWxsJwpAQCAtMTAyLDcgKzEwMiw3IEBAIFN0cmlu
ZyBUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBl
UHJvZmlsZXJTZWFyY2hEZXNjCiAgICAgcmV0dXJuIGpzb24udG9TdHJpbmcoKTsKIH0KIAotVHlw
ZUxvY2F0aW9uKiBUeXBlUHJvZmlsZXI6OmZpbmRMb2NhdGlvbih1bnNpZ25lZCBkaXZvdCwgaW50
cHRyX3Qgc291cmNlSUQsIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IgZGVzY3JpcHRvciwg
Vk0mIHZtKQorVHlwZUxvY2F0aW9uKiBUeXBlUHJvZmlsZXI6OmZpbmRMb2NhdGlvbih1bnNpZ25l
ZCBkaXZvdCwgU291cmNlSUQgc291cmNlSUQsIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3Ig
ZGVzY3JpcHRvciwgVk0mIHZtKQogewogICAgIFF1ZXJ5S2V5IHF1ZXJ5S2V5KHNvdXJjZUlELCBk
aXZvdCwgZGVzY3JpcHRvcik7CiAgICAgYXV0byBpdGVyID0gbV9xdWVyeUNhY2hlLmZpbmQocXVl
cnlLZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVBy
b2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuaApp
bmRleCA3NzljYzAwYzEwZGE5ZTFlYjZjYTE5NzgwNTdmZGEyMTlkODBjYmM1Li45N2Q5NzNmODNm
ODY2YmFjZmM2OTQ0ZDZiZTFmMWIwNzI5NDJhNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UeXBlUHJvZmlsZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIlNvdXJjZUlELmgiCiAjaW5jbHVkZSAiVHlwZUxvY2F0aW9uLmgiCiAj
aW5jbHVkZSAiVHlwZUxvY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRlIDx3dGYvQmFnLmg+CkBAIC01
MCwyMSArNTEsMjEgQEAgc3RydWN0IFF1ZXJ5S2V5IHsKICAgICAgICAgLCBtX3NlYXJjaERlc2Ny
aXB0b3IoVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvckZ1bmN0aW9uUmV0dXJuKQogICAgIHsg
fQogCi0gICAgUXVlcnlLZXkoaW50cHRyX3Qgc291cmNlSUQsIHVuc2lnbmVkIGRpdm90LCBUeXBl
UHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIHNlYXJjaERlc2NyaXB0b3IpCisgICAgUXVlcnlLZXko
U291cmNlSUQgc291cmNlSUQsIHVuc2lnbmVkIGRpdm90LCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNj
cmlwdG9yIHNlYXJjaERlc2NyaXB0b3IpCiAgICAgICAgIDogbV9zb3VyY2VJRChzb3VyY2VJRCkK
ICAgICAgICAgLCBtX2Rpdm90KGRpdm90KQogICAgICAgICAsIG1fc2VhcmNoRGVzY3JpcHRvcihz
ZWFyY2hEZXNjcmlwdG9yKQogICAgIHsgfQogCiAgICAgUXVlcnlLZXkoV1RGOjpIYXNoVGFibGVE
ZWxldGVkVmFsdWVUeXBlKQotICAgICAgICA6IG1fc291cmNlSUQoSU5UUFRSX01BWCkKKyAgICAg
ICAgOiBtX3NvdXJjZUlEKFVJTlRfTUFYKQogICAgICAgICAsIG1fZGl2b3QoVUlOVF9NQVgpCiAg
ICAgICAgICwgbV9zZWFyY2hEZXNjcmlwdG9yKFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3JG
dW5jdGlvblJldHVybikKICAgICB7IH0KIAogICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFs
dWUoKSBjb25zdCAKICAgICB7IAotICAgICAgICByZXR1cm4gbV9zb3VyY2VJRCA9PSBJTlRQVFJf
TUFYIAorICAgICAgICByZXR1cm4gbV9zb3VyY2VJRCA9PSBVSU5UX01BWAogICAgICAgICAgICAg
JiYgbV9kaXZvdCA9PSBVSU5UX01BWAogICAgICAgICAgICAgJiYgbV9zZWFyY2hEZXNjcmlwdG9y
ID09IFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3JGdW5jdGlvblJldHVybjsKICAgICB9CkBA
IC04Miw3ICs4Myw3IEBAIHN0cnVjdCBRdWVyeUtleSB7CiAgICAgICAgIHJldHVybiBoYXNoOwog
ICAgIH0KIAotICAgIGludHB0cl90IG1fc291cmNlSUQ7CisgICAgU291cmNlSUQgbV9zb3VyY2VJ
RDsKICAgICB1bnNpZ25lZCBtX2Rpdm90OwogICAgIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0
b3IgbV9zZWFyY2hEZXNjcmlwdG9yOwogfTsKQEAgLTExNiwxNyArMTE3LDE3IEBAIGNsYXNzIFR5
cGVQcm9maWxlciB7CiBwdWJsaWM6CiAgICAgVHlwZVByb2ZpbGVyKCk7CiAgICAgdm9pZCBsb2dU
eXBlc0ZvclR5cGVMb2NhdGlvbihUeXBlTG9jYXRpb24qLCBWTSYpOwotICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFN0cmluZyB0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQoVHlwZVBy
b2ZpbGVyU2VhcmNoRGVzY3JpcHRvciwgdW5zaWduZWQgb2Zmc2V0LCBpbnRwdHJfdCBzb3VyY2VJ
RCwgVk0mKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgdHlwZUluZm9ybWF0aW9uRm9y
RXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IsIHVuc2lnbmVk
IG9mZnNldCwgU291cmNlSUQsIFZNJik7CiAgICAgdm9pZCBpbnNlcnROZXdMb2NhdGlvbihUeXBl
TG9jYXRpb24qKTsKICAgICBUeXBlTG9jYXRpb25DYWNoZSogdHlwZUxvY2F0aW9uQ2FjaGUoKSB7
IHJldHVybiAmbV90eXBlTG9jYXRpb25DYWNoZTsgfQotICAgIFR5cGVMb2NhdGlvbiogZmluZExv
Y2F0aW9uKHVuc2lnbmVkIGRpdm90LCBpbnRwdHJfdCBzb3VyY2VJRCwgVHlwZVByb2ZpbGVyU2Vh
cmNoRGVzY3JpcHRvciwgVk0mKTsKKyAgICBUeXBlTG9jYXRpb24qIGZpbmRMb2NhdGlvbih1bnNp
Z25lZCBkaXZvdCwgU291cmNlSUQsIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IsIFZNJik7
CiAgICAgR2xvYmFsVmFyaWFibGVJRCBnZXROZXh0VW5pcXVlVmFyaWFibGVJRCgpIHsgcmV0dXJu
IG1fbmV4dFVuaXF1ZVZhcmlhYmxlSUQrKzsgfQogICAgIFR5cGVMb2NhdGlvbiogbmV4dFR5cGVM
b2NhdGlvbigpOwogICAgIHZvaWQgaW52YWxpZGF0ZVR5cGVTZXRDYWNoZShWTSYpOwogICAgIHZv
aWQgZHVtcFR5cGVQcm9maWxlckRhdGEoVk0mKTsKICAgICAKIHByaXZhdGU6Ci0gICAgdHlwZWRl
ZiBIYXNoTWFwPGludHB0cl90LCBWZWN0b3I8VHlwZUxvY2F0aW9uKj4+IFNvdXJjZUlEVG9Mb2Nh
dGlvbkJ1Y2tldE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8U291cmNlSUQsIFZlY3RvcjxUeXBl
TG9jYXRpb24qPj4gU291cmNlSURUb0xvY2F0aW9uQnVja2V0TWFwOwogICAgIFNvdXJjZUlEVG9M
b2NhdGlvbkJ1Y2tldE1hcCBtX2J1Y2tldE1hcDsKICAgICBUeXBlTG9jYXRpb25DYWNoZSBtX3R5
cGVMb2NhdGlvbkNhY2hlOwogICAgIHR5cGVkZWYgSGFzaE1hcDxRdWVyeUtleSwgVHlwZUxvY2F0
aW9uKj4gVHlwZUxvY2F0aW9uUXVlcnlDYWNoZTsK
</data>
<flag name="commit-queue"
          id="464845"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440791</attachid>
            <date>2021-10-11 07:34:58 -0700</date>
            <delta_ts>2021-10-11 08:32:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231436-20211011103457.patch</filename>
            <type>text/plain</type>
            <size>43240</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OThiZWM5NmI1M2Y2ODhmZmI4YjVkYmU1NDY4ZTk2Nzc5OWIwM2Q4Li4wOGFhNzgyMTVkODdlZTc3
MjBkNmEyMzk4MzE4YTUwNzc4YjdlOTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MCBAQAorMjAyMS0xMC0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTb3VyY2VJRCBzaG91bGQgaGF2ZSBhIHR5cGUgbmFtZSBhbmQgb25s
eSBiZSAzMi1iaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAg
ICBUaGlzIHBhdGNoIGdpdmVzIFNvdXJjZUlEIGEgcHJvcGVyIHR5cGUgbmFtZSBhbmQgc2hyaW5r
cyBpdCB0bworICAgICAgICAzMi1iaXRzIG9uIDY0LWJpdCBzeXN0ZW1zLiBTaHJpbmtpbmcgdGhl
IHNpemUgbWFrZXMgcm9vbSBvbgorICAgICAgICBTb3VyY2VQcm92aWRlciBmb3IgbWV0YWRhdGEg
aW4gYSBmdXR1cmUgcGF0Y2ggSSdtIHdvcmtpbmcgb24uCisgICAgICAgIEl0J3MgYWxzbyBwcmV0
dHkgdW5saWtlbHkgdGhhdCBhbnkgc3lzdGVtIGhhcyBtb3JlIHRoYW4gfjQgYmlsbGlvbgorICAg
ICAgICBzY3JpcHQgdGFncywgZXZhbHMsIHdhc20gbW9kdWxlcyBzbyBzaGlua2luZyB0aGUgc2l6
ZSBpcyB1bmxpa2VseQorICAgICAgICB0byBjYXVzZSBhbnkgZGVidWdnZXIvcHJvZmlsaW5nIGlz
c3Vlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvVHlwZUxv
Y2F0aW9uLmg6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAoSlND
OjpEZWJ1Z2dlcjo6dG9nZ2xlQnJlYWtwb2ludCk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpw
YXVzZUlmTmVlZGVkKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmg6Cisg
ICAgICAgIChKU0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAg
ICAqIGRlYnVnZ2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oOgorICAgICAgICAqIGluc3BlY3Rvci9K
YXZhU2NyaXB0Q2FsbEZyYW1lLmg6CisgICAgICAgIChJbnNwZWN0b3I6OkphdmFTY3JpcHRDYWxs
RnJhbWU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0
YWNrRmFjdG9yeS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkNyZWF0ZVNjcmlwdENhbGxTdGFj
a0Z1bmN0b3I6Om9wZXJhdG9yKCkgY29uc3QpOgorICAgICAgICAoSW5zcGVjdG9yOjpjcmVhdGVT
Y3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFj
a1Zpc2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTdGFja1Zpc2l0b3I6OkZyYW1lOjpzb3VyY2VJ
RCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmg6CisgICAgICAgICogcGFy
c2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNjb3BlTm9kZTo6c291cmNlSUQgY29uc3QpOgor
ICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6
OlNvdXJjZUNvZGUpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpmaXJzdExpbmUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpzdGFydENvbHVtbiBjb25zdCk6CisgICAgICAg
IChKU0M6OlNvdXJjZUNvZGU6OnByb3ZpZGVySUQgY29uc3QpOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VDb2RlOjpwcm92aWRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6Om9wZXJh
dG9yPT0gY29uc3QpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpvcGVyYXRvciE9IGNvbnN0
KToKKyAgICAgICAgKEpTQzo6bWFrZVNvdXJjZSk6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6
OnN1YkV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5j
cHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpnZXRJRCk6CisgICAgICAgICogcGFy
c2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjphc0lE
KToKKyAgICAgICAgKiBydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwOgorICAgICAgICAo
SlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2NrTG9jYXRpb24pOgorICAgICAg
ICAoSlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9maWxlcjo6aGFzQmFzaWNCbG9ja0F0
VGV4dE9mZnNldEJlZW5FeGVjdXRlZCk6CisgICAgICAgIChKU0M6OkNvbnRyb2xGbG93UHJvZmls
ZXI6OmJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldCk6CisgICAgICAgICogcnVu
dGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkhh
c0V4ZWN1dGVkQ2FjaGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1dGVkQ2Fj
aGU6Omhhc0V4ZWN1dGVkQXRPZmZzZXQpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1
dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0ZWRSYW5nZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9u
SGFzRXhlY3V0ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdlKToKKyAgICAgICAgKEpTQzo6
RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpnZXRGdW5jdGlvblJhbmdlcyk6CisgICAgICAgICog
cnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpTdGFj
a0ZyYW1lOjpzb3VyY2VJRCk6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmg6
CisgICAgICAgICogcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNj
cmlwdEV4ZWN1dGFibGU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1N0YWNr
RnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpzb3VyY2VJRCBjb25zdCk6Cisg
ICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmg6CisgICAgICAgICogcnVudGltZS9UeXBlTG9j
YXRpb25DYWNoZS5jcHA6CisgICAgICAgIChKU0M6OlR5cGVMb2NhdGlvbkNhY2hlOjpnZXRUeXBl
TG9jYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlR5cGVQcm9maWxl
cjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6
VHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZVByb2Zp
bGVyLmg6CisgICAgICAgIChKU0M6OlF1ZXJ5S2V5OjpRdWVyeUtleSk6CisgICAgICAgIChKU0M6
OlF1ZXJ5S2V5Ojppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisKIDIwMjEtMTAtMDcg
IEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIGBoaWdo
V2F0ZXJNYXJrYCBzaG91bGQgYmUgYSByZWFkb25seSBXZWJJREwgYXR0cmlidXRlIG9mIHF1ZXVp
bmcgc3RyYXRlZ2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGIzMmMz
MGYxMTBmNmEyOWUyYzgxNmY4N2M1NTZhMTJmZGJlMGQ2YzguLjA3N2QyYjJkYWQ5YzU4NDY1ZmRk
Y2ZjNzY0ODNjZjVjMmZjNWRmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTY1OSw2ICs2NTksNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIGJ5dGVjb2RlL1B1dEJ5SWRGbGFncy5oCiAgICAgYnl0ZWNvZGUvU2V0UHJp
dmF0ZUJyYW5kU3RhdHVzLmgKICAgICBieXRlY29kZS9TZXRQcml2YXRlQnJhbmRWYXJpYW50LmgK
KyAgICBieXRlY29kZS9Tb3VyY2VJRC5oCiAgICAgYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAog
ICAgIGJ5dGVjb2RlL1N0cnVjdHVyZVNldC5oCiAgICAgYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGMzNTU0NTBkMjRmNjlhOGM5MThmYmQz
OTA1YjQyYmNiOTUwNzkzOC4uZmI0MTU4ODA3ODEwY2JmOTc2YTViMTg3MWQ3ZGVjN2IyMmIzYjky
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzOSw2ICs5MzksNyBAQAogCQk1
MzRFMDM1NDFFNTNCRDI5MDAyMTNGNjQgLyogSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM0RTAzNTMxRTUz
QkQyOTAwMjEzRjY0IC8qIEludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaCAqLzsgfTsKIAkJNTM0
RTAzNTYxRTUzQkVERTAwMjEzRjY0IC8qIFByb3h5YWJsZUFjY2Vzc0Nhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNEUwMzU1MUU1M0JFREUwMDIx
M0Y2NCAvKiBQcm94eWFibGVBY2Nlc3NDYXNlLmggKi87IH07CiAJCTUzNEUwMzU4MUU1M0JGMkYw
MDIxM0Y2NCAvKiBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzRFMDM1NzFFNTNCRjJGMDAyMTNGNjQgLyogR2V0
dGVyU2V0dGVyQWNjZXNzQ2FzZS5oICovOyB9OworCQk1MzUwMzU2NTI3MTQ3RTVBMDBFQzFBN0Ug
LyogU291cmNlSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUzNTAzNTY0MjcxNDdFNTkwMEVDMUE3RSAvKiBTb3VyY2VJRC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUzNTI5QTRDMUM0NTdCNzUwMDBC
NDlDNiAvKiBBUElVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTM1MjlBNEIxQzQ1N0I3NTAwMEI0OUM2IC8qIEFQSVV0aWxzLmggKi87IH07CiAJ
CTUzNTU1NzE0MUQ5RDlFQTUwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzU1NTcxMzFEOUQ5RUE1MDA2RDU4M0Ig
LyogV2FzbU1lbW9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUzNUMyNDYxMUY3ODkyOEUwMDZFQzQwRSAvKiBjcmVhdGVfcmVnZXhfdGFibGVz
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxOEY4MjEx
MTc4RUI0QjAwMjQ2NUE3IC8qIGNyZWF0ZV9yZWdleF90YWJsZXMgKi87IH07CkBAIC0zNzM5LDYg
KzM3NDAsNyBAQAogCQk1MzRFMDM1MzFFNTNCRDI5MDAyMTNGNjQgLyogSW50cmluc2ljR2V0dGVy
QWNjZXNzQ2FzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRyaW5zaWNH
ZXR0ZXJBY2Nlc3NDYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNEUwMzU1
MUU1M0JFREUwMDIxM0Y2NCAvKiBQcm94eWFibGVBY2Nlc3NDYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb3h5YWJsZUFjY2Vzc0Nhc2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTM0RTAzNTcxRTUzQkYyRjAwMjEzRjY0IC8qIEdldHRlclNldHRlckFj
Y2Vzc0Nhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0dGVyU2V0dGVy
QWNjZXNzQ2FzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MzUwMzU2NDI3MTQ3
RTU5MDBFQzFBN0UgLyogU291cmNlSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU291cmNlSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM1MjlBNEIxQzQ1
N0I3NTAwMEI0OUM2IC8qIEFQSVV0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNTU1NzEzMUQ5
RDlFQTUwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdhc21NZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM1NTU3
MTUxRDlERkEzMjAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2FzbU1lbW9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC04Nzg4LDYgKzg3OTAsNyBAQAogCQkJCTg2NURBMEM3MjVCODk2MEMwMDg3NTc3MiAv
KiBTZXRQcml2YXRlQnJhbmRTdGF0dXMuaCAqLywKIAkJCQk4NjVEQTBDNjI1Qjg5NTlFMDA4NzU3
NzIgLyogU2V0UHJpdmF0ZUJyYW5kVmFyaWFudC5jcHAgKi8sCiAJCQkJODY1REEwQzQyNUI4OTU3
NDAwODc1NzcyIC8qIFNldFByaXZhdGVCcmFuZFZhcmlhbnQuaCAqLywKKwkJCQk1MzUwMzU2NDI3
MTQ3RTU5MDBFQzFBN0UgLyogU291cmNlSUQuaCAqLywKIAkJCQkwRkQ4MkU4NDE0MUYzRkRBMDAx
NzlDOTQgLyogU3BlY3VsYXRlZFR5cGUuY3BwICovLAogCQkJCTBGRDgyRTRGMTQxREFFQTEwMDE3
OUM5NCAvKiBTcGVjdWxhdGVkVHlwZS5oICovLAogCQkJCTBGQjQzOEEyMTkyNzBCMUQwMEUxRkJD
OSAvKiBTdHJ1Y3R1cmVTZXQuY3BwICovLApAQCAtMTA2ODAsNiArMTA2ODMsNyBAQAogCQkJCUUz
RjIzQTdGMUVDRjEzRUUwMDk3OEQ5OSAvKiBTbmlwcGV0U2xvd1BhdGhDYWxscy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQyMDFENTkxREVDRjI2QTAwOTA0QkQzIC8qIFNvdXJjZUNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwQjc5MTkxMUMwMjRBMTMwMDI0ODFFMiAvKiBTb3VyY2VDb2RlS2V5
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzUwMzU2NTI3MTQ3RTVBMDBFQzFBN0UgLyogU291cmNl
SUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMzQyRjM2RjcyNDQwOTY4MDRBREIyNCAvKiBTb3Vy
Y2VPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDYzMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5REMxNkMxMkVGMjk0RTAw
MTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NvdXJjZUlELmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU291cmNlSUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTVjNzkwNGNlYmM3
M2FkN2JmMmRhNzRlOGIxYzI5YTY2Yzk0YzZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NvdXJjZUlELmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK25hbWVzcGFjZSBKU0Mgewor
Cit1c2luZyBTb3VyY2VJRCA9IHVpbnQzMl90OworCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9UeXBlTG9jYXRpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9UeXBlTG9jYXRpb24uaAppbmRleCAxZTkyMzlk
YzRlMDM1MmJkYjJiNTkyNzUzNDg0Njc3MTQ4ZGI3M2VjLi5jNzZmMDVhZDA0MWQ3NTQ5YmNlZjVk
YjQwY2Q1YzVjOWY5MDU5NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVHlwZUxvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1R5cGVMb2NhdGlvbi5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICBHbG9iYWxWYXJp
YWJsZUlEIG1fZ2xvYmFsVmFyaWFibGVJRDsKICAgICBSZWZQdHI8VHlwZVNldD4gbV9pbnN0cnVj
dGlvblR5cGVTZXQ7CiAgICAgUmVmUHRyPFR5cGVTZXQ+IG1fZ2xvYmFsVHlwZVNldDsKLSAgICBp
bnRwdHJfdCBtX3NvdXJjZUlEOworICAgIFNvdXJjZUlEIG1fc291cmNlSUQ7CiAgICAgdW5zaWdu
ZWQgbV9kaXZvdFN0YXJ0OwogICAgIHVuc2lnbmVkIG1fZGl2b3RFbmQ7CiAgICAgdW5zaWduZWQg
bV9kaXZvdEZvckZ1bmN0aW9uT2Zmc2V0SWZSZXR1cm5TdGF0ZW1lbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAppbmRleCBkZDM1N2Q4NWM0NDc2ZDM1MWM3
ZTUxNDQ5NGEyZmVhNmE4YTRmYTFjLi4wYmNlMmE2ODk4OTM3ZmEyZDhiNDQwY2IyZjI2MTZkNTFl
MzY1Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAK
QEAgLTM1MCw3ICszNTAsNyBAQCB2b2lkIERlYnVnZ2VyOjp0b2dnbGVCcmVha3BvaW50KENvZGVC
bG9jayogY29kZUJsb2NrLCBCcmVha3BvaW50JiBicmVha3BvaW50LCBCcgogCiAgICAgU2NyaXB0
RXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCk7CiAK
LSAgICBTb3VyY2VJRCBzb3VyY2VJRCA9IHN0YXRpY19jYXN0PFNvdXJjZUlEPihleGVjdXRhYmxl
LT5zb3VyY2VJRCgpKTsKKyAgICBTb3VyY2VJRCBzb3VyY2VJRCA9IGV4ZWN1dGFibGUtPnNvdXJj
ZUlEKCk7CiAgICAgaWYgKGJyZWFrcG9pbnQuc291cmNlSUQoKSAhPSBzb3VyY2VJRCkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC04NzUsNyArODc1LDcgQEAgdm9pZCBEZWJ1Z2dlcjo6cGF1c2VJZk5l
ZWRlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIGlmIChtX3N1cHByZXNzQWxs
UGF1c2VzKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnRwdHJfdCBzb3VyY2VJRCA9IERlYnVn
Z2VyQ2FsbEZyYW1lOjpzb3VyY2VJREZvckNhbGxGcmFtZShtX2N1cnJlbnRDYWxsRnJhbWUpOwor
ICAgIFNvdXJjZUlEIHNvdXJjZUlEID0gRGVidWdnZXJDYWxsRnJhbWU6OnNvdXJjZUlERm9yQ2Fs
bEZyYW1lKG1fY3VycmVudENhbGxGcmFtZSk7CiAKICAgICBhdXRvIGJsYWNrYm94VHlwZUl0ZXJh
dG9yID0gbV9ibGFja2JveGVkU2NyaXB0cy5maW5kKHNvdXJjZUlEKTsKICAgICBpZiAoYmxhY2ti
b3hUeXBlSXRlcmF0b3IgIT0gbV9ibGFja2JveGVkU2NyaXB0cy5lbmQoKSAmJiBibGFja2JveFR5
cGVJdGVyYXRvci0+dmFsdWUgPT0gQmxhY2tib3hUeXBlOjpJZ25vcmVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgKaW5kZXggZTk0ODc3
MTY4YzQwMDRlYjljYWQzOGU3NWI5ZTM4ZmMyMDA2MjMwYy4uNGE4MzEyMWI2NGFhNDA1ZTQ4OTBj
N2QxMDEwNDQwNTFlMzc0NTAzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJMb2NhdGlvbi5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNjcmlwdEV4
ZWN1dGFibGU7CiBzdHJ1Y3QgRGVidWdnZXJMb2NhdGlvbiB7CiAKICAgICBEZWJ1Z2dlckxvY2F0
aW9uKCkgeyB9Ci0gICAgRGVidWdnZXJMb2NhdGlvbihpbnRwdHJfdCBzb3VyY2VJRCwgdW5zaWdu
ZWQgbGluZSwgdW5zaWduZWQgY29sdW1uKQorICAgIERlYnVnZ2VyTG9jYXRpb24oU291cmNlSUQg
c291cmNlSUQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKICAgICAgICAgOiBzb3Vy
Y2VJRChzb3VyY2VJRCkKICAgICAgICAgLCBsaW5lKGxpbmUpCiAgICAgICAgICwgY29sdW1uKGNv
bHVtbikKQEAgLTQzLDcgKzQzLDcgQEAgc3RydWN0IERlYnVnZ2VyTG9jYXRpb24gewogCiAgICAg
RGVidWdnZXJMb2NhdGlvbihTY3JpcHRFeGVjdXRhYmxlKik7CiAKLSAgICBpbnRwdHJfdCBzb3Vy
Y2VJRCB7IG5vU291cmNlSUQgfTsKKyAgICBTb3VyY2VJRCBzb3VyY2VJRCB7IG5vU291cmNlSUQg
fTsKICAgICB1bnNpZ25lZCBsaW5lIHsgMCB9OwogICAgIHVuc2lnbmVkIGNvbHVtbiB7IDAgfTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQ
cmltaXRpdmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQcmlt
aXRpdmVzLmgKaW5kZXggNDI1NjNhY2YzZTJmYmY5ZTMzYzBmNTQwYmFkNTdjMzQzMDU2NjhlZi4u
YmYyMjYwZTQ3OTU5MWNhYWViYjNhM2YxM2U0NmU3N2M5M2E1Nzc5MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1pdGl2ZXMuaApAQCAtMjUs
MTEgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU291cmNlSUQuaCIKICNp
bmNsdWRlIDxzdGRkZWYuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKLXVzaW5nIFNvdXJjZUlEID0g
c2l6ZV90OwogY29uc3RleHByIFNvdXJjZUlEIG5vU291cmNlSUQgPSAwOwogCiB1c2luZyBCcmVh
a3BvaW50SUQgPSBzaXplX3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5oCmluZGV4IDk1YmQxZjMyYjAxOTI4OGRlNzczM2E3
OTBlZDIzYWE0MmE2MTRhZjAuLjBiMzc3Mzc0ZThlNmNmZWJhNWI5MTE5YWUzOThmMTYwMTA3Y2U1
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNjcmlw
dENhbGxGcmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSmF2YVNj
cmlwdENhbGxGcmFtZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOC0yMDIxIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgSmF2YVNjcmlwdENhbGxGcmFtZSogY2FsbGVyKCk7Ci0gICAgaW50cHRyX3Qgc291cmNl
SUQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2FsbEZyYW1lLT5zb3VyY2VJRCgpOyB9Cisg
ICAgSlNDOjpTb3VyY2VJRCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJDYWxs
RnJhbWUtPnNvdXJjZUlEKCk7IH0KICAgICBjb25zdCBUZXh0UG9zaXRpb24gcG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2FsbEZyYW1lLT5wb3NpdGlvbigpOyB9CiAgICAgaW50
IGxpbmUoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnZ2VyQ2FsbEZyYW1lLT5saW5lKCk7IH0KICAg
ICBpbnQgY29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z2dlckNhbGxGcmFtZS0+Y29sdW1u
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1Nj
cmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCmluZGV4IDk2YTM1Y2ViZThiYjY0MjU4MjlhNzI5MWZm
MDI5ZmNlNGMyM2E4ZWIuLjQxYWNjODU3YzY3NjhjOWY2YmE5ODMwYTcxYWEwMmZhOTM0NzZmOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0
YWNrRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5LmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICB1bnNpZ25lZCBsaW5lOwogICAgICAgICAgICAgdW5zaWduZWQgY29sdW1uOwogICAgICAg
ICAgICAgdmlzaXRvci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKLSAgICAg
ICAgICAgIG1fZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUodmlzaXRvci0+ZnVuY3Rpb25O
YW1lKCksIHZpc2l0b3ItPnNvdXJjZVVSTCgpLCBzdGF0aWNfY2FzdDxTb3VyY2VJRD4odmlzaXRv
ci0+c291cmNlSUQoKSksIGxpbmUsIGNvbHVtbikpOworICAgICAgICAgICAgbV9mcmFtZXMuYXBw
ZW5kKFNjcmlwdENhbGxGcmFtZSh2aXNpdG9yLT5mdW5jdGlvbk5hbWUoKSwgdmlzaXRvci0+c291
cmNlVVJMKCksIHZpc2l0b3ItPnNvdXJjZUlEKCksIGxpbmUsIGNvbHVtbikpOwogCiAgICAgICAg
ICAgICBtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlLS07CiAgICAgICAgICAgICBy
ZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKQEAgLTE2MCw3ICsxNjAsNyBAQCBSZWY8U2Ny
aXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsbwogICAgICAgICB1bnNpZ25lZCBjb2x1bW47CiAgICAgICAgIHN0YWNr
VHJhY2VbaV0uY29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsKICAgICAgICAgU3Ry
aW5nIGZ1bmN0aW9uTmFtZSA9IHN0YWNrVHJhY2VbaV0uZnVuY3Rpb25OYW1lKHZtKTsKLSAgICAg
ICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoZnVuY3Rpb25OYW1lLCBzdGFja1RyYWNl
W2ldLnNvdXJjZVVSTCgpLCBzdGF0aWNfY2FzdDxTb3VyY2VJRD4oc3RhY2tUcmFjZVtpXS5zb3Vy
Y2VJRCgpKSwgbGluZSwgY29sdW1uKSk7CisgICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2Fs
bEZyYW1lKGZ1bmN0aW9uTmFtZSwgc3RhY2tUcmFjZVtpXS5zb3VyY2VVUkwoKSwgc3RhY2tUcmFj
ZVtpXS5zb3VyY2VJRCgpLCBsaW5lLCBjb2x1bW4pKTsKICAgICB9CiAKICAgICAvLyBGYWxsYmFj
ayB0byBnZXR0aW5nIGF0IGxlYXN0IHRoZSBsaW5lIGFuZCBzb3VyY2VVUkwgZnJvbSB0aGUgZXhj
ZXB0aW9uIG9iamVjdCBpZiBpdCBoYXMgdmFsdWVzIGFuZCB0aGUgZXhjZXB0aW9uU3RhY2sgZG9l
c24ndC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFj
a1Zpc2l0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlz
aXRvci5jcHAKaW5kZXggNTdhMWJkYjZkYmQ1YjE2MDY5MWM2NTY1MGZjMGQ0NWRiZTgwOWVhYi4u
NGI1ZmZjNmFkMDk4YWE4YjhiNWQ2ZmUzMjNkZTQ1OWM3MDQ0ZjEwYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKQEAgLTM1MSw3
ICszNTEsNyBAQCBTdHJpbmcgU3RhY2tWaXNpdG9yOjpGcmFtZTo6dG9TdHJpbmcoKSBjb25zdAog
ICAgIHJldHVybiBtYWtlU3RyaW5nKGZ1bmN0aW9uTmFtZSwgc2VwYXJhdG9yLCBzb3VyY2VVUkws
ICc6JywgbGluZSwgJzonLCBjb2x1bW4pOwogfQogCi1pbnRwdHJfdCBTdGFja1Zpc2l0b3I6OkZy
YW1lOjpzb3VyY2VJRCgpCitTb3VyY2VJRCBTdGFja1Zpc2l0b3I6OkZyYW1lOjpzb3VyY2VJRCgp
CiB7CiAgICAgaWYgKENvZGVCbG9jayogY29kZUJsb2NrID0gdGhpcy0+Y29kZUJsb2NrKCkpCiAg
ICAgICAgIHJldHVybiBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgpLT5zb3VyY2VJRCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRv
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCmlu
ZGV4IDBiYjlhZjU4MTVhNTEwNjNhMDNiMzIwMDA0MTM2MTg4NGNlNmRmMjcuLjE0ZGRhOWZhYWEz
YzhmNDFmOGRiZjRiY2U5YmE1YzliMGIzYzNjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lu
Y2x1ZGUgIkJ5dGVjb2RlSW5kZXguaCIKICNpbmNsdWRlICJDYWxsZWVCaXRzLmgiCisjaW5jbHVk
ZSAiU291cmNlSUQuaCIKICNpbmNsdWRlICJXYXNtSW5kZXhPck5hbWUuaCIKICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSW5kZW50ZXIuaD4KQEAgLTg3LDcgKzg4LDcg
QEAgcHVibGljOgogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcgc291cmNlVVJMKCkg
Y29uc3Q7CiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyB0b1N0cmluZygpIGNvbnN0
OwogCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIGludHB0cl90IHNvdXJjZUlEKCk7CisgICAg
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFNvdXJjZUlEIHNvdXJjZUlEKCk7CiAKICAgICAgICAgQ29k
ZVR5cGUgY29kZVR5cGUoKSBjb25zdDsKICAgICAgICAgYm9vbCBoYXNMaW5lQW5kQ29sdW1uSW5m
bygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IGE0MjRjZjFm
YWZmYWJkYTc0NTc2NzY1YzI1MzE3NTQyZjVlZmM1NzUuLmUzMGViODE0YjllMjAyNmVjNGUyYWEz
NjQyOTI0ODM4OTJmZTczMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAg
LTE4OTgsNyArMTg5OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTY29wZU5vZGUoUGFy
c2VyQXJlbmEmLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0LCBjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGVuZCwgY29uc3QgU291cmNlQ29kZSYsIFNvdXJjZUVsZW1lbnRzKiwgVmFyaWFibGVF
bnZpcm9ubWVudCYmLCBGdW5jdGlvblN0YWNrJiYsIFZhcmlhYmxlRW52aXJvbm1lbnQmJiwgVW5p
cXVlZFN0cmluZ0ltcGxQdHJTZXQmJiwgQ29kZUZlYXR1cmVzLCBMZXhpY2FsU2NvcGVGZWF0dXJl
cywgSW5uZXJBcnJvd0Z1bmN0aW9uQ29kZUZlYXR1cmVzLCBpbnQgbnVtQ29uc3RhbnRzKTsKIAog
ICAgICAgICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZTsgfQotICAgICAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
LnByb3ZpZGVySUQoKTsgfQorICAgICAgICBTb3VyY2VJRCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlLnByb3ZpZGVySUQoKTsgfQogCiAgICAgICAgIGludCBzdGFydExpbmUoKSBj
b25zdCB7IHJldHVybiBtX3N0YXJ0TGluZU51bWJlcjsgfQogICAgICAgICBpbnQgc3RhcnRTdGFy
dE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRTdGFydE9mZnNldDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaAppbmRleCA5OTJkODlhMjEwM2RlMzZjMGZk
ZDY3NWE1M2ZmOGIxMzEwYzAxZjM1Li44NmZlMTI0YTg3M2NlNzUxYzYwYWVlYzhkNzkwNzM5NjM5
YTRjMzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNv
ZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZUNvZGUuaApAQCAt
MzIsNzkgKzMyLDc5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0gICAgY2xhc3MgU291cmNlQ29k
ZSA6IHB1YmxpYyBVbmxpbmtlZFNvdXJjZUNvZGUgewotICAgICAgICBmcmllbmQgY2xhc3MgQ2Fj
aGVkU291cmNlQ29kZTsKLSAgICAgICAgZnJpZW5kIGNsYXNzIENhY2hlZFNvdXJjZUNvZGVXaXRo
b3V0UHJvdmlkZXI7Ci0KLSAgICBwdWJsaWM6Ci0gICAgICAgIFNvdXJjZUNvZGUoKQotICAgICAg
ICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoKQotICAgICAgICAgICAgLCBtX2ZpcnN0TGluZShP
cmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKQotICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1u
KE9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCkpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0g
ICAgICAgIFNvdXJjZUNvZGUoUmVmPFNvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyKQotICAgICAg
ICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoV1RGTW92ZShwcm92aWRlcikpCi0gICAgICAgIHsK
LSAgICAgICAgfQotCi0gICAgICAgIFNvdXJjZUNvZGUoUmVmPFNvdXJjZVByb3ZpZGVyPiYmIHBy
b3ZpZGVyLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pCi0gICAgICAgICAgICA6IFVu
bGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3ZpZGVyKSkKLSAgICAgICAgICAgICwgbV9maXJz
dExpbmUoT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6bWF4KGZpcnN0TGluZSwg
MSkpKQotICAgICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVC
YXNlZEludChzdGQ6Om1heChzdGFydENvbHVtbiwgMSkpKQotICAgICAgICB7Ci0gICAgICAgIH0K
LQotICAgICAgICBTb3VyY2VDb2RlKFJlZlB0cjxTb3VyY2VQcm92aWRlcj4mJiBwcm92aWRlciwg
aW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRD
b2x1bW4pCi0gICAgICAgICAgICA6IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3ZpZGVy
KSwgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCkKLSAgICAgICAgICAgICwgbV9maXJzdExpbmUoT3Jk
aW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6bWF4KGZpcnN0TGluZSwgMSkpKQotICAg
ICAgICAgICAgLCBtX3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChz
dGQ6Om1heChzdGFydENvbHVtbiwgMSkpKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAg
ICBPcmRpbmFsTnVtYmVyIGZpcnN0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RMaW5lOyB9
Ci0gICAgICAgIE9yZGluYWxOdW1iZXIgc3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3N0
YXJ0Q29sdW1uOyB9Ci0KLSAgICAgICAgaW50cHRyX3QgcHJvdmlkZXJJRCgpIGNvbnN0Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIGlmICghbV9wcm92aWRlcikKLSAgICAgICAgICAgICAgICByZXR1
cm4gU291cmNlUHJvdmlkZXI6Om51bGxJRDsKLSAgICAgICAgICAgIHJldHVybiBtX3Byb3ZpZGVy
LT5hc0lEKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBTb3VyY2VQcm92aWRlciogcHJvdmlkZXIo
KSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyLmdldCgpOyB9Ci0KLSAgICAgICAgU291cmNlQ29k
ZSBzdWJFeHByZXNzaW9uKHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwg
aW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKSBjb25zdDsKLQotICAgICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgU291cmNlQ29kZSYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBtX2ZpcnN0TGluZSA9PSBvdGhlci5tX2ZpcnN0TGluZQotICAgICAgICAg
ICAgICAgICYmIG1fc3RhcnRDb2x1bW4gPT0gb3RoZXIubV9zdGFydENvbHVtbgotICAgICAgICAg
ICAgICAgICYmIG1fcHJvdmlkZXIgPT0gb3RoZXIubV9wcm92aWRlcgotICAgICAgICAgICAgICAg
ICYmIG1fc3RhcnRPZmZzZXQgPT0gb3RoZXIubV9zdGFydE9mZnNldAotICAgICAgICAgICAgICAg
ICYmIG1fZW5kT2Zmc2V0ID09IG90aGVyLm1fZW5kT2Zmc2V0OwotICAgICAgICB9Ci0KLSAgICAg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNvdXJjZUNvZGUmIG90aGVyKSBjb25zdAotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgICAgIH0KLQot
ICAgIHByaXZhdGU6Ci0gICAgICAgIE9yZGluYWxOdW1iZXIgbV9maXJzdExpbmU7Ci0gICAgICAg
IE9yZGluYWxOdW1iZXIgbV9zdGFydENvbHVtbjsKLSAgICB9OwotCi0gICAgaW5saW5lIFNvdXJj
ZUNvZGUgbWFrZVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU291cmNlT3JpZ2lu
JiBzb3VyY2VPcmlnaW4sIFN0cmluZyBmaWxlbmFtZSA9IFN0cmluZygpLCBjb25zdCBUZXh0UG9z
aXRpb24mIHN0YXJ0UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3Vy
Y2VUeXBlIHNvdXJjZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCitj
bGFzcyBTb3VyY2VDb2RlIDogcHVibGljIFVubGlua2VkU291cmNlQ29kZSB7CisgICAgZnJpZW5k
IGNsYXNzIENhY2hlZFNvdXJjZUNvZGU7CisgICAgZnJpZW5kIGNsYXNzIENhY2hlZFNvdXJjZUNv
ZGVXaXRob3V0UHJvdmlkZXI7CisKK3B1YmxpYzoKKyAgICBTb3VyY2VDb2RlKCkKKyAgICAgICAg
OiBVbmxpbmtlZFNvdXJjZUNvZGUoKQorICAgICAgICAsIG1fZmlyc3RMaW5lKE9yZGluYWxOdW1i
ZXI6OmJlZm9yZUZpcnN0KCkpCisgICAgICAgICwgbV9zdGFydENvbHVtbihPcmRpbmFsTnVtYmVy
OjpiZWZvcmVGaXJzdCgpKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFNvdXJjZUNvZGUoU3RyaW5n
U291cmNlUHJvdmlkZXI6OmNyZWF0ZShzb3VyY2UsIHNvdXJjZU9yaWdpbiwgV1RGTW92ZShmaWxl
bmFtZSksIHN0YXJ0UG9zaXRpb24sIHNvdXJjZVR5cGUpLCBzdGFydFBvc2l0aW9uLm1fbGluZS5v
bmVCYXNlZEludCgpLCBzdGFydFBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50KCkpOwogICAg
IH0KLSAgICAKLSAgICBpbmxpbmUgU291cmNlQ29kZSBTb3VyY2VDb2RlOjpzdWJFeHByZXNzaW9u
KHVuc2lnbmVkIG9wZW5CcmFjZSwgdW5zaWduZWQgY2xvc2VCcmFjZSwgaW50IGZpcnN0TGluZSwg
aW50IHN0YXJ0Q29sdW1uKSBjb25zdAorCisgICAgU291cmNlQ29kZShSZWY8U291cmNlUHJvdmlk
ZXI+JiYgcHJvdmlkZXIpCisgICAgICAgIDogVW5saW5rZWRTb3VyY2VDb2RlKFdURk1vdmUocHJv
dmlkZXIpKQorICAgIHsKKyAgICB9CisKKyAgICBTb3VyY2VDb2RlKFJlZjxTb3VyY2VQcm92aWRl
cj4mJiBwcm92aWRlciwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKQorICAgICAgICA6
IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3ZpZGVyKSkKKyAgICAgICAgLCBtX2ZpcnN0
TGluZShPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjptYXgoZmlyc3RMaW5lLCAx
KSkpCisgICAgICAgICwgbV9zdGFydENvbHVtbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJ
bnQoc3RkOjptYXgoc3RhcnRDb2x1bW4sIDEpKSkKKyAgICB7CisgICAgfQorCisgICAgU291cmNl
Q29kZShSZWZQdHI8U291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIsIGludCBzdGFydE9mZnNldCwg
aW50IGVuZE9mZnNldCwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKQorICAgICAgICA6
IFVubGlua2VkU291cmNlQ29kZShXVEZNb3ZlKHByb3ZpZGVyKSwgc3RhcnRPZmZzZXQsIGVuZE9m
ZnNldCkKKyAgICAgICAgLCBtX2ZpcnN0TGluZShPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJ
bnQoc3RkOjptYXgoZmlyc3RMaW5lLCAxKSkpCisgICAgICAgICwgbV9zdGFydENvbHVtbihPcmRp
bmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjptYXgoc3RhcnRDb2x1bW4sIDEpKSkKKyAg
ICB7CisgICAgfQorCisgICAgT3JkaW5hbE51bWJlciBmaXJzdExpbmUoKSBjb25zdCB7IHJldHVy
biBtX2ZpcnN0TGluZTsgfQorICAgIE9yZGluYWxOdW1iZXIgc3RhcnRDb2x1bW4oKSBjb25zdCB7
IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9CisKKyAgICBTb3VyY2VJRCBwcm92aWRlcklEKCkgY29u
c3QKKyAgICB7CisgICAgICAgIGlmICghbV9wcm92aWRlcikKKyAgICAgICAgICAgIHJldHVybiBT
b3VyY2VQcm92aWRlcjo6bnVsbElEOworICAgICAgICByZXR1cm4gbV9wcm92aWRlci0+YXNJRCgp
OworICAgIH0KKworICAgIFNvdXJjZVByb3ZpZGVyKiBwcm92aWRlcigpIGNvbnN0IHsgcmV0dXJu
IG1fcHJvdmlkZXIuZ2V0KCk7IH0KKworICAgIFNvdXJjZUNvZGUgc3ViRXhwcmVzc2lvbih1bnNp
Z25lZCBvcGVuQnJhY2UsIHVuc2lnbmVkIGNsb3NlQnJhY2UsIGludCBmaXJzdExpbmUsIGludCBz
dGFydENvbHVtbikgY29uc3Q7CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU291cmNlQ29k
ZSYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICBzdGFydENvbHVtbiArPSAxOyAvLyBDb252
ZXJ0IHRvIGJhc2UgMS4KLSAgICAgICAgcmV0dXJuIFNvdXJjZUNvZGUoUmVmUHRyPFNvdXJjZVBy
b3ZpZGVyPiB7IHByb3ZpZGVyKCkgfSwgb3BlbkJyYWNlLCBjbG9zZUJyYWNlICsgMSwgZmlyc3RM
aW5lLCBzdGFydENvbHVtbik7CisgICAgICAgIHJldHVybiBtX2ZpcnN0TGluZSA9PSBvdGhlci5t
X2ZpcnN0TGluZQorICAgICAgICAgICAgJiYgbV9zdGFydENvbHVtbiA9PSBvdGhlci5tX3N0YXJ0
Q29sdW1uCisgICAgICAgICAgICAmJiBtX3Byb3ZpZGVyID09IG90aGVyLm1fcHJvdmlkZXIKKyAg
ICAgICAgICAgICYmIG1fc3RhcnRPZmZzZXQgPT0gb3RoZXIubV9zdGFydE9mZnNldAorICAgICAg
ICAgICAgJiYgbV9lbmRPZmZzZXQgPT0gb3RoZXIubV9lbmRPZmZzZXQ7CiAgICAgfQogCisgICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IFNvdXJjZUNvZGUmIG90aGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBP
cmRpbmFsTnVtYmVyIG1fZmlyc3RMaW5lOworICAgIE9yZGluYWxOdW1iZXIgbV9zdGFydENvbHVt
bjsKK307CisKK2lubGluZSBTb3VyY2VDb2RlIG1ha2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3Vy
Y2UsIGNvbnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgZmlsZW5hbWUgPSBT
dHJpbmcoKSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9u
KCksIFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJT
b3VyY2VUeXBlOjpQcm9ncmFtKQoreworICAgIHJldHVybiBTb3VyY2VDb2RlKFN0cmluZ1NvdXJj
ZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VPcmlnaW4sIFdURk1vdmUoZmlsZW5hbWUp
LCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQb3NpdGlvbi5tX2xpbmUub25lQmFz
ZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVCYXNlZEludCgpKTsKK30KKworaW5s
aW5lIFNvdXJjZUNvZGUgU291cmNlQ29kZTo6c3ViRXhwcmVzc2lvbih1bnNpZ25lZCBvcGVuQnJh
Y2UsIHVuc2lnbmVkIGNsb3NlQnJhY2UsIGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVtbikg
Y29uc3QKK3sKKyAgICBzdGFydENvbHVtbiArPSAxOyAvLyBDb252ZXJ0IHRvIGJhc2UgMS4KKyAg
ICByZXR1cm4gU291cmNlQ29kZShSZWZQdHI8U291cmNlUHJvdmlkZXI+IHsgcHJvdmlkZXIoKSB9
LCBvcGVuQnJhY2UsIGNsb3NlQnJhY2UgKyAxLCBmaXJzdExpbmUsIHN0YXJ0Q29sdW1uKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlUHJvdmlkZXIuY3BwCmluZGV4IDYwNmU1ZjE3NDRhZjBmNjEwZGRjY2U3NjFiYzkzZTMy
MjNiOTUzZGIuLjJiZDU1OWIzNTNjMzg3YTVmNjAxMjVjMjM2Y2ZjOTRlMjg5OTI3YzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDgg
KzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTb3VyY2VQcm92aWRlci5o
IgogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KLQogbmFtZXNwYWNlIEpTQyB7CiAKIERFRklORV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIpOwpAQCAt
NDQsMTMgKzQyLDEwIEBAIFNvdXJjZVByb3ZpZGVyOjp+U291cmNlUHJvdmlkZXIoKQogewogfQog
Ci1zdGF0aWMgTG9jayBwcm92aWRlcklkTG9jazsKLQogdm9pZCBTb3VyY2VQcm92aWRlcjo6Z2V0
SUQoKQogewotICAgIExvY2tlciBsb2NrZXIgeyBwcm92aWRlcklkTG9jayB9OwogICAgIGlmICgh
bV9pZCkgewotICAgICAgICBzdGF0aWMgaW50cHRyX3QgbmV4dFByb3ZpZGVySUQgPSAwOworICAg
ICAgICBzdGF0aWMgc3RkOjphdG9taWM8U291cmNlSUQ+IG5leHRQcm92aWRlcklEID0gbnVsbElE
OwogICAgICAgICBtX2lkID0gKytuZXh0UHJvdmlkZXJJRDsKICAgICAgICAgUkVMRUFTRV9BU1NF
UlQobV9pZCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Tb3VyY2VQcm92aWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQ
cm92aWRlci5oCmluZGV4IDEyOWVlNWM0OWUyNDdhZmNkOWYwOGQ1OWVmZTlmYjEyOGY5YWJiZTEu
LmRjNjE2NjBiOGZjYzZhMDE2NGQ2ODgyZjg3NTIxNWE2OTUyYzM5Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OSw3ICs3OSw3IEBA
IGNsYXNzIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIFRleHRQb3NpdGlvbiBz
dGFydFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFBvc2l0aW9uOyB9CiAgICAgICAg
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2VUeXBlOyB9CiAKLSAgICAgICAgaW50cHRyX3QgYXNJRCgpCisgICAgICAgIFNvdXJjZUlE
IGFzSUQoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIW1faWQpCiAgICAgICAgICAgICAg
ICAgZ2V0SUQoKTsKQEAgLTk4LDcgKzk4LDcgQEAgY2xhc3MgVW5saW5rZWRGdW5jdGlvbkNvZGVC
bG9jazsKICAgICAgICAgU3RyaW5nIG1fc291cmNlVVJMRGlyZWN0aXZlOwogICAgICAgICBTdHJp
bmcgbV9zb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlOwogICAgICAgICBUZXh0UG9zaXRpb24gbV9z
dGFydFBvc2l0aW9uOwotICAgICAgICB1aW50cHRyX3QgbV9pZCB7IDAgfTsKKyAgICAgICAgU291
cmNlSUQgbV9pZCB7IDAgfTsKICAgICB9OwogCiAgICAgREVDTEFSRV9BTExPQ0FUT1JfV0lUSF9I
RUFQX0lERU5USUZJRVIoU3RyaW5nU291cmNlUHJvdmlkZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNwcAppbmRleCBlYmI0
Mjk5MmQwZTJkM2VlYjExZmEzMDZiZGQ2N2UzMjZhOGI0ZTcyLi44ODg3ZDY4MmJmZTBjNzYxMjY2
ZmE3ZTVhY2VjMTljODJkMDQ0MTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmNwcApAQCAtNDQsNyArNDQsNyBAQCBDb250
cm9sRmxvd1Byb2ZpbGVyOjp+Q29udHJvbEZsb3dQcm9maWxlcigpCiAgICAgfQogfQogCi1CYXNp
Y0Jsb2NrTG9jYXRpb24qIENvbnRyb2xGbG93UHJvZmlsZXI6OmdldEJhc2ljQmxvY2tMb2NhdGlv
bihpbnRwdHJfdCBzb3VyY2VJRCwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0KQorQmFz
aWNCbG9ja0xvY2F0aW9uKiBDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2NrTG9jYXRp
b24oU291cmNlSUQgc291cmNlSUQsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCkKIHsK
ICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc291cmNlSURCdWNrZXRzLmFkZChzb3VyY2VJRCwgQmxv
Y2tMb2NhdGlvbkNhY2hlKCkpOwogICAgIEJsb2NrTG9jYXRpb25DYWNoZSYgYmxvY2tMb2NhdGlv
bkNhY2hlID0gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKQEAgLTY2LDcgKzY2LDcgQEAgdm9p
ZCBDb250cm9sRmxvd1Byb2ZpbGVyOjpkdW1wRGF0YSgpIGNvbnN0CiAgICAgfQogfQogCi1WZWN0
b3I8QmFzaWNCbG9ja1JhbmdlPiBDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2Nrc0Zv
clNvdXJjZUlEKGludHB0cl90IHNvdXJjZUlELCBWTSYgdm0pIGNvbnN0IAorVmVjdG9yPEJhc2lj
QmxvY2tSYW5nZT4gQ29udHJvbEZsb3dQcm9maWxlcjo6Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJ
RChTb3VyY2VJRCBzb3VyY2VJRCwgVk0mIHZtKSBjb25zdAogewogICAgIFZlY3RvcjxCYXNpY0Js
b2NrUmFuZ2U+IHJlc3VsdCgwKTsKICAgICBhdXRvIGJ1Y2tldEZpbmRSZXN1bHQgPSBtX3NvdXJj
ZUlEQnVja2V0cy5maW5kKHNvdXJjZUlEKTsKQEAgLTEyMCwxNCArMTIwLDE0IEBAIHN0YXRpYyBC
YXNpY0Jsb2NrUmFuZ2UgZmluZEJhc2ljQmxvY2tBdFRleHRPZmZzZXQoaW50IG9mZnNldCwgY29u
c3QgVmVjdG9yPEJhc2ljCiAgICAgcmV0dXJuIGJlc3RSYW5nZTsKIH0KIAotYm9vbCBDb250cm9s
Rmxvd1Byb2ZpbGVyOjpoYXNCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVkKGludCBv
ZmZzZXQsIGludHB0cl90IHNvdXJjZUlELCBWTSYgdm0pCitib29sIENvbnRyb2xGbG93UHJvZmls
ZXI6Omhhc0Jhc2ljQmxvY2tBdFRleHRPZmZzZXRCZWVuRXhlY3V0ZWQoaW50IG9mZnNldCwgU291
cmNlSUQgc291cmNlSUQsIFZNJiB2bSkKIHsKICAgICBjb25zdCBWZWN0b3I8QmFzaWNCbG9ja1Jh
bmdlPiYgYmxvY2tzID0gZ2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRChzb3VyY2VJRCwgdm0pOwog
ICAgIEJhc2ljQmxvY2tSYW5nZSByYW5nZSA9IGZpbmRCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0KG9m
ZnNldCwgYmxvY2tzKTsKICAgICByZXR1cm4gcmFuZ2UubV9oYXNFeGVjdXRlZDsKIH0KIAotc2l6
ZV90IENvbnRyb2xGbG93UHJvZmlsZXI6OmJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9m
ZnNldChpbnQgb2Zmc2V0LCBpbnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZtKQorc2l6ZV90IENvbnRy
b2xGbG93UHJvZmlsZXI6OmJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldChpbnQg
b2Zmc2V0LCBTb3VyY2VJRCBzb3VyY2VJRCwgVk0mIHZtKQogewogICAgIGNvbnN0IFZlY3RvcjxC
YXNpY0Jsb2NrUmFuZ2U+JiBibG9ja3MgPSBnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKHNvdXJj
ZUlELCB2bSk7CiAgICAgQmFzaWNCbG9ja1JhbmdlIHJhbmdlID0gZmluZEJhc2ljQmxvY2tBdFRl
eHRPZmZzZXQob2Zmc2V0LCBibG9ja3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5oCmluZGV4IDFjNDk1NTlmNTIwNTA3OWEyYzZk
MmRiNGRjZTBiNTM2M2QyYjlkNTUuLjZkY2ExNGRlNjIxMTdlODJmNGE3NmVkNzc0OTQ1MGRiZjk3
NjE5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xG
bG93UHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db250cm9s
Rmxvd1Byb2ZpbGVyLmgKQEAgLTkxLDE2ICs5MSwxNiBAQCBjbGFzcyBDb250cm9sRmxvd1Byb2Zp
bGVyIHsKIHB1YmxpYzoKICAgICBDb250cm9sRmxvd1Byb2ZpbGVyKCk7CiAgICAgfkNvbnRyb2xG
bG93UHJvZmlsZXIoKTsKLSAgICBCYXNpY0Jsb2NrTG9jYXRpb24qIGdldEJhc2ljQmxvY2tMb2Nh
dGlvbihpbnRwdHJfdCBzb3VyY2VJRCwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0KTsK
KyAgICBCYXNpY0Jsb2NrTG9jYXRpb24qIGdldEJhc2ljQmxvY2tMb2NhdGlvbihTb3VyY2VJRCwg
aW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0KTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2
b2lkIGR1bXBEYXRhKCkgY29uc3Q7Ci0gICAgVmVjdG9yPEJhc2ljQmxvY2tSYW5nZT4gZ2V0QmFz
aWNCbG9ja3NGb3JTb3VyY2VJRChpbnRwdHJfdCBzb3VyY2VJRCwgVk0mKSBjb25zdDsKKyAgICBW
ZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiBnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEKFNvdXJjZUlE
LCBWTSYpIGNvbnN0OwogICAgIEJhc2ljQmxvY2tMb2NhdGlvbiogZHVtbXlCYXNpY0Jsb2NrKCkg
eyByZXR1cm4gJm1fZHVtbXlCYXNpY0Jsb2NrOyB9Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9v
bCBoYXNCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVkKGludCwgaW50cHRyX3QsIFZN
Jik7ICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3IgdGVzdGluZy4KLSAgICBKU19FWFBPUlRf
UFJJVkFURSBzaXplX3QgYmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50QXRUZXh0T2Zmc2V0KGludCwg
aW50cHRyX3QsIFZNJik7IC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGZvciB0ZXN0aW5nLgorICAg
IEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaGFzQmFzaWNCbG9ja0F0VGV4dE9mZnNldEJlZW5FeGVj
dXRlZChpbnQsIFNvdXJjZUlELCBWTSYpOyAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3IgdGVz
dGluZy4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBzaXplX3QgYmFzaWNCbG9ja0V4ZWN1dGlvbkNv
dW50QXRUZXh0T2Zmc2V0KGludCwgU291cmNlSUQsIFZNJik7IC8vIFRoaXMgZnVuY3Rpb24gZXhp
c3RzIGZvciB0ZXN0aW5nLgogCiBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxCYXNpY0Js
b2NrS2V5LCBCYXNpY0Jsb2NrTG9jYXRpb24qPiBCbG9ja0xvY2F0aW9uQ2FjaGU7Ci0gICAgdHlw
ZWRlZiBIYXNoTWFwPGludHB0cl90LCBCbG9ja0xvY2F0aW9uQ2FjaGU+IFNvdXJjZUlEQnVja2V0
czsKKyAgICB0eXBlZGVmIEhhc2hNYXA8U291cmNlSUQsIEJsb2NrTG9jYXRpb25DYWNoZT4gU291
cmNlSURCdWNrZXRzOwogCiAgICAgU291cmNlSURCdWNrZXRzIG1fc291cmNlSURCdWNrZXRzOwog
ICAgIEJhc2ljQmxvY2tMb2NhdGlvbiBtX2R1bW15QmFzaWNCbG9jazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUu
Y3BwCmluZGV4IGE4YWFkYWRmZDE3NDJhYjRlMTFmN2NiODEzYTI5Y2Y5YWZlZDIzODUuLjY4YzA2
MDZiMDcxMzEyNGM3YWExNzBjMWRhMmQ5OTZkOGUxNGUzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNw
cApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotYm9vbCBGdW5jdGlvbkhh
c0V4ZWN1dGVkQ2FjaGU6Omhhc0V4ZWN1dGVkQXRPZmZzZXQoaW50cHRyX3QgaWQsIHVuc2lnbmVk
IG9mZnNldCkKK2Jvb2wgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zm
c2V0KFNvdXJjZUlEIGlkLCB1bnNpZ25lZCBvZmZzZXQpCiB7CiAgICAgaWYgKG1fcmFuZ2VNYXAu
ZmluZChpZCkgPT0gbV9yYW5nZU1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
NDksNyArNDksNyBAQCBib29sIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6aGFzRXhlY3V0ZWRB
dE9mZnNldChpbnRwdHJfdCBpZCwgdW5zaWduZWQgb2Zmc2V0KQogICAgIHJldHVybiBoYXNFeGVj
dXRlZDsKIH0KIAotdm9pZCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0
ZWRSYW5nZShpbnRwdHJfdCBpZCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkgCit2b2lk
IEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6aW5zZXJ0VW5leGVjdXRlZFJhbmdlKFNvdXJjZUlE
IGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKQogewogICAgIGlmIChtX3JhbmdlTWFw
LmZpbmQoaWQpID09IG1fcmFuZ2VNYXAuZW5kKCkpIHsKICAgICAgICAgUmFuZ2VNYXAgbWFwOwpA
QCAtNjYsNyArNjYsNyBAQCB2b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6aW5zZXJ0VW5l
eGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydAogICAgICAgICBtYXBbcmFu
Z2VdID0gZmFsc2U7CiB9CiAKLXZvaWQgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpyZW1vdmVV
bmV4ZWN1dGVkUmFuZ2UoaW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQp
Cit2b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdlKFNv
dXJjZUlEIGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKQogewogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgbmV2ZXIgaGF2ZSBhbiBpbnN0YW5jZSB3aGVyZSB3ZSByZXR1cm4gaGVyZSwg
YnV0IGN1cnJlbnRseSBkbyBpbiBzb21lIHNpdHVhdGlvbnMuIEZpbmQgb3V0IHdoeS4KICAgICBp
ZiAobV9yYW5nZU1hcC5maW5kKGlkKSA9PSBtX3JhbmdlTWFwLmVuZCgpKQpAQCAtODAsNyArODAs
NyBAQCB2b2lkIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdl
KGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydAogICAgIG1hcFtyYW5nZV0gPSB0cnVlOwogfQog
Ci1WZWN0b3I8c3RkOjp0dXBsZTxib29sLCB1bnNpZ25lZCwgdW5zaWduZWQ+PiBGdW5jdGlvbkhh
c0V4ZWN1dGVkQ2FjaGU6OmdldEZ1bmN0aW9uUmFuZ2VzKGludHB0cl90IGlkKQorVmVjdG9yPHN0
ZDo6dHVwbGU8Ym9vbCwgdW5zaWduZWQsIHVuc2lnbmVkPj4gRnVuY3Rpb25IYXNFeGVjdXRlZENh
Y2hlOjpnZXRGdW5jdGlvblJhbmdlcyhTb3VyY2VJRCBpZCkKIHsKICAgICBWZWN0b3I8c3RkOjp0
dXBsZTxib29sLCB1bnNpZ25lZCwgdW5zaWduZWQ+PiByYW5nZXMoMCk7CiAgICAgYXV0byBmaW5k
UmVzdWx0ID0gbV9yYW5nZU1hcC5maW5kKGlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmgKaW5kZXggOWUyYjIw
Y2ZmNzA1OWM0NDE1ZDhjNjc5MjM1YjMyNjAyNTcxMjg2ZS4uY2FhOTJkNmZlZTY0ZTg4YmRmYzRm
MDBiNmEzNzJlMmI4MTljY2Q5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmgKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTb3VyY2VJRC5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWV0aG9kLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZFVub3JkZXJlZE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KQEAgLTQ4LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHVuc2ln
bmVkIG1fZW5kOwogICAgIH07CiAKLSAgICBib29sIGhhc0V4ZWN1dGVkQXRPZmZzZXQoaW50cHRy
X3QgaWQsIHVuc2lnbmVkIG9mZnNldCk7Ci0gICAgdm9pZCBpbnNlcnRVbmV4ZWN1dGVkUmFuZ2Uo
aW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOwotICAgIHZvaWQgcmVt
b3ZlVW5leGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQg
ZW5kKTsKLSAgICBWZWN0b3I8c3RkOjp0dXBsZTxib29sLCB1bnNpZ25lZCwgdW5zaWduZWQ+PiBn
ZXRGdW5jdGlvblJhbmdlcyhpbnRwdHJfdCBpZCk7CisgICAgYm9vbCBoYXNFeGVjdXRlZEF0T2Zm
c2V0KFNvdXJjZUlELCB1bnNpZ25lZCBvZmZzZXQpOworICAgIHZvaWQgaW5zZXJ0VW5leGVjdXRl
ZFJhbmdlKFNvdXJjZUlELCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kKTsKKyAgICB2b2lk
IHJlbW92ZVVuZXhlY3V0ZWRSYW5nZShTb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGVuZCk7CisgICAgVmVjdG9yPHN0ZDo6dHVwbGU8Ym9vbCwgdW5zaWduZWQsIHVuc2lnbmVkPj4g
Z2V0RnVuY3Rpb25SYW5nZXMoU291cmNlSUQpOwogCiBwcml2YXRlOgogICAgIHVzaW5nIFJhbmdl
TWFwID0gU3RkVW5vcmRlcmVkTWFwPEZ1bmN0aW9uUmFuZ2UsIGJvb2wsIEhhc2hNZXRob2Q8RnVu
Y3Rpb25SYW5nZT4+OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2FtcGxpbmdQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1w
bGluZ1Byb2ZpbGVyLmNwcAppbmRleCBiMjdlOGUzZDY0ZGU4NmYzNWNiNDY3NTg1NzQ2Y2VmYzM5
YTk1YmEyLi43Y2Q3OGM2OTI1ZTJhMmEwMjUzZDYwZGI1NmUzOTg3ZmUyZjg4NzNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApA
QCAtOTE4LDcgKzkxOCw3IEBAIHVuc2lnbmVkIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6
OmZ1bmN0aW9uU3RhcnRDb2x1bW4oKQogICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHVu
c2lnbmVkPjo6bWF4KCk7CiB9CiAKLWludHB0cl90IFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJh
bWU6OnNvdXJjZUlEKCkKK1NvdXJjZUlEIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OnNv
dXJjZUlEKCkKIHsKICAgICBzd2l0Y2ggKGZyYW1lVHlwZSkgewogICAgIGNhc2UgRnJhbWVUeXBl
OjpVbmtub3duOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Ft
cGxpbmdQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQ
cm9maWxlci5oCmluZGV4IDlhZjI3NTY1ZDQ1MTg1ODU0ODVmYzdiOTA3ZmU3M2ZlNWNjYzc0ZGEu
LjU4OGNmZjA2Mjk5ZTRiYWE4MjgyYWZhYjQzNzZkMTBhOWI3MjQ1MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKQEAgLTE0OCw3ICsx
NDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZUZvckpTT05UZXN0cyhW
TSYpOyAvLyBVc2VkIGZvciBKU0Mgc3RyZXNzIHRlc3RzIGJlY2F1c2UgdGhleSB3YW50IHRoZSAi
KGFub255bW91cyBmdW5jdGlvbikiIHN0cmluZyBmb3IgYW5vbnltb3VzIGZ1bmN0aW9ucyBhbmQg
dGhleSB3YW50ICIoZXZhbCkiIGZvciBldmFsJ2QgY29kZS4KICAgICAgICAgaW50IGZ1bmN0aW9u
U3RhcnRMaW5lKCk7CiAgICAgICAgIHVuc2lnbmVkIGZ1bmN0aW9uU3RhcnRDb2x1bW4oKTsKLSAg
ICAgICAgaW50cHRyX3Qgc291cmNlSUQoKTsKKyAgICAgICAgU291cmNlSUQgc291cmNlSUQoKTsK
ICAgICAgICAgU3RyaW5nIHVybCgpOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAppbmRleCBmMzFiZDMzZjZlZTFkMTgyMDI2
N2YzM2JiYTE4NDM4YWM5YjI3N2E2Li43NWRhZWU0YjhmMjhiNWJjMTBlMGU2MWMyMzY5MGU2NDky
MDc1MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRF
eGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhl
Y3V0YWJsZS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICBDb2RlQmxvY2tIYXNoIGhh
c2hGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCkgY29uc3Q7CiAKICAgICBjb25zdCBTb3VyY2VD
b2RlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZTsgfQotICAgIGludHB0cl90IHNv
dXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXJJRCgpOyB9CisgICAgU291
cmNlSUQgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0K
ICAgICBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU9yaWdpbigpOyB9CiAgICAgLy8gVGhpcyBpcyBOT1Qg
dGhlIHBhdGggdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgY29tcHV0aW5nIHJlbGF0aXZlIHBhdGhz
IGZyb20gYSBzY3JpcHQuIFVzZSBTb3VyY2VPcmlnaW4ncyBVUkwgZm9yIHRoYXQsIHRoZSB2YWx1
ZXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIHNhbWUuLi4gVGhpcyBzaG91bGQgb25seSBiZSB1c2Vk
IGZvciBgZXJyb3Iuc291cmNlVVJMYCBhbmQgc3RhY2sgdHJhY2VzLgogICAgIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UucHJvdmlkZXIoKS0+c291cmNl
VVJMKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNr
RnJhbWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAK
aW5kZXggNmVlMWM1YjkyY2Q1NjkxY2YzZTgxNjQzYTZlMTliZTQzNjE4YjlkZi4uNmI4ZjNkZjYz
MzUwNDVkNWFjMjFlZjVhMDgyZDQ4NjgwNGZhM2U2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgU3RhY2tGcmFtZTo6
U3RhY2tGcmFtZShXYXNtOjpJbmRleE9yTmFtZSBpbmRleE9yTmFtZSkKIHsKIH0KIAotaW50cHRy
X3QgU3RhY2tGcmFtZTo6c291cmNlSUQoKSBjb25zdAorU291cmNlSUQgU3RhY2tGcmFtZTo6c291
cmNlSUQoKSBjb25zdAogewogICAgIGlmICghbV9jb2RlQmxvY2spCiAgICAgICAgIHJldHVybiBu
b1NvdXJjZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Rh
Y2tGcmFtZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCmlu
ZGV4IDA2MDlhNTZkNGU3YjIyYWU5YmZjNTE5NmIzYTIxNDBiNGQzZTM4NzcuLjMzYjRhMjBiM2Vm
MjE1NTM0NGUxNTNjMzhlN2E3OTAyM2VlNzFmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdGFja0ZyYW1lLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIAogICAg
IHZvaWQgY29tcHV0ZUxpbmVBbmRDb2x1bW4odW5zaWduZWQmIGxpbmUsIHVuc2lnbmVkJiBjb2x1
bW4pIGNvbnN0OwogICAgIFN0cmluZyBmdW5jdGlvbk5hbWUoVk0mKSBjb25zdDsKLSAgICBpbnRw
dHJfdCBzb3VyY2VJRCgpIGNvbnN0OworICAgIFNvdXJjZUlEIHNvdXJjZUlEKCkgY29uc3Q7CiAg
ICAgU3RyaW5nIHNvdXJjZVVSTCgpIGNvbnN0OwogICAgIFN0cmluZyB0b1N0cmluZyhWTSYpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9j
YXRpb25DYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRp
b25DYWNoZS5jcHAKaW5kZXggMDhkNWI5NjhmMWJhNTcyY2RlNGY0NzM1ZjI0NWU1MmQ1MjE0OWI2
My4uMTUzYjY3NThiYjk0YjEyMWU2NmJiNzQyZWU4NTgzM2Y5YTg3MzY5YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmNwcApAQCAt
MzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RkOjpwYWlyPFR5cGVMb2NhdGlv
biosIGJvb2w+IFR5cGVMb2NhdGlvbkNhY2hlOjpnZXRUeXBlTG9jYXRpb24oR2xvYmFsVmFyaWFi
bGVJRCBnbG9iYWxWYXJpYWJsZUlELCBpbnRwdHJfdCBzb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGVuZCwgUmVmUHRyPFR5cGVTZXQ+JiYgZ2xvYmFsVHlwZVNldCwgVk0qIHZtKQor
c3RkOjpwYWlyPFR5cGVMb2NhdGlvbiosIGJvb2w+IFR5cGVMb2NhdGlvbkNhY2hlOjpnZXRUeXBl
TG9jYXRpb24oR2xvYmFsVmFyaWFibGVJRCBnbG9iYWxWYXJpYWJsZUlELCBTb3VyY2VJRCBzb3Vy
Y2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgUmVmUHRyPFR5cGVTZXQ+JiYgZ2xv
YmFsVHlwZVNldCwgVk0qIHZtKQogewogICAgIExvY2F0aW9uS2V5IGtleTsKICAgICBrZXkubV9n
bG9iYWxWYXJpYWJsZUlEID0gZ2xvYmFsVmFyaWFibGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5oCmluZGV4IDg2NzU4ZTI3MThhMzNj
NDUxMGIyMjM5YjNmZGExODFhYmY3NWVhOTUuLmE4ZTg4YWRiZDE1YWFiODBlMzQxZWU2YTQzMTdh
ZjMxMjQ1MjQwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVMb2NhdGlvbkNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlw
ZUxvY2F0aW9uQ2FjaGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lu
Y2x1ZGUgIlNvdXJjZUlELmgiCiAjaW5jbHVkZSAiVHlwZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSA8
d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1ldGhvZC5oPgpAQCAtNTIsMTIg
KzUzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIEdsb2JhbFZhcmlhYmxlSUQg
bV9nbG9iYWxWYXJpYWJsZUlEOwotICAgICAgICBpbnRwdHJfdCBtX3NvdXJjZUlEOworICAgICAg
ICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgICAgICB1bnNpZ25lZCBtX3N0YXJ0OwogICAgICAg
ICB1bnNpZ25lZCBtX2VuZDsKICAgICB9OwogCi0gICAgc3RkOjpwYWlyPFR5cGVMb2NhdGlvbios
IGJvb2w+IGdldFR5cGVMb2NhdGlvbihHbG9iYWxWYXJpYWJsZUlELCBpbnRwdHJfdCwgdW5zaWdu
ZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgUmVmUHRyPFR5cGVTZXQ+JiYsIFZNKik7CisgICAgc3Rk
OjpwYWlyPFR5cGVMb2NhdGlvbiosIGJvb2w+IGdldFR5cGVMb2NhdGlvbihHbG9iYWxWYXJpYWJs
ZUlELCBTb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgUmVmUHRyPFR5cGVT
ZXQ+JiYsIFZNKik7CiBwcml2YXRlOgogICAgIHVzaW5nIExvY2F0aW9uTWFwID0gU3RkVW5vcmRl
cmVkTWFwPExvY2F0aW9uS2V5LCBUeXBlTG9jYXRpb24qLCBIYXNoTWV0aG9kPExvY2F0aW9uS2V5
Pj47CiAgICAgTG9jYXRpb25NYXAgbV9sb2NhdGlvbk1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCmluZGV4IDYyMjExMzk0OWJlOWE3NTdlZDQw
MGI1MmRhNTEyOThhMzIzZGFiZjYuLjdlMWJjZTI5YmFmZWZmYmNhNjRmYzU0NWVhNGFiODhjOGVl
MWZkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9m
aWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVy
LmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFR5cGVQcm9maWxlcjo6aW5zZXJ0TmV3TG9jYXRp
b24oVHlwZUxvY2F0aW9uKiBsb2NhdGlvbikKICAgICBidWNrZXQuYXBwZW5kKGxvY2F0aW9uKTsK
IH0KIAotU3RyaW5nIFR5cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0
T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IgZGVzY3JpcHRvciwgdW5zaWduZWQg
b2Zmc2V0LCBpbnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZtKQorU3RyaW5nIFR5cGVQcm9maWxlcjo6
dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERl
c2NyaXB0b3IgZGVzY3JpcHRvciwgdW5zaWduZWQgb2Zmc2V0LCBTb3VyY2VJRCBzb3VyY2VJRCwg
Vk0mIHZtKQogewogICAgIC8vIFRoaXMgcmV0dXJucyBhIEpTT04gc3RyaW5nIHJlcHJlc2VudGlu
ZyBhbiBPYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgLy8gICAgIGds
b2JhbFR5cGVTZXQ6ICdKU09OPFR5cGVTZXQ+IHwgbnVsbCcKQEAgLTEwMiw3ICsxMDIsNyBAQCBT
dHJpbmcgVHlwZVByb2ZpbGVyOjp0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQo
VHlwZVByb2ZpbGVyU2VhcmNoRGVzYwogICAgIHJldHVybiBqc29uLnRvU3RyaW5nKCk7CiB9CiAK
LVR5cGVMb2NhdGlvbiogVHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24odW5zaWduZWQgZGl2b3Qs
IGludHB0cl90IHNvdXJjZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIGRlc2NyaXB0
b3IsIFZNJiB2bSkKK1R5cGVMb2NhdGlvbiogVHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24odW5z
aWduZWQgZGl2b3QsIFNvdXJjZUlEIHNvdXJjZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlw
dG9yIGRlc2NyaXB0b3IsIFZNJiB2bSkKIHsKICAgICBRdWVyeUtleSBxdWVyeUtleShzb3VyY2VJ
RCwgZGl2b3QsIGRlc2NyaXB0b3IpOwogICAgIGF1dG8gaXRlciA9IG1fcXVlcnlDYWNoZS5maW5k
KHF1ZXJ5S2V5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVy
LmgKaW5kZXggNzc5Y2MwMGMxMGRhOWUxZWI2Y2ExOTc4MDU3ZmRhMjE5ZDgwY2JjNS4uOTdkOTcz
ZjgzZjg2NmJhY2ZjNjk0NGQ2YmUxZjFiMDcyOTQyYTQyOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJTb3VyY2VJRC5oIgogI2luY2x1ZGUgIlR5cGVMb2NhdGlvbi5o
IgogI2luY2x1ZGUgIlR5cGVMb2NhdGlvbkNhY2hlLmgiCiAjaW5jbHVkZSA8d3RmL0JhZy5oPgpA
QCAtNTAsMjEgKzUxLDIxIEBAIHN0cnVjdCBRdWVyeUtleSB7CiAgICAgICAgICwgbV9zZWFyY2hE
ZXNjcmlwdG9yKFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3JGdW5jdGlvblJldHVybikKICAg
ICB7IH0KIAotICAgIFF1ZXJ5S2V5KGludHB0cl90IHNvdXJjZUlELCB1bnNpZ25lZCBkaXZvdCwg
VHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBzZWFyY2hEZXNjcmlwdG9yKQorICAgIFF1ZXJ5
S2V5KFNvdXJjZUlEIHNvdXJjZUlELCB1bnNpZ25lZCBkaXZvdCwgVHlwZVByb2ZpbGVyU2VhcmNo
RGVzY3JpcHRvciBzZWFyY2hEZXNjcmlwdG9yKQogICAgICAgICA6IG1fc291cmNlSUQoc291cmNl
SUQpCiAgICAgICAgICwgbV9kaXZvdChkaXZvdCkKICAgICAgICAgLCBtX3NlYXJjaERlc2NyaXB0
b3Ioc2VhcmNoRGVzY3JpcHRvcikKICAgICB7IH0KIAogICAgIFF1ZXJ5S2V5KFdURjo6SGFzaFRh
YmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgOiBtX3NvdXJjZUlEKElOVFBUUl9NQVgpCisg
ICAgICAgIDogbV9zb3VyY2VJRChVSU5UX01BWCkKICAgICAgICAgLCBtX2Rpdm90KFVJTlRfTUFY
KQogICAgICAgICAsIG1fc2VhcmNoRGVzY3JpcHRvcihUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlw
dG9yRnVuY3Rpb25SZXR1cm4pCiAgICAgeyB9CiAKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkgY29uc3QgCiAgICAgeyAKLSAgICAgICAgcmV0dXJuIG1fc291cmNlSUQgPT0gSU5U
UFRSX01BWCAKKyAgICAgICAgcmV0dXJuIG1fc291cmNlSUQgPT0gVUlOVF9NQVgKICAgICAgICAg
ICAgICYmIG1fZGl2b3QgPT0gVUlOVF9NQVgKICAgICAgICAgICAgICYmIG1fc2VhcmNoRGVzY3Jp
cHRvciA9PSBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yRnVuY3Rpb25SZXR1cm47CiAgICAg
fQpAQCAtODIsNyArODMsNyBAQCBzdHJ1Y3QgUXVlcnlLZXkgewogICAgICAgICByZXR1cm4gaGFz
aDsKICAgICB9CiAKLSAgICBpbnRwdHJfdCBtX3NvdXJjZUlEOworICAgIFNvdXJjZUlEIG1fc291
cmNlSUQ7CiAgICAgdW5zaWduZWQgbV9kaXZvdDsKICAgICBUeXBlUHJvZmlsZXJTZWFyY2hEZXNj
cmlwdG9yIG1fc2VhcmNoRGVzY3JpcHRvcjsKIH07CkBAIC0xMTYsMTcgKzExNywxNyBAQCBjbGFz
cyBUeXBlUHJvZmlsZXIgewogcHVibGljOgogICAgIFR5cGVQcm9maWxlcigpOwogICAgIHZvaWQg
bG9nVHlwZXNGb3JUeXBlTG9jYXRpb24oVHlwZUxvY2F0aW9uKiwgVk0mKTsKLSAgICBKU19FWFBP
UlRfUFJJVkFURSBTdHJpbmcgdHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KFR5
cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3IsIHVuc2lnbmVkIG9mZnNldCwgaW50cHRyX3Qgc291
cmNlSUQsIFZNJik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHR5cGVJbmZvcm1hdGlv
bkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yLCB1bnNp
Z25lZCBvZmZzZXQsIFNvdXJjZUlELCBWTSYpOwogICAgIHZvaWQgaW5zZXJ0TmV3TG9jYXRpb24o
VHlwZUxvY2F0aW9uKik7CiAgICAgVHlwZUxvY2F0aW9uQ2FjaGUqIHR5cGVMb2NhdGlvbkNhY2hl
KCkgeyByZXR1cm4gJm1fdHlwZUxvY2F0aW9uQ2FjaGU7IH0KLSAgICBUeXBlTG9jYXRpb24qIGZp
bmRMb2NhdGlvbih1bnNpZ25lZCBkaXZvdCwgaW50cHRyX3Qgc291cmNlSUQsIFR5cGVQcm9maWxl
clNlYXJjaERlc2NyaXB0b3IsIFZNJik7CisgICAgVHlwZUxvY2F0aW9uKiBmaW5kTG9jYXRpb24o
dW5zaWduZWQgZGl2b3QsIFNvdXJjZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yLCBW
TSYpOwogICAgIEdsb2JhbFZhcmlhYmxlSUQgZ2V0TmV4dFVuaXF1ZVZhcmlhYmxlSUQoKSB7IHJl
dHVybiBtX25leHRVbmlxdWVWYXJpYWJsZUlEKys7IH0KICAgICBUeXBlTG9jYXRpb24qIG5leHRU
eXBlTG9jYXRpb24oKTsKICAgICB2b2lkIGludmFsaWRhdGVUeXBlU2V0Q2FjaGUoVk0mKTsKICAg
ICB2b2lkIGR1bXBUeXBlUHJvZmlsZXJEYXRhKFZNJik7CiAgICAgCiBwcml2YXRlOgotICAgIHR5
cGVkZWYgSGFzaE1hcDxpbnRwdHJfdCwgVmVjdG9yPFR5cGVMb2NhdGlvbio+PiBTb3VyY2VJRFRv
TG9jYXRpb25CdWNrZXRNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFNvdXJjZUlELCBWZWN0b3I8
VHlwZUxvY2F0aW9uKj4+IFNvdXJjZUlEVG9Mb2NhdGlvbkJ1Y2tldE1hcDsKICAgICBTb3VyY2VJ
RFRvTG9jYXRpb25CdWNrZXRNYXAgbV9idWNrZXRNYXA7CiAgICAgVHlwZUxvY2F0aW9uQ2FjaGUg
bV90eXBlTG9jYXRpb25DYWNoZTsKICAgICB0eXBlZGVmIEhhc2hNYXA8UXVlcnlLZXksIFR5cGVM
b2NhdGlvbio+IFR5cGVMb2NhdGlvblF1ZXJ5Q2FjaGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440797</attachid>
            <date>2021-10-11 08:32:33 -0700</date>
            <delta_ts>2021-10-11 09:58:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231436-20211011113232.patch</filename>
            <type>text/plain</type>
            <size>43256</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OThiZWM5NmI1M2Y2ODhmZmI4YjVkYmU1NDY4ZTk2Nzc5OWIwM2Q4Li4wOGFhNzgyMTVkODdlZTc3
MjBkNmEyMzk4MzE4YTUwNzc4YjdlOTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MCBAQAorMjAyMS0xMC0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBTb3VyY2VJRCBzaG91bGQgaGF2ZSBhIHR5cGUgbmFtZSBhbmQgb25s
eSBiZSAzMi1iaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAg
ICBUaGlzIHBhdGNoIGdpdmVzIFNvdXJjZUlEIGEgcHJvcGVyIHR5cGUgbmFtZSBhbmQgc2hyaW5r
cyBpdCB0bworICAgICAgICAzMi1iaXRzIG9uIDY0LWJpdCBzeXN0ZW1zLiBTaHJpbmtpbmcgdGhl
IHNpemUgbWFrZXMgcm9vbSBvbgorICAgICAgICBTb3VyY2VQcm92aWRlciBmb3IgbWV0YWRhdGEg
aW4gYSBmdXR1cmUgcGF0Y2ggSSdtIHdvcmtpbmcgb24uCisgICAgICAgIEl0J3MgYWxzbyBwcmV0
dHkgdW5saWtlbHkgdGhhdCBhbnkgc3lzdGVtIGhhcyBtb3JlIHRoYW4gfjQgYmlsbGlvbgorICAg
ICAgICBzY3JpcHQgdGFncywgZXZhbHMsIHdhc20gbW9kdWxlcyBzbyBzaGlua2luZyB0aGUgc2l6
ZSBpcyB1bmxpa2VseQorICAgICAgICB0byBjYXVzZSBhbnkgZGVidWdnZXIvcHJvZmlsaW5nIGlz
c3Vlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvVHlwZUxv
Y2F0aW9uLmg6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAoSlND
OjpEZWJ1Z2dlcjo6dG9nZ2xlQnJlYWtwb2ludCk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpw
YXVzZUlmTmVlZGVkKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmg6Cisg
ICAgICAgIChKU0M6OkRlYnVnZ2VyTG9jYXRpb246OkRlYnVnZ2VyTG9jYXRpb24pOgorICAgICAg
ICAqIGRlYnVnZ2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oOgorICAgICAgICAqIGluc3BlY3Rvci9K
YXZhU2NyaXB0Q2FsbEZyYW1lLmg6CisgICAgICAgIChJbnNwZWN0b3I6OkphdmFTY3JpcHRDYWxs
RnJhbWU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0
YWNrRmFjdG9yeS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkNyZWF0ZVNjcmlwdENhbGxTdGFj
a0Z1bmN0b3I6Om9wZXJhdG9yKCkgY29uc3QpOgorICAgICAgICAoSW5zcGVjdG9yOjpjcmVhdGVT
Y3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9TdGFj
a1Zpc2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTdGFja1Zpc2l0b3I6OkZyYW1lOjpzb3VyY2VJ
RCk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmg6CisgICAgICAgICogcGFy
c2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OlNjb3BlTm9kZTo6c291cmNlSUQgY29uc3QpOgor
ICAgICAgICAqIHBhcnNlci9Tb3VyY2VDb2RlLmg6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6
OlNvdXJjZUNvZGUpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpmaXJzdExpbmUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpzdGFydENvbHVtbiBjb25zdCk6CisgICAgICAg
IChKU0M6OlNvdXJjZUNvZGU6OnByb3ZpZGVySUQgY29uc3QpOgorICAgICAgICAoSlNDOjpTb3Vy
Y2VDb2RlOjpwcm92aWRlciBjb25zdCk6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6Om9wZXJh
dG9yPT0gY29uc3QpOgorICAgICAgICAoSlNDOjpTb3VyY2VDb2RlOjpvcGVyYXRvciE9IGNvbnN0
KToKKyAgICAgICAgKEpTQzo6bWFrZVNvdXJjZSk6CisgICAgICAgIChKU0M6OlNvdXJjZUNvZGU6
OnN1YkV4cHJlc3Npb24gY29uc3QpOgorICAgICAgICAqIHBhcnNlci9Tb3VyY2VQcm92aWRlci5j
cHA6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjpnZXRJRCk6CisgICAgICAgICogcGFy
c2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAgIChKU0M6OlNvdXJjZVByb3ZpZGVyOjphc0lE
KToKKyAgICAgICAgKiBydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuY3BwOgorICAgICAgICAo
SlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2NrTG9jYXRpb24pOgorICAgICAg
ICAoSlNDOjpDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRCYXNpY0Jsb2Nrc0ZvclNvdXJjZUlEIGNv
bnN0KToKKyAgICAgICAgKEpTQzo6Q29udHJvbEZsb3dQcm9maWxlcjo6aGFzQmFzaWNCbG9ja0F0
VGV4dE9mZnNldEJlZW5FeGVjdXRlZCk6CisgICAgICAgIChKU0M6OkNvbnRyb2xGbG93UHJvZmls
ZXI6OmJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldCk6CisgICAgICAgICogcnVu
dGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvbkhh
c0V4ZWN1dGVkQ2FjaGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1dGVkQ2Fj
aGU6Omhhc0V4ZWN1dGVkQXRPZmZzZXQpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkhhc0V4ZWN1
dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0ZWRSYW5nZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9u
SGFzRXhlY3V0ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdlKToKKyAgICAgICAgKEpTQzo6
RnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpnZXRGdW5jdGlvblJhbmdlcyk6CisgICAgICAgICog
cnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpTdGFj
a0ZyYW1lOjpzb3VyY2VJRCk6CisgICAgICAgICogcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmg6
CisgICAgICAgICogcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmg6CisgICAgICAgIChKU0M6OlNj
cmlwdEV4ZWN1dGFibGU6OnNvdXJjZUlEIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL1N0YWNr
RnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpzb3VyY2VJRCBjb25zdCk6Cisg
ICAgICAgICogcnVudGltZS9TdGFja0ZyYW1lLmg6CisgICAgICAgICogcnVudGltZS9UeXBlTG9j
YXRpb25DYWNoZS5jcHA6CisgICAgICAgIChKU0M6OlR5cGVMb2NhdGlvbkNhY2hlOjpnZXRUeXBl
TG9jYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL1R5cGVQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OlR5cGVQcm9maWxl
cjo6dHlwZUluZm9ybWF0aW9uRm9yRXhwcmVzc2lvbkF0T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6
VHlwZVByb2ZpbGVyOjpmaW5kTG9jYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZVByb2Zp
bGVyLmg6CisgICAgICAgIChKU0M6OlF1ZXJ5S2V5OjpRdWVyeUtleSk6CisgICAgICAgIChKU0M6
OlF1ZXJ5S2V5Ojppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSBjb25zdCk6CisKIDIwMjEtMTAtMDcg
IEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIGBoaWdo
V2F0ZXJNYXJrYCBzaG91bGQgYmUgYSByZWFkb25seSBXZWJJREwgYXR0cmlidXRlIG9mIHF1ZXVp
bmcgc3RyYXRlZ2llcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGIzMmMz
MGYxMTBmNmEyOWUyYzgxNmY4N2M1NTZhMTJmZGJlMGQ2YzguLjA3N2QyYjJkYWQ5YzU4NDY1ZmRk
Y2ZjNzY0ODNjZjVjMmZjNWRmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTY1OSw2ICs2NTksNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIGJ5dGVjb2RlL1B1dEJ5SWRGbGFncy5oCiAgICAgYnl0ZWNvZGUvU2V0UHJp
dmF0ZUJyYW5kU3RhdHVzLmgKICAgICBieXRlY29kZS9TZXRQcml2YXRlQnJhbmRWYXJpYW50LmgK
KyAgICBieXRlY29kZS9Tb3VyY2VJRC5oCiAgICAgYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAog
ICAgIGJ5dGVjb2RlL1N0cnVjdHVyZVNldC5oCiAgICAgYnl0ZWNvZGUvU3VwZXJTYW1wbGVyLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGMzNTU0NTBkMjRmNjlhOGM5MThmYmQz
OTA1YjQyYmNiOTUwNzkzOC4uZmI0MTU4ODA3ODEwY2JmOTc2YTViMTg3MWQ3ZGVjN2IyMmIzYjky
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkzOSw2ICs5MzksNyBAQAogCQk1
MzRFMDM1NDFFNTNCRDI5MDAyMTNGNjQgLyogSW50cmluc2ljR2V0dGVyQWNjZXNzQ2FzZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM0RTAzNTMxRTUz
QkQyOTAwMjEzRjY0IC8qIEludHJpbnNpY0dldHRlckFjY2Vzc0Nhc2UuaCAqLzsgfTsKIAkJNTM0
RTAzNTYxRTUzQkVERTAwMjEzRjY0IC8qIFByb3h5YWJsZUFjY2Vzc0Nhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNEUwMzU1MUU1M0JFREUwMDIx
M0Y2NCAvKiBQcm94eWFibGVBY2Nlc3NDYXNlLmggKi87IH07CiAJCTUzNEUwMzU4MUU1M0JGMkYw
MDIxM0Y2NCAvKiBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzRFMDM1NzFFNTNCRjJGMDAyMTNGNjQgLyogR2V0
dGVyU2V0dGVyQWNjZXNzQ2FzZS5oICovOyB9OworCQk1MzUwMzU2NTI3MTQ3RTVBMDBFQzFBN0Ug
LyogU291cmNlSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUzNTAzNTY0MjcxNDdFNTkwMEVDMUE3RSAvKiBTb3VyY2VJRC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUzNTI5QTRDMUM0NTdCNzUwMDBC
NDlDNiAvKiBBUElVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTM1MjlBNEIxQzQ1N0I3NTAwMEI0OUM2IC8qIEFQSVV0aWxzLmggKi87IH07CiAJ
CTUzNTU1NzE0MUQ5RDlFQTUwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzU1NTcxMzFEOUQ5RUE1MDA2RDU4M0Ig
LyogV2FzbU1lbW9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUzNUMyNDYxMUY3ODkyOEUwMDZFQzQwRSAvKiBjcmVhdGVfcmVnZXhfdGFibGVz
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxOEY4MjEx
MTc4RUI0QjAwMjQ2NUE3IC8qIGNyZWF0ZV9yZWdleF90YWJsZXMgKi87IH07CkBAIC0zNzM5LDYg
KzM3NDAsNyBAQAogCQk1MzRFMDM1MzFFNTNCRDI5MDAyMTNGNjQgLyogSW50cmluc2ljR2V0dGVy
QWNjZXNzQ2FzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRyaW5zaWNH
ZXR0ZXJBY2Nlc3NDYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNEUwMzU1
MUU1M0JFREUwMDIxM0Y2NCAvKiBQcm94eWFibGVBY2Nlc3NDYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFByb3h5YWJsZUFjY2Vzc0Nhc2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTM0RTAzNTcxRTUzQkYyRjAwMjEzRjY0IC8qIEdldHRlclNldHRlckFj
Y2Vzc0Nhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0dGVyU2V0dGVy
QWNjZXNzQ2FzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MzUwMzU2NDI3MTQ3
RTU5MDBFQzFBN0UgLyogU291cmNlSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU291cmNlSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM1MjlBNEIxQzQ1
N0I3NTAwMEI0OUM2IC8qIEFQSVV0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFQSVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNTU1NzEzMUQ5
RDlFQTUwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdhc21NZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM1NTU3
MTUxRDlERkEzMjAwNkQ1ODNCIC8qIFdhc21NZW1vcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2FzbU1lbW9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC04Nzg4LDYgKzg3OTAsNyBAQAogCQkJCTg2NURBMEM3MjVCODk2MEMwMDg3NTc3MiAv
KiBTZXRQcml2YXRlQnJhbmRTdGF0dXMuaCAqLywKIAkJCQk4NjVEQTBDNjI1Qjg5NTlFMDA4NzU3
NzIgLyogU2V0UHJpdmF0ZUJyYW5kVmFyaWFudC5jcHAgKi8sCiAJCQkJODY1REEwQzQyNUI4OTU3
NDAwODc1NzcyIC8qIFNldFByaXZhdGVCcmFuZFZhcmlhbnQuaCAqLywKKwkJCQk1MzUwMzU2NDI3
MTQ3RTU5MDBFQzFBN0UgLyogU291cmNlSUQuaCAqLywKIAkJCQkwRkQ4MkU4NDE0MUYzRkRBMDAx
NzlDOTQgLyogU3BlY3VsYXRlZFR5cGUuY3BwICovLAogCQkJCTBGRDgyRTRGMTQxREFFQTEwMDE3
OUM5NCAvKiBTcGVjdWxhdGVkVHlwZS5oICovLAogCQkJCTBGQjQzOEEyMTkyNzBCMUQwMEUxRkJD
OSAvKiBTdHJ1Y3R1cmVTZXQuY3BwICovLApAQCAtMTA2ODAsNiArMTA2ODMsNyBAQAogCQkJCUUz
RjIzQTdGMUVDRjEzRUUwMDk3OEQ5OSAvKiBTbmlwcGV0U2xvd1BhdGhDYWxscy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQyMDFENTkxREVDRjI2QTAwOTA0QkQzIC8qIFNvdXJjZUNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcwQjc5MTkxMUMwMjRBMTMwMDI0ODFFMiAvKiBTb3VyY2VDb2RlS2V5
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzUwMzU2NTI3MTQ3RTVBMDBFQzFBN0UgLyogU291cmNl
SUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMzQyRjM2RjcyNDQwOTY4MDRBREIyNCAvKiBTb3Vy
Y2VPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDYzMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5REMxNkMxMkVGMjk0RTAw
MTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NvdXJjZUlELmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU291cmNlSUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTMxZDVlNTEzYmM3
MGNlMTQ3MTc0NWJhZWYxMzExMjU4ZTExMzQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NvdXJjZUlELmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitu
YW1lc3BhY2UgSlNDIHsKKwordXNpbmcgU291cmNlSUQgPSB1aW50MzJfdDsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVHlw
ZUxvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVHlwZUxvY2F0aW9u
LmgKaW5kZXggMWU5MjM5ZGM0ZTAzNTJiZGIyYjU5Mjc1MzQ4NDY3NzE0OGRiNzNlYy4uYzc2ZjA1
YWQwNDFkNzU0OWJjZWY1ZGI0MGNkNWM1YzlmOTA1OTU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1R5cGVMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9UeXBlTG9jYXRpb24uaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6
CiAgICAgR2xvYmFsVmFyaWFibGVJRCBtX2dsb2JhbFZhcmlhYmxlSUQ7CiAgICAgUmVmUHRyPFR5
cGVTZXQ+IG1faW5zdHJ1Y3Rpb25UeXBlU2V0OwogICAgIFJlZlB0cjxUeXBlU2V0PiBtX2dsb2Jh
bFR5cGVTZXQ7Ci0gICAgaW50cHRyX3QgbV9zb3VyY2VJRDsKKyAgICBTb3VyY2VJRCBtX3NvdXJj
ZUlEOwogICAgIHVuc2lnbmVkIG1fZGl2b3RTdGFydDsKICAgICB1bnNpZ25lZCBtX2Rpdm90RW5k
OwogICAgIHVuc2lnbmVkIG1fZGl2b3RGb3JGdW5jdGlvbk9mZnNldElmUmV0dXJuU3RhdGVtZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKaW5kZXggZGQz
NTdkODVjNDQ3NmQzNTFjN2U1MTQ0OTRhMmZlYTZhOGE0ZmExYy4uMGJjZTJhNjg5ODkzN2ZhMmQ4
YjQ0MGNiMmYyNjE2ZDUxZTM2NWI5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXIuY3BwCkBAIC0zNTAsNyArMzUwLDcgQEAgdm9pZCBEZWJ1Z2dlcjo6dG9nZ2xl
QnJlYWtwb2ludChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnJlYWtwb2ludCYgYnJlYWtwb2ludCwg
QnIKIAogICAgIFNjcmlwdEV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBjb2RlQmxvY2stPm93bmVy
RXhlY3V0YWJsZSgpOwogCi0gICAgU291cmNlSUQgc291cmNlSUQgPSBzdGF0aWNfY2FzdDxTb3Vy
Y2VJRD4oZXhlY3V0YWJsZS0+c291cmNlSUQoKSk7CisgICAgU291cmNlSUQgc291cmNlSUQgPSBl
eGVjdXRhYmxlLT5zb3VyY2VJRCgpOwogICAgIGlmIChicmVha3BvaW50LnNvdXJjZUlEKCkgIT0g
c291cmNlSUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtODc1LDcgKzg3NSw3IEBAIHZvaWQgRGVi
dWdnZXI6OnBhdXNlSWZOZWVkZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBp
ZiAobV9zdXBwcmVzc0FsbFBhdXNlcykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50cHRyX3Qg
c291cmNlSUQgPSBEZWJ1Z2dlckNhbGxGcmFtZTo6c291cmNlSURGb3JDYWxsRnJhbWUobV9jdXJy
ZW50Q2FsbEZyYW1lKTsKKyAgICBTb3VyY2VJRCBzb3VyY2VJRCA9IERlYnVnZ2VyQ2FsbEZyYW1l
Ojpzb3VyY2VJREZvckNhbGxGcmFtZShtX2N1cnJlbnRDYWxsRnJhbWUpOwogCiAgICAgYXV0byBi
bGFja2JveFR5cGVJdGVyYXRvciA9IG1fYmxhY2tib3hlZFNjcmlwdHMuZmluZChzb3VyY2VJRCk7
CiAgICAgaWYgKGJsYWNrYm94VHlwZUl0ZXJhdG9yICE9IG1fYmxhY2tib3hlZFNjcmlwdHMuZW5k
KCkgJiYgYmxhY2tib3hUeXBlSXRlcmF0b3ItPnZhbHVlID09IEJsYWNrYm94VHlwZTo6SWdub3Jl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxv
Y2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJMb2NhdGlv
bi5oCmluZGV4IGU5NDg3NzE2OGM0MDA0ZWI5Y2FkMzhlNzViOWUzOGZjMjAwNjIzMGMuLjRhODMx
MjFiNjRhYTQwNWU0ODkwYzdkMTAxMDQ0MDUxZTM3NDUwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckxvY2F0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyTG9jYXRpb24uaApAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBTY3JpcHRFeGVjdXRhYmxlOwogc3RydWN0IERlYnVnZ2VyTG9jYXRpb24gewogCiAg
ICAgRGVidWdnZXJMb2NhdGlvbigpIHsgfQotICAgIERlYnVnZ2VyTG9jYXRpb24oaW50cHRyX3Qg
c291cmNlSUQsIHVuc2lnbmVkIGxpbmUsIHVuc2lnbmVkIGNvbHVtbikKKyAgICBEZWJ1Z2dlckxv
Y2F0aW9uKFNvdXJjZUlEIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lLCB1bnNpZ25lZCBjb2x1bW4p
CiAgICAgICAgIDogc291cmNlSUQoc291cmNlSUQpCiAgICAgICAgICwgbGluZShsaW5lKQogICAg
ICAgICAsIGNvbHVtbihjb2x1bW4pCkBAIC00Myw3ICs0Myw3IEBAIHN0cnVjdCBEZWJ1Z2dlckxv
Y2F0aW9uIHsKIAogICAgIERlYnVnZ2VyTG9jYXRpb24oU2NyaXB0RXhlY3V0YWJsZSopOwogCi0g
ICAgaW50cHRyX3Qgc291cmNlSUQgeyBub1NvdXJjZUlEIH07CisgICAgU291cmNlSUQgc291cmNl
SUQgeyBub1NvdXJjZUlEIH07CiAgICAgdW5zaWduZWQgbGluZSB7IDAgfTsKICAgICB1bnNpZ25l
ZCBjb2x1bW4geyAwIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyUHJpbWl0aXZlcy5oCmluZGV4IDQyNTYzYWNmM2UyZmJmOWUzM2MwZjU0MGJh
ZDU3YzM0MzA1NjY4ZWYuLmJmMjI2MGU0Nzk1OTFjYWFlYmIzYTNmMTNlNDZlNzdjOTNhNTc3OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlclByaW1p
dGl2ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJQcmlt
aXRpdmVzLmgKQEAgLTI1LDExICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IlNvdXJjZUlELmgiCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCi11
c2luZyBTb3VyY2VJRCA9IHNpemVfdDsKIGNvbnN0ZXhwciBTb3VyY2VJRCBub1NvdXJjZUlEID0g
MDsKIAogdXNpbmcgQnJlYWtwb2ludElEID0gc2l6ZV90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaAppbmRleCA5NWJkMWYz
MmIwMTkyODhkZTc3MzNhNzkwZWQyM2FhNDJhNjE0YWYwLi4wYjM3NzM3NGU4ZTZjZmViYTViOTEx
OWFlMzk4ZjE2MDEwN2NlNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMTMtMjAxNCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAyMSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQxLDcgKzQxLDcgQEAg
cHVibGljOgogICAgIH0KIAogICAgIEphdmFTY3JpcHRDYWxsRnJhbWUqIGNhbGxlcigpOwotICAg
IGludHB0cl90IHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z2dlckNhbGxGcmFtZS0+
c291cmNlSUQoKTsgfQorICAgIEpTQzo6U291cmNlSUQgc291cmNlSUQoKSBjb25zdCB7IHJldHVy
biBtX2RlYnVnZ2VyQ2FsbEZyYW1lLT5zb3VyY2VJRCgpOyB9CiAgICAgY29uc3QgVGV4dFBvc2l0
aW9uIHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z2dlckNhbGxGcmFtZS0+cG9zaXRp
b24oKTsgfQogICAgIGludCBsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z2dlckNhbGxGcmFt
ZS0+bGluZSgpOyB9CiAgICAgaW50IGNvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVidWdnZXJD
YWxsRnJhbWUtPmNvbHVtbigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAppbmRleCA5NmEzNWNlYmU4
YmI2NDI1ODI5YTcyOTFmZjAyOWZjZTRjMjNhOGViLi40MWFjYzg1N2M2NzY4YzlmNmJhOTgzMGE3
MWFhMDJmYTkzNDc2ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAg
cHVibGljOgogICAgICAgICAgICAgdW5zaWduZWQgbGluZTsKICAgICAgICAgICAgIHVuc2lnbmVk
IGNvbHVtbjsKICAgICAgICAgICAgIHZpc2l0b3ItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUs
IGNvbHVtbik7Ci0gICAgICAgICAgICBtX2ZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKHZp
c2l0b3ItPmZ1bmN0aW9uTmFtZSgpLCB2aXNpdG9yLT5zb3VyY2VVUkwoKSwgc3RhdGljX2Nhc3Q8
U291cmNlSUQ+KHZpc2l0b3ItPnNvdXJjZUlEKCkpLCBsaW5lLCBjb2x1bW4pKTsKKyAgICAgICAg
ICAgIG1fZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUodmlzaXRvci0+ZnVuY3Rpb25OYW1l
KCksIHZpc2l0b3ItPnNvdXJjZVVSTCgpLCB2aXNpdG9yLT5zb3VyY2VJRCgpLCBsaW5lLCBjb2x1
bW4pKTsKIAogICAgICAgICAgICAgbV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2FwdHVyZS0t
OwogICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7CkBAIC0xNjAsNyAr
MTYwLDcgQEAgUmVmPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4
Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICAgICAgdW5zaWduZWQgY29sdW1u
OwogICAgICAgICBzdGFja1RyYWNlW2ldLmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIGNvbHVt
bik7CiAgICAgICAgIFN0cmluZyBmdW5jdGlvbk5hbWUgPSBzdGFja1RyYWNlW2ldLmZ1bmN0aW9u
TmFtZSh2bSk7Ci0gICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGZ1bmN0aW9u
TmFtZSwgc3RhY2tUcmFjZVtpXS5zb3VyY2VVUkwoKSwgc3RhdGljX2Nhc3Q8U291cmNlSUQ+KHN0
YWNrVHJhY2VbaV0uc291cmNlSUQoKSksIGxpbmUsIGNvbHVtbikpOworICAgICAgICBmcmFtZXMu
YXBwZW5kKFNjcmlwdENhbGxGcmFtZShmdW5jdGlvbk5hbWUsIHN0YWNrVHJhY2VbaV0uc291cmNl
VVJMKCksIHN0YWNrVHJhY2VbaV0uc291cmNlSUQoKSwgbGluZSwgY29sdW1uKSk7CiAgICAgfQog
CiAgICAgLy8gRmFsbGJhY2sgdG8gZ2V0dGluZyBhdCBsZWFzdCB0aGUgbGluZSBhbmQgc291cmNl
VVJMIGZyb20gdGhlIGV4Y2VwdGlvbiBvYmplY3QgaWYgaXQgaGFzIHZhbHVlcyBhbmQgdGhlIGV4
Y2VwdGlvblN0YWNrIGRvZXNuJ3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9TdGFja1Zpc2l0b3IuY3BwCmluZGV4IDU3YTFiZGI2ZGJkNWIxNjA2OTFjNjU2NTBm
YzBkNDVkYmU4MDllYWIuLjRiNWZmYzZhZDA5OGFhOGI4YjVkNmZlMzIzZGU0NTljNzA0NGYxMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0
b3IuY3BwCkBAIC0zNTEsNyArMzUxLDcgQEAgU3RyaW5nIFN0YWNrVmlzaXRvcjo6RnJhbWU6OnRv
U3RyaW5nKCkgY29uc3QKICAgICByZXR1cm4gbWFrZVN0cmluZyhmdW5jdGlvbk5hbWUsIHNlcGFy
YXRvciwgc291cmNlVVJMLCAnOicsIGxpbmUsICc6JywgY29sdW1uKTsKIH0KIAotaW50cHRyX3Qg
U3RhY2tWaXNpdG9yOjpGcmFtZTo6c291cmNlSUQoKQorU291cmNlSUQgU3RhY2tWaXNpdG9yOjpG
cmFtZTo6c291cmNlSUQoKQogewogICAgIGlmIChDb2RlQmxvY2sqIGNvZGVCbG9jayA9IHRoaXMt
PmNvZGVCbG9jaygpKQogICAgICAgICByZXR1cm4gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUo
KS0+c291cmNlSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9TdGFja1Zpc2l0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9T
dGFja1Zpc2l0b3IuaAppbmRleCAwYmI5YWY1ODE1YTUxMDYzYTAzYjMyMDAwNDEzNjE4ODRjZTZk
ZjI3Li4xNGRkYTlmYWFhM2M4ZjQxZjhkYmY0YmNlOWJhNWM5YjBiM2MzYzE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbmNsdWRlICJCeXRlY29kZUluZGV4LmgiCiAjaW5jbHVkZSAiQ2FsbGVl
Qml0cy5oIgorI2luY2x1ZGUgIlNvdXJjZUlELmgiCiAjaW5jbHVkZSAiV2FzbUluZGV4T3JOYW1l
LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0luZGVudGVyLmg+
CkBAIC04Nyw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3Ry
aW5nIHNvdXJjZVVSTCgpIGNvbnN0OwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcg
dG9TdHJpbmcoKSBjb25zdDsKIAotICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBpbnRwdHJfdCBz
b3VyY2VJRCgpOworICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTb3VyY2VJRCBzb3VyY2VJRCgp
OwogCiAgICAgICAgIENvZGVUeXBlIGNvZGVUeXBlKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaGFz
TGluZUFuZENvbHVtbkluZm8oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aAppbmRleCBhNDI0Y2YxZmFmZmFiZGE3NDU3Njc2NWMyNTMxNzU0MmY1ZWZjNTc1Li5lMzBlYjgx
NGI5ZTIwMjZlYzRlMmFhMzY0MjkyNDgzODkyZmU3MzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5oCkBAIC0xODk4LDcgKzE4OTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgU2NvcGVOb2RlKFBhcnNlckFyZW5hJiwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBzdGFydCwg
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiBlbmQsIGNvbnN0IFNvdXJjZUNvZGUmLCBTb3VyY2VFbGVt
ZW50cyosIFZhcmlhYmxlRW52aXJvbm1lbnQmJiwgRnVuY3Rpb25TdGFjayYmLCBWYXJpYWJsZUVu
dmlyb25tZW50JiYsIFVuaXF1ZWRTdHJpbmdJbXBsUHRyU2V0JiYsIENvZGVGZWF0dXJlcywgTGV4
aWNhbFNjb3BlRmVhdHVyZXMsIElubmVyQXJyb3dGdW5jdGlvbkNvZGVGZWF0dXJlcywgaW50IG51
bUNvbnN0YW50cyk7CiAKICAgICAgICAgY29uc3QgU291cmNlQ29kZSYgc291cmNlKCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2U7IH0KLSAgICAgICAgaW50cHRyX3Qgc291cmNlSUQoKSBjb25zdCB7
IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KKyAgICAgICAgU291cmNlSUQgc291cmNl
SUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7IH0KIAogICAgICAgICBp
bnQgc3RhcnRMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydExpbmVOdW1iZXI7IH0KICAgICAg
ICAgaW50IHN0YXJ0U3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0U3RhcnRPZmZz
ZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU291cmNlQ29k
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VDb2RlLmgKaW5kZXggOTky
ZDg5YTIxMDNkZTM2YzBmZGQ2NzVhNTNmZjhiMTMxMGMwMWYzNS4uODZmZTEyNGE4NzNjZTc1MWM2
MGFlZWM4ZDc5MDczOTYzOWE0YzM2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Tb3VyY2VDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
b3VyY2VDb2RlLmgKQEAgLTMyLDc5ICszMiw3OSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotICAg
IGNsYXNzIFNvdXJjZUNvZGUgOiBwdWJsaWMgVW5saW5rZWRTb3VyY2VDb2RlIHsKLSAgICAgICAg
ZnJpZW5kIGNsYXNzIENhY2hlZFNvdXJjZUNvZGU7Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBDYWNo
ZWRTb3VyY2VDb2RlV2l0aG91dFByb3ZpZGVyOwotCi0gICAgcHVibGljOgotICAgICAgICBTb3Vy
Y2VDb2RlKCkKLSAgICAgICAgICAgIDogVW5saW5rZWRTb3VyY2VDb2RlKCkKLSAgICAgICAgICAg
ICwgbV9maXJzdExpbmUoT3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSkKLSAgICAgICAgICAg
ICwgbV9zdGFydENvbHVtbihPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKQotICAgICAgICB7
Ci0gICAgICAgIH0KLQotICAgICAgICBTb3VyY2VDb2RlKFJlZjxTb3VyY2VQcm92aWRlcj4mJiBw
cm92aWRlcikKLSAgICAgICAgICAgIDogVW5saW5rZWRTb3VyY2VDb2RlKFdURk1vdmUocHJvdmlk
ZXIpKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTb3VyY2VDb2RlKFJlZjxTb3Vy
Y2VQcm92aWRlcj4mJiBwcm92aWRlciwgaW50IGZpcnN0TGluZSwgaW50IHN0YXJ0Q29sdW1uKQot
ICAgICAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoV1RGTW92ZShwcm92aWRlcikpCi0gICAg
ICAgICAgICAsIG1fZmlyc3RMaW5lKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6
Om1heChmaXJzdExpbmUsIDEpKSkKLSAgICAgICAgICAgICwgbV9zdGFydENvbHVtbihPcmRpbmFs
TnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjptYXgoc3RhcnRDb2x1bW4sIDEpKSkKLSAgICAg
ICAgewotICAgICAgICB9Ci0KLSAgICAgICAgU291cmNlQ29kZShSZWZQdHI8U291cmNlUHJvdmlk
ZXI+JiYgcHJvdmlkZXIsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCwgaW50IGZpcnN0
TGluZSwgaW50IHN0YXJ0Q29sdW1uKQotICAgICAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUo
V1RGTW92ZShwcm92aWRlciksIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpCi0gICAgICAgICAgICAs
IG1fZmlyc3RMaW5lKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChmaXJz
dExpbmUsIDEpKSkKLSAgICAgICAgICAgICwgbV9zdGFydENvbHVtbihPcmRpbmFsTnVtYmVyOjpm
cm9tT25lQmFzZWRJbnQoc3RkOjptYXgoc3RhcnRDb2x1bW4sIDEpKSkKLSAgICAgICAgewotICAg
ICAgICB9Ci0KLSAgICAgICAgT3JkaW5hbE51bWJlciBmaXJzdExpbmUoKSBjb25zdCB7IHJldHVy
biBtX2ZpcnN0TGluZTsgfQotICAgICAgICBPcmRpbmFsTnVtYmVyIHN0YXJ0Q29sdW1uKCkgY29u
c3QgeyByZXR1cm4gbV9zdGFydENvbHVtbjsgfQotCi0gICAgICAgIGludHB0cl90IHByb3ZpZGVy
SUQoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fcHJvdmlkZXIpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIFNvdXJjZVByb3ZpZGVyOjpudWxsSUQ7Ci0gICAgICAgICAgICBy
ZXR1cm4gbV9wcm92aWRlci0+YXNJRCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgU291cmNlUHJv
dmlkZXIqIHByb3ZpZGVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm92aWRlci5nZXQoKTsgfQotCi0g
ICAgICAgIFNvdXJjZUNvZGUgc3ViRXhwcmVzc2lvbih1bnNpZ25lZCBvcGVuQnJhY2UsIHVuc2ln
bmVkIGNsb3NlQnJhY2UsIGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVtbikgY29uc3Q7Ci0K
LSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvdXJjZUNvZGUmIG90aGVyKSBjb25zdAot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9maXJzdExpbmUgPT0gb3RoZXIubV9maXJz
dExpbmUKLSAgICAgICAgICAgICAgICAmJiBtX3N0YXJ0Q29sdW1uID09IG90aGVyLm1fc3RhcnRD
b2x1bW4KLSAgICAgICAgICAgICAgICAmJiBtX3Byb3ZpZGVyID09IG90aGVyLm1fcHJvdmlkZXIK
LSAgICAgICAgICAgICAgICAmJiBtX3N0YXJ0T2Zmc2V0ID09IG90aGVyLm1fc3RhcnRPZmZzZXQK
LSAgICAgICAgICAgICAgICAmJiBtX2VuZE9mZnNldCA9PSBvdGhlci5tX2VuZE9mZnNldDsKLSAg
ICAgICAgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTb3VyY2VDb2RlJiBvdGhl
cikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIp
OwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBPcmRpbmFsTnVtYmVyIG1fZmly
c3RMaW5lOwotICAgICAgICBPcmRpbmFsTnVtYmVyIG1fc3RhcnRDb2x1bW47Ci0gICAgfTsKLQot
ICAgIGlubGluZSBTb3VyY2VDb2RlIG1ha2VTb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNv
bnN0IFNvdXJjZU9yaWdpbiYgc291cmNlT3JpZ2luLCBTdHJpbmcgZmlsZW5hbWUgPSBTdHJpbmco
KSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzdGFydFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uKCksIFNv
dXJjZVByb3ZpZGVyU291cmNlVHlwZSBzb3VyY2VUeXBlID0gU291cmNlUHJvdmlkZXJTb3VyY2VU
eXBlOjpQcm9ncmFtKQorY2xhc3MgU291cmNlQ29kZSA6IHB1YmxpYyBVbmxpbmtlZFNvdXJjZUNv
ZGUgeworICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRTb3VyY2VDb2RlOworICAgIGZyaWVuZCBjbGFz
cyBDYWNoZWRTb3VyY2VDb2RlV2l0aG91dFByb3ZpZGVyOworCitwdWJsaWM6CisgICAgU291cmNl
Q29kZSgpCisgICAgICAgIDogVW5saW5rZWRTb3VyY2VDb2RlKCkKKyAgICAgICAgLCBtX2ZpcnN0
TGluZShPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKQorICAgICAgICAsIG1fc3RhcnRDb2x1
bW4oT3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSkKICAgICB7Ci0gICAgICAgIHJldHVybiBT
b3VyY2VDb2RlKFN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoc291cmNlLCBzb3VyY2VPcmln
aW4sIFdURk1vdmUoZmlsZW5hbWUpLCBzdGFydFBvc2l0aW9uLCBzb3VyY2VUeXBlKSwgc3RhcnRQ
b3NpdGlvbi5tX2xpbmUub25lQmFzZWRJbnQoKSwgc3RhcnRQb3NpdGlvbi5tX2NvbHVtbi5vbmVC
YXNlZEludCgpKTsKICAgICB9Ci0gICAgCi0gICAgaW5saW5lIFNvdXJjZUNvZGUgU291cmNlQ29k
ZTo6c3ViRXhwcmVzc2lvbih1bnNpZ25lZCBvcGVuQnJhY2UsIHVuc2lnbmVkIGNsb3NlQnJhY2Us
IGludCBmaXJzdExpbmUsIGludCBzdGFydENvbHVtbikgY29uc3QKKworICAgIFNvdXJjZUNvZGUo
UmVmPFNvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyKQorICAgICAgICA6IFVubGlua2VkU291cmNl
Q29kZShXVEZNb3ZlKHByb3ZpZGVyKSkKKyAgICB7CisgICAgfQorCisgICAgU291cmNlQ29kZShS
ZWY8U291cmNlUHJvdmlkZXI+JiYgcHJvdmlkZXIsIGludCBmaXJzdExpbmUsIGludCBzdGFydENv
bHVtbikKKyAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoV1RGTW92ZShwcm92aWRlcikpCisg
ICAgICAgICwgbV9maXJzdExpbmUoT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6
bWF4KGZpcnN0TGluZSwgMSkpKQorICAgICAgICAsIG1fc3RhcnRDb2x1bW4oT3JkaW5hbE51bWJl
cjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6bWF4KHN0YXJ0Q29sdW1uLCAxKSkpCisgICAgeworICAg
IH0KKworICAgIFNvdXJjZUNvZGUoUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiYmIHByb3ZpZGVyLCBp
bnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQsIGludCBmaXJzdExpbmUsIGludCBzdGFydENv
bHVtbikKKyAgICAgICAgOiBVbmxpbmtlZFNvdXJjZUNvZGUoV1RGTW92ZShwcm92aWRlciksIHN0
YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpCisgICAgICAgICwgbV9maXJzdExpbmUoT3JkaW5hbE51bWJl
cjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6bWF4KGZpcnN0TGluZSwgMSkpKQorICAgICAgICAsIG1f
c3RhcnRDb2x1bW4oT3JkaW5hbE51bWJlcjo6ZnJvbU9uZUJhc2VkSW50KHN0ZDo6bWF4KHN0YXJ0
Q29sdW1uLCAxKSkpCisgICAgeworICAgIH0KKworICAgIE9yZGluYWxOdW1iZXIgZmlyc3RMaW5l
KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdExpbmU7IH0KKyAgICBPcmRpbmFsTnVtYmVyIHN0YXJ0
Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydENvbHVtbjsgfQorCisgICAgU291cmNlSUQg
cHJvdmlkZXJJRCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1fcHJvdmlkZXIpCisgICAg
ICAgICAgICByZXR1cm4gU291cmNlUHJvdmlkZXI6Om51bGxJRDsKKyAgICAgICAgcmV0dXJuIG1f
cHJvdmlkZXItPmFzSUQoKTsKKyAgICB9CisKKyAgICBTb3VyY2VQcm92aWRlciogcHJvdmlkZXIo
KSBjb25zdCB7IHJldHVybiBtX3Byb3ZpZGVyLmdldCgpOyB9CisKKyAgICBTb3VyY2VDb2RlIHN1
YkV4cHJlc3Npb24odW5zaWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQg
Zmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4pIGNvbnN0OworCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFNvdXJjZUNvZGUmIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgc3RhcnRDb2x1
bW4gKz0gMTsgLy8gQ29udmVydCB0byBiYXNlIDEuCi0gICAgICAgIHJldHVybiBTb3VyY2VDb2Rl
KFJlZlB0cjxTb3VyY2VQcm92aWRlcj4geyBwcm92aWRlcigpIH0sIG9wZW5CcmFjZSwgY2xvc2VC
cmFjZSArIDEsIGZpcnN0TGluZSwgc3RhcnRDb2x1bW4pOworICAgICAgICByZXR1cm4gbV9maXJz
dExpbmUgPT0gb3RoZXIubV9maXJzdExpbmUKKyAgICAgICAgICAgICYmIG1fc3RhcnRDb2x1bW4g
PT0gb3RoZXIubV9zdGFydENvbHVtbgorICAgICAgICAgICAgJiYgbV9wcm92aWRlciA9PSBvdGhl
ci5tX3Byb3ZpZGVyCisgICAgICAgICAgICAmJiBtX3N0YXJ0T2Zmc2V0ID09IG90aGVyLm1fc3Rh
cnRPZmZzZXQKKyAgICAgICAgICAgICYmIG1fZW5kT2Zmc2V0ID09IG90aGVyLm1fZW5kT2Zmc2V0
OwogICAgIH0KIAorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTb3VyY2VDb2RlJiBvdGhlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgT3JkaW5hbE51bWJlciBtX2ZpcnN0TGluZTsKKyAgICBPcmRpbmFsTnVt
YmVyIG1fc3RhcnRDb2x1bW47Cit9OworCitpbmxpbmUgU291cmNlQ29kZSBtYWtlU291cmNlKGNv
bnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTb3VyY2VPcmlnaW4mIHNvdXJjZU9yaWdpbiwgU3Ry
aW5nIGZpbGVuYW1lID0gU3RyaW5nKCksIGNvbnN0IFRleHRQb3NpdGlvbiYgc3RhcnRQb3NpdGlv
biA9IFRleHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSA9
IFNvdXJjZVByb3ZpZGVyU291cmNlVHlwZTo6UHJvZ3JhbSkKK3sKKyAgICByZXR1cm4gU291cmNl
Q29kZShTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgc291cmNlT3JpZ2luLCBX
VEZNb3ZlKGZpbGVuYW1lKSwgc3RhcnRQb3NpdGlvbiwgc291cmNlVHlwZSksIHN0YXJ0UG9zaXRp
b24ubV9saW5lLm9uZUJhc2VkSW50KCksIHN0YXJ0UG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJ
bnQoKSk7Cit9CisKK2lubGluZSBTb3VyY2VDb2RlIFNvdXJjZUNvZGU6OnN1YkV4cHJlc3Npb24o
dW5zaWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQgZmlyc3RMaW5lLCBp
bnQgc3RhcnRDb2x1bW4pIGNvbnN0Cit7CisgICAgc3RhcnRDb2x1bW4gKz0gMTsgLy8gQ29udmVy
dCB0byBiYXNlIDEuCisgICAgcmV0dXJuIFNvdXJjZUNvZGUoUmVmUHRyPFNvdXJjZVByb3ZpZGVy
PiB7IHByb3ZpZGVyKCkgfSwgb3BlbkJyYWNlLCBjbG9zZUJyYWNlICsgMSwgZmlyc3RMaW5lLCBz
dGFydENvbHVtbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmNwcAppbmRleCA2MDZlNWYxNzQ0YWYwZjYx
MGRkY2NlNzYxYmM5M2UzMjIzYjk1M2RiLi4yYmQ1NTliMzUzYzM4N2E1ZjYwMTI1YzIzNmNmYzk0
ZTI4OTkyN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJj
ZVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVBy
b3ZpZGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjEg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U291cmNlUHJvdmlkZXIuaCIKIAotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0KIG5hbWVzcGFjZSBK
U0MgewogCiBERUZJTkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFN0cmluZ1NvdXJj
ZVByb3ZpZGVyKTsKQEAgLTQ0LDEzICs0MiwxMCBAQCBTb3VyY2VQcm92aWRlcjo6flNvdXJjZVBy
b3ZpZGVyKCkKIHsKIH0KIAotc3RhdGljIExvY2sgcHJvdmlkZXJJZExvY2s7Ci0KIHZvaWQgU291
cmNlUHJvdmlkZXI6OmdldElEKCkKIHsKLSAgICBMb2NrZXIgbG9ja2VyIHsgcHJvdmlkZXJJZExv
Y2sgfTsKICAgICBpZiAoIW1faWQpIHsKLSAgICAgICAgc3RhdGljIGludHB0cl90IG5leHRQcm92
aWRlcklEID0gMDsKKyAgICAgICAgc3RhdGljIHN0ZDo6YXRvbWljPFNvdXJjZUlEPiBuZXh0UHJv
dmlkZXJJRCA9IG51bGxJRDsKICAgICAgICAgbV9pZCA9ICsrbmV4dFByb3ZpZGVySUQ7CiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKG1faWQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU291cmNlUHJvdmlkZXIuaAppbmRleCAxMjllZTVjNDllMjQ3YWZjZDlmMDhkNTll
ZmU5ZmIxMjhmOWFiYmUxLi5kYzYxNjYwYjhmY2M2YTAxNjRkNjg4MmY4NzUyMTVhNjk1MmMzOWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlci5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNzksNyArNzksNyBAQCBjbGFzcyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOwogICAgICAg
ICBUZXh0UG9zaXRpb24gc3RhcnRQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRQb3Np
dGlvbjsgfQogICAgICAgICBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGUgc291cmNlVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc291cmNlVHlwZTsgfQogCi0gICAgICAgIGludHB0cl90IGFzSUQoKQor
ICAgICAgICBTb3VyY2VJRCBhc0lEKCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFtX2lk
KQogICAgICAgICAgICAgICAgIGdldElEKCk7CkBAIC05OCw3ICs5OCw3IEBAIGNsYXNzIFVubGlu
a2VkRnVuY3Rpb25Db2RlQmxvY2s7CiAgICAgICAgIFN0cmluZyBtX3NvdXJjZVVSTERpcmVjdGl2
ZTsKICAgICAgICAgU3RyaW5nIG1fc291cmNlTWFwcGluZ1VSTERpcmVjdGl2ZTsKICAgICAgICAg
VGV4dFBvc2l0aW9uIG1fc3RhcnRQb3NpdGlvbjsKLSAgICAgICAgdWludHB0cl90IG1faWQgeyAw
IH07CisgICAgICAgIFNvdXJjZUlEIG1faWQgeyAwIH07CiAgICAgfTsKIAogICAgIERFQ0xBUkVf
QUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFN0cmluZ1NvdXJjZVByb3ZpZGVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmls
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxl
ci5jcHAKaW5kZXggZWJiNDI5OTJkMGUyZDNlZWIxMWZhMzA2YmRkNjdlMzI2YThiNGU3Mi4uODg4
N2Q2ODJiZmUwYzc2MTI2NmZhN2U1YWNlYzE5YzgyZDA0NDExYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5jcHAKQEAgLTQ0
LDcgKzQ0LDcgQEAgQ29udHJvbEZsb3dQcm9maWxlcjo6fkNvbnRyb2xGbG93UHJvZmlsZXIoKQog
ICAgIH0KIH0KIAotQmFzaWNCbG9ja0xvY2F0aW9uKiBDb250cm9sRmxvd1Byb2ZpbGVyOjpnZXRC
YXNpY0Jsb2NrTG9jYXRpb24oaW50cHRyX3Qgc291cmNlSUQsIGludCBzdGFydE9mZnNldCwgaW50
IGVuZE9mZnNldCkKK0Jhc2ljQmxvY2tMb2NhdGlvbiogQ29udHJvbEZsb3dQcm9maWxlcjo6Z2V0
QmFzaWNCbG9ja0xvY2F0aW9uKFNvdXJjZUlEIHNvdXJjZUlELCBpbnQgc3RhcnRPZmZzZXQsIGlu
dCBlbmRPZmZzZXQpCiB7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3NvdXJjZUlEQnVja2V0cy5h
ZGQoc291cmNlSUQsIEJsb2NrTG9jYXRpb25DYWNoZSgpKTsKICAgICBCbG9ja0xvY2F0aW9uQ2Fj
aGUmIGJsb2NrTG9jYXRpb25DYWNoZSA9IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CkBAIC02
Niw3ICs2Niw3IEBAIHZvaWQgQ29udHJvbEZsb3dQcm9maWxlcjo6ZHVtcERhdGEoKSBjb25zdAog
ICAgIH0KIH0KIAotVmVjdG9yPEJhc2ljQmxvY2tSYW5nZT4gQ29udHJvbEZsb3dQcm9maWxlcjo6
Z2V0QmFzaWNCbG9ja3NGb3JTb3VyY2VJRChpbnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZtKSBjb25z
dCAKK1ZlY3RvcjxCYXNpY0Jsb2NrUmFuZ2U+IENvbnRyb2xGbG93UHJvZmlsZXI6OmdldEJhc2lj
QmxvY2tzRm9yU291cmNlSUQoU291cmNlSUQgc291cmNlSUQsIFZNJiB2bSkgY29uc3QKIHsKICAg
ICBWZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiByZXN1bHQoMCk7CiAgICAgYXV0byBidWNrZXRGaW5k
UmVzdWx0ID0gbV9zb3VyY2VJREJ1Y2tldHMuZmluZChzb3VyY2VJRCk7CkBAIC0xMjAsMTQgKzEy
MCwxNCBAQCBzdGF0aWMgQmFzaWNCbG9ja1JhbmdlIGZpbmRCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0
KGludCBvZmZzZXQsIGNvbnN0IFZlY3RvcjxCYXNpYwogICAgIHJldHVybiBiZXN0UmFuZ2U7CiB9
CiAKLWJvb2wgQ29udHJvbEZsb3dQcm9maWxlcjo6aGFzQmFzaWNCbG9ja0F0VGV4dE9mZnNldEJl
ZW5FeGVjdXRlZChpbnQgb2Zmc2V0LCBpbnRwdHJfdCBzb3VyY2VJRCwgVk0mIHZtKQorYm9vbCBD
b250cm9sRmxvd1Byb2ZpbGVyOjpoYXNCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0QmVlbkV4ZWN1dGVk
KGludCBvZmZzZXQsIFNvdXJjZUlEIHNvdXJjZUlELCBWTSYgdm0pCiB7CiAgICAgY29uc3QgVmVj
dG9yPEJhc2ljQmxvY2tSYW5nZT4mIGJsb2NrcyA9IGdldEJhc2ljQmxvY2tzRm9yU291cmNlSUQo
c291cmNlSUQsIHZtKTsKICAgICBCYXNpY0Jsb2NrUmFuZ2UgcmFuZ2UgPSBmaW5kQmFzaWNCbG9j
a0F0VGV4dE9mZnNldChvZmZzZXQsIGJsb2Nrcyk7CiAgICAgcmV0dXJuIHJhbmdlLm1faGFzRXhl
Y3V0ZWQ7CiB9CiAKLXNpemVfdCBDb250cm9sRmxvd1Byb2ZpbGVyOjpiYXNpY0Jsb2NrRXhlY3V0
aW9uQ291bnRBdFRleHRPZmZzZXQoaW50IG9mZnNldCwgaW50cHRyX3Qgc291cmNlSUQsIFZNJiB2
bSkKK3NpemVfdCBDb250cm9sRmxvd1Byb2ZpbGVyOjpiYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnRB
dFRleHRPZmZzZXQoaW50IG9mZnNldCwgU291cmNlSUQgc291cmNlSUQsIFZNJiB2bSkKIHsKICAg
ICBjb25zdCBWZWN0b3I8QmFzaWNCbG9ja1JhbmdlPiYgYmxvY2tzID0gZ2V0QmFzaWNCbG9ja3NG
b3JTb3VyY2VJRChzb3VyY2VJRCwgdm0pOwogICAgIEJhc2ljQmxvY2tSYW5nZSByYW5nZSA9IGZp
bmRCYXNpY0Jsb2NrQXRUZXh0T2Zmc2V0KG9mZnNldCwgYmxvY2tzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnRyb2xGbG93UHJvZmlsZXIuaAppbmRleCAxYzQ5
NTU5ZjUyMDUwNzlhMmM2ZDJkYjRkY2UwYjUzNjNkMmI5ZDU1Li42ZGNhMTRkZTYyMTE3ZTgyZjRh
NzZlZDc3NDk0NTBkYmY5NzYxOTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db250cm9sRmxvd1Byb2ZpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29udHJvbEZsb3dQcm9maWxlci5oCkBAIC05MSwxNiArOTEsMTYgQEAgY2xhc3Mg
Q29udHJvbEZsb3dQcm9maWxlciB7CiBwdWJsaWM6CiAgICAgQ29udHJvbEZsb3dQcm9maWxlcigp
OwogICAgIH5Db250cm9sRmxvd1Byb2ZpbGVyKCk7Ci0gICAgQmFzaWNCbG9ja0xvY2F0aW9uKiBn
ZXRCYXNpY0Jsb2NrTG9jYXRpb24oaW50cHRyX3Qgc291cmNlSUQsIGludCBzdGFydE9mZnNldCwg
aW50IGVuZE9mZnNldCk7CisgICAgQmFzaWNCbG9ja0xvY2F0aW9uKiBnZXRCYXNpY0Jsb2NrTG9j
YXRpb24oU291cmNlSUQsIGludCBzdGFydE9mZnNldCwgaW50IGVuZE9mZnNldCk7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCBkdW1wRGF0YSgpIGNvbnN0OwotICAgIFZlY3RvcjxCYXNpY0Js
b2NrUmFuZ2U+IGdldEJhc2ljQmxvY2tzRm9yU291cmNlSUQoaW50cHRyX3Qgc291cmNlSUQsIFZN
JikgY29uc3Q7CisgICAgVmVjdG9yPEJhc2ljQmxvY2tSYW5nZT4gZ2V0QmFzaWNCbG9ja3NGb3JT
b3VyY2VJRChTb3VyY2VJRCwgVk0mKSBjb25zdDsKICAgICBCYXNpY0Jsb2NrTG9jYXRpb24qIGR1
bW15QmFzaWNCbG9jaygpIHsgcmV0dXJuICZtX2R1bW15QmFzaWNCbG9jazsgfQotICAgIEpTX0VY
UE9SVF9QUklWQVRFIGJvb2wgaGFzQmFzaWNCbG9ja0F0VGV4dE9mZnNldEJlZW5FeGVjdXRlZChp
bnQsIGludHB0cl90LCBWTSYpOyAgLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgZm9yIHRlc3Rpbmcu
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGJhc2ljQmxvY2tFeGVjdXRpb25Db3VudEF0
VGV4dE9mZnNldChpbnQsIGludHB0cl90LCBWTSYpOyAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBm
b3IgdGVzdGluZy4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGhhc0Jhc2ljQmxvY2tBdFRl
eHRPZmZzZXRCZWVuRXhlY3V0ZWQoaW50LCBTb3VyY2VJRCwgVk0mKTsgLy8gVGhpcyBmdW5jdGlv
biBleGlzdHMgZm9yIHRlc3RpbmcuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc2l6ZV90IGJhc2lj
QmxvY2tFeGVjdXRpb25Db3VudEF0VGV4dE9mZnNldChpbnQsIFNvdXJjZUlELCBWTSYpOyAvLyBU
aGlzIGZ1bmN0aW9uIGV4aXN0cyBmb3IgdGVzdGluZy4KIAogcHJpdmF0ZToKICAgICB0eXBlZGVm
IEhhc2hNYXA8QmFzaWNCbG9ja0tleSwgQmFzaWNCbG9ja0xvY2F0aW9uKj4gQmxvY2tMb2NhdGlv
bkNhY2hlOwotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnRwdHJfdCwgQmxvY2tMb2NhdGlvbkNhY2hl
PiBTb3VyY2VJREJ1Y2tldHM7CisgICAgdHlwZWRlZiBIYXNoTWFwPFNvdXJjZUlELCBCbG9ja0xv
Y2F0aW9uQ2FjaGU+IFNvdXJjZUlEQnVja2V0czsKIAogICAgIFNvdXJjZUlEQnVja2V0cyBtX3Nv
dXJjZUlEQnVja2V0czsKICAgICBCYXNpY0Jsb2NrTG9jYXRpb24gbV9kdW1teUJhc2ljQmxvY2s7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4
ZWN1dGVkQ2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25I
YXNFeGVjdXRlZENhY2hlLmNwcAppbmRleCBhOGFhZGFkZmQxNzQyYWI0ZTExZjdjYjgxM2EyOWNm
OWFmZWQyMzg1Li42OGMwNjA2YjA3MTMxMjRjN2FhMTcwYzFkYTJkOTk2ZDhlMTRlM2IyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVk
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFz
RXhlY3V0ZWRDYWNoZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LWJvb2wgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpoYXNFeGVjdXRlZEF0T2Zmc2V0KGludHB0
cl90IGlkLCB1bnNpZ25lZCBvZmZzZXQpCitib29sIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZTo6
aGFzRXhlY3V0ZWRBdE9mZnNldChTb3VyY2VJRCBpZCwgdW5zaWduZWQgb2Zmc2V0KQogewogICAg
IGlmIChtX3JhbmdlTWFwLmZpbmQoaWQpID09IG1fcmFuZ2VNYXAuZW5kKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTQ5LDcgKzQ5LDcgQEAgYm9vbCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2Fj
aGU6Omhhc0V4ZWN1dGVkQXRPZmZzZXQoaW50cHRyX3QgaWQsIHVuc2lnbmVkIG9mZnNldCkKICAg
ICByZXR1cm4gaGFzRXhlY3V0ZWQ7CiB9CiAKLXZvaWQgRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hl
OjppbnNlcnRVbmV4ZWN1dGVkUmFuZ2UoaW50cHRyX3QgaWQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNp
Z25lZCBlbmQpIAordm9pZCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6Omluc2VydFVuZXhlY3V0
ZWRSYW5nZShTb3VyY2VJRCBpZCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkKIHsKICAg
ICBpZiAobV9yYW5nZU1hcC5maW5kKGlkKSA9PSBtX3JhbmdlTWFwLmVuZCgpKSB7CiAgICAgICAg
IFJhbmdlTWFwIG1hcDsKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBGdW5jdGlvbkhhc0V4ZWN1dGVk
Q2FjaGU6Omluc2VydFVuZXhlY3V0ZWRSYW5nZShpbnRwdHJfdCBpZCwgdW5zaWduZWQgc3RhcnQK
ICAgICAgICAgbWFwW3JhbmdlXSA9IGZhbHNlOwogfQogCi12b2lkIEZ1bmN0aW9uSGFzRXhlY3V0
ZWRDYWNoZTo6cmVtb3ZlVW5leGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFy
dCwgdW5zaWduZWQgZW5kKQordm9pZCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OnJlbW92ZVVu
ZXhlY3V0ZWRSYW5nZShTb3VyY2VJRCBpZCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkK
IHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gaW5zdGFuY2Ugd2hlcmUg
d2UgcmV0dXJuIGhlcmUsIGJ1dCBjdXJyZW50bHkgZG8gaW4gc29tZSBzaXR1YXRpb25zLiBGaW5k
IG91dCB3aHkuCiAgICAgaWYgKG1fcmFuZ2VNYXAuZmluZChpZCkgPT0gbV9yYW5nZU1hcC5lbmQo
KSkKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBGdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGU6OnJlbW92
ZVVuZXhlY3V0ZWRSYW5nZShpbnRwdHJfdCBpZCwgdW5zaWduZWQgc3RhcnQKICAgICBtYXBbcmFu
Z2VdID0gdHJ1ZTsKIH0KIAotVmVjdG9yPHN0ZDo6dHVwbGU8Ym9vbCwgdW5zaWduZWQsIHVuc2ln
bmVkPj4gRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlOjpnZXRGdW5jdGlvblJhbmdlcyhpbnRwdHJf
dCBpZCkKK1ZlY3RvcjxzdGQ6OnR1cGxlPGJvb2wsIHVuc2lnbmVkLCB1bnNpZ25lZD4+IEZ1bmN0
aW9uSGFzRXhlY3V0ZWRDYWNoZTo6Z2V0RnVuY3Rpb25SYW5nZXMoU291cmNlSUQgaWQpCiB7CiAg
ICAgVmVjdG9yPHN0ZDo6dHVwbGU8Ym9vbCwgdW5zaWduZWQsIHVuc2lnbmVkPj4gcmFuZ2VzKDAp
OwogICAgIGF1dG8gZmluZFJlc3VsdCA9IG1fcmFuZ2VNYXAuZmluZChpZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkhhc0V4ZWN1dGVkQ2FjaGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNo
ZS5oCmluZGV4IDllMmIyMGNmZjcwNTljNDQxNWQ4YzY3OTIzNWIzMjYwMjU3MTI4NmUuLmNhYTky
ZDZmZWU2NGU4OGJkZmM0ZjAwYjZhMzcyZTJiODE5Y2NkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU291cmNlSUQuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1ldGhvZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRVbm9yZGVyZWRN
YXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00OCwxMCArNDksMTAgQEAgcHVibGlj
OgogICAgICAgICB1bnNpZ25lZCBtX2VuZDsKICAgICB9OwogCi0gICAgYm9vbCBoYXNFeGVjdXRl
ZEF0T2Zmc2V0KGludHB0cl90IGlkLCB1bnNpZ25lZCBvZmZzZXQpOwotICAgIHZvaWQgaW5zZXJ0
VW5leGVjdXRlZFJhbmdlKGludHB0cl90IGlkLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5k
KTsKLSAgICB2b2lkIHJlbW92ZVVuZXhlY3V0ZWRSYW5nZShpbnRwdHJfdCBpZCwgdW5zaWduZWQg
c3RhcnQsIHVuc2lnbmVkIGVuZCk7Ci0gICAgVmVjdG9yPHN0ZDo6dHVwbGU8Ym9vbCwgdW5zaWdu
ZWQsIHVuc2lnbmVkPj4gZ2V0RnVuY3Rpb25SYW5nZXMoaW50cHRyX3QgaWQpOworICAgIGJvb2wg
aGFzRXhlY3V0ZWRBdE9mZnNldChTb3VyY2VJRCwgdW5zaWduZWQgb2Zmc2V0KTsKKyAgICB2b2lk
IGluc2VydFVuZXhlY3V0ZWRSYW5nZShTb3VyY2VJRCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGVuZCk7CisgICAgdm9pZCByZW1vdmVVbmV4ZWN1dGVkUmFuZ2UoU291cmNlSUQsIHVuc2lnbmVk
IHN0YXJ0LCB1bnNpZ25lZCBlbmQpOworICAgIFZlY3RvcjxzdGQ6OnR1cGxlPGJvb2wsIHVuc2ln
bmVkLCB1bnNpZ25lZD4+IGdldEZ1bmN0aW9uUmFuZ2VzKFNvdXJjZUlEKTsKIAogcHJpdmF0ZToK
ICAgICB1c2luZyBSYW5nZU1hcCA9IFN0ZFVub3JkZXJlZE1hcDxGdW5jdGlvblJhbmdlLCBib29s
LCBIYXNoTWV0aG9kPEZ1bmN0aW9uUmFuZ2U+PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggYjI3ZThlM2Q2NGRlODZmMzVj
YjQ2NzU4NTc0NmNlZmMzOWE5NWJhMi4uN2NkNzhjNjkyNWUyYTJhMDI1M2Q2MGRiNTZlMzk4N2Zl
MmY4ODczZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxp
bmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxp
bmdQcm9maWxlci5jcHAKQEAgLTkxOCw3ICs5MTgsNyBAQCB1bnNpZ25lZCBTYW1wbGluZ1Byb2Zp
bGVyOjpTdGFja0ZyYW1lOjpmdW5jdGlvblN0YXJ0Q29sdW1uKCkKICAgICByZXR1cm4gc3RkOjpu
dW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogfQogCi1pbnRwdHJfdCBTYW1wbGluZ1By
b2ZpbGVyOjpTdGFja0ZyYW1lOjpzb3VyY2VJRCgpCitTb3VyY2VJRCBTYW1wbGluZ1Byb2ZpbGVy
OjpTdGFja0ZyYW1lOjpzb3VyY2VJRCgpCiB7CiAgICAgc3dpdGNoIChmcmFtZVR5cGUpIHsKICAg
ICBjYXNlIEZyYW1lVHlwZTo6VW5rbm93bjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAppbmRleCA5YWYyNzU2NWQ0NTE4NTg1NDg1ZmM3Yjkw
N2ZlNzNmZTVjY2M3NGRhLi41ODhjZmYwNjI5OWU0YmFhODI4MmFmYWI0Mzc2ZDEwYTliNzI0NTI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2Zp
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgZGlzcGxheU5h
bWVGb3JKU09OVGVzdHMoVk0mKTsgLy8gVXNlZCBmb3IgSlNDIHN0cmVzcyB0ZXN0cyBiZWNhdXNl
IHRoZXkgd2FudCB0aGUgIihhbm9ueW1vdXMgZnVuY3Rpb24pIiBzdHJpbmcgZm9yIGFub255bW91
cyBmdW5jdGlvbnMgYW5kIHRoZXkgd2FudCAiKGV2YWwpIiBmb3IgZXZhbCdkIGNvZGUuCiAgICAg
ICAgIGludCBmdW5jdGlvblN0YXJ0TGluZSgpOwogICAgICAgICB1bnNpZ25lZCBmdW5jdGlvblN0
YXJ0Q29sdW1uKCk7Ci0gICAgICAgIGludHB0cl90IHNvdXJjZUlEKCk7CisgICAgICAgIFNvdXJj
ZUlEIHNvdXJjZUlEKCk7CiAgICAgICAgIFN0cmluZyB1cmwoKTsKICAgICB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKaW5kZXggZjMx
YmQzM2Y2ZWUxZDE4MjAyNjdmMzNiYmExODQzOGFjOWIyNzdhNi4uNzVkYWVlNGI4ZjI4YjViYzEw
ZTBlNjFjMjM2OTBlNjQ5MjA3NTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAg
Q29kZUJsb2NrSGFzaCBoYXNoRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQpIGNvbnN0OwogCiAg
ICAgY29uc3QgU291cmNlQ29kZSYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0K
LSAgICBpbnRwdHJfdCBzb3VyY2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnByb3ZpZGVy
SUQoKTsgfQorICAgIFNvdXJjZUlEIHNvdXJjZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uu
cHJvdmlkZXJJRCgpOyB9CiAgICAgY29uc3QgU291cmNlT3JpZ2luJiBzb3VyY2VPcmlnaW4oKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VPcmlnaW4oKTsgfQogICAg
IC8vIFRoaXMgaXMgTk9UIHRoZSBwYXRoIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGNvbXB1dGlu
ZyByZWxhdGl2ZSBwYXRocyBmcm9tIGEgc2NyaXB0LiBVc2UgU291cmNlT3JpZ2luJ3MgVVJMIGZv
ciB0aGF0LCB0aGUgdmFsdWVzIG1heSBvciBtYXkgbm90IGJlIHRoZSBzYW1lLi4uIFRoaXMgc2hv
dWxkIG9ubHkgYmUgdXNlZCBmb3IgYGVycm9yLnNvdXJjZVVSTGAgYW5kIHN0YWNrIHRyYWNlcy4K
ICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnBy
b3ZpZGVyKCktPnNvdXJjZVVSTCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdGFja0ZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0YWNrRnJhbWUuY3BwCmluZGV4IDZlZTFjNWI5MmNkNTY5MWNmM2U4MTY0M2E2ZTE5YmU0MzYx
OGI5ZGYuLjZiOGYzZGY2MzM1MDQ1ZDVhYzIxZWY1YTA4MmQ0ODY4MDRmYTNlNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCkBAIC01MSw3ICs1MSw3
IEBAIFN0YWNrRnJhbWU6OlN0YWNrRnJhbWUoV2FzbTo6SW5kZXhPck5hbWUgaW5kZXhPck5hbWUp
CiB7CiB9CiAKLWludHB0cl90IFN0YWNrRnJhbWU6OnNvdXJjZUlEKCkgY29uc3QKK1NvdXJjZUlE
IFN0YWNrRnJhbWU6OnNvdXJjZUlEKCkgY29uc3QKIHsKICAgICBpZiAoIW1fY29kZUJsb2NrKQog
ICAgICAgICByZXR1cm4gbm9Tb3VyY2VJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0YWNrRnJhbWUuaAppbmRleCAwNjA5YTU2ZDRlN2IyMmFlOWJmYzUxOTZiM2EyMTQwYjRkM2Uz
ODc3Li4zM2I0YTIwYjNlZjIxNTUzNDRlMTUzYzM4ZTdhNzkwMjNlZTcxZjkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1
YmxpYzoKICAgICAKICAgICB2b2lkIGNvbXB1dGVMaW5lQW5kQ29sdW1uKHVuc2lnbmVkJiBsaW5l
LCB1bnNpZ25lZCYgY29sdW1uKSBjb25zdDsKICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lKFZNJikg
Y29uc3Q7Ci0gICAgaW50cHRyX3Qgc291cmNlSUQoKSBjb25zdDsKKyAgICBTb3VyY2VJRCBzb3Vy
Y2VJRCgpIGNvbnN0OwogICAgIFN0cmluZyBzb3VyY2VVUkwoKSBjb25zdDsKICAgICBTdHJpbmcg
dG9TdHJpbmcoVk0mKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuY3BwCmluZGV4IDA4ZDViOTY4ZjFiYTU3MmNkZTRmNDcz
NWYyNDVlNTJkNTIxNDliNjMuLjE1M2I2NzU4YmI5NGIxMjFlNjZiYjc0MmVlODU4MzNmOWE4NzM2
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlv
bkNhY2hlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRp
b25DYWNoZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0ZDo6
cGFpcjxUeXBlTG9jYXRpb24qLCBib29sPiBUeXBlTG9jYXRpb25DYWNoZTo6Z2V0VHlwZUxvY2F0
aW9uKEdsb2JhbFZhcmlhYmxlSUQgZ2xvYmFsVmFyaWFibGVJRCwgaW50cHRyX3Qgc291cmNlSUQs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFJlZlB0cjxUeXBlU2V0PiYmIGdsb2JhbFR5
cGVTZXQsIFZNKiB2bSkKK3N0ZDo6cGFpcjxUeXBlTG9jYXRpb24qLCBib29sPiBUeXBlTG9jYXRp
b25DYWNoZTo6Z2V0VHlwZUxvY2F0aW9uKEdsb2JhbFZhcmlhYmxlSUQgZ2xvYmFsVmFyaWFibGVJ
RCwgU291cmNlSUQgc291cmNlSUQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFJlZlB0
cjxUeXBlU2V0PiYmIGdsb2JhbFR5cGVTZXQsIFZNKiB2bSkKIHsKICAgICBMb2NhdGlvbktleSBr
ZXk7CiAgICAga2V5Lm1fZ2xvYmFsVmFyaWFibGVJRCA9IGdsb2JhbFZhcmlhYmxlSUQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaAppbmRl
eCA4Njc1OGUyNzE4YTMzYzQ1MTBiMjIzOWIzZmRhMTgxYWJmNzVlYTk1Li5hOGU4OGFkYmQxNWFh
YjgwZTM0MWVlNmE0MzE3YWYzMTI0NTI0MGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJTb3VyY2VJRC5oIgogI2luY2x1ZGUgIlR5cGVMb2NhdGlv
bi5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNZXRo
b2QuaD4KQEAgLTUyLDEyICs1MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgICAgICBH
bG9iYWxWYXJpYWJsZUlEIG1fZ2xvYmFsVmFyaWFibGVJRDsKLSAgICAgICAgaW50cHRyX3QgbV9z
b3VyY2VJRDsKKyAgICAgICAgU291cmNlSUQgbV9zb3VyY2VJRDsKICAgICAgICAgdW5zaWduZWQg
bV9zdGFydDsKICAgICAgICAgdW5zaWduZWQgbV9lbmQ7CiAgICAgfTsKIAotICAgIHN0ZDo6cGFp
cjxUeXBlTG9jYXRpb24qLCBib29sPiBnZXRUeXBlTG9jYXRpb24oR2xvYmFsVmFyaWFibGVJRCwg
aW50cHRyX3QsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFJlZlB0cjxUeXBlU2V0PiYm
LCBWTSopOworICAgIHN0ZDo6cGFpcjxUeXBlTG9jYXRpb24qLCBib29sPiBnZXRUeXBlTG9jYXRp
b24oR2xvYmFsVmFyaWFibGVJRCwgU291cmNlSUQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBl
bmQsIFJlZlB0cjxUeXBlU2V0PiYmLCBWTSopOwogcHJpdmF0ZToKICAgICB1c2luZyBMb2NhdGlv
bk1hcCA9IFN0ZFVub3JkZXJlZE1hcDxMb2NhdGlvbktleSwgVHlwZUxvY2F0aW9uKiwgSGFzaE1l
dGhvZDxMb2NhdGlvbktleT4+OwogICAgIExvY2F0aW9uTWFwIG1fbG9jYXRpb25NYXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVByb2ZpbGVyLmNwcAppbmRleCA2MjIx
MTM5NDliZTlhNzU3ZWQ0MDBiNTJkYTUxMjk4YTMyM2RhYmY2Li43ZTFiY2UyOWJhZmVmZmJjYTY0
ZmM1NDVlYTRhYjg4YzhlZTFmZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlUHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1R5cGVQcm9maWxlci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBUeXBlUHJvZmlsZXI6
Omluc2VydE5ld0xvY2F0aW9uKFR5cGVMb2NhdGlvbiogbG9jYXRpb24pCiAgICAgYnVja2V0LmFw
cGVuZChsb2NhdGlvbik7CiB9CiAKLVN0cmluZyBUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlv
bkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIGRlc2Ny
aXB0b3IsIHVuc2lnbmVkIG9mZnNldCwgaW50cHRyX3Qgc291cmNlSUQsIFZNJiB2bSkKK1N0cmlu
ZyBUeXBlUHJvZmlsZXI6OnR5cGVJbmZvcm1hdGlvbkZvckV4cHJlc3Npb25BdE9mZnNldChUeXBl
UHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIHVuc2lnbmVkIG9mZnNldCwgU291
cmNlSUQgc291cmNlSUQsIFZNJiB2bSkKIHsKICAgICAvLyBUaGlzIHJldHVybnMgYSBKU09OIHN0
cmluZyByZXByZXNlbnRpbmcgYW4gT2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVz
OgogICAgIC8vICAgICBnbG9iYWxUeXBlU2V0OiAnSlNPTjxUeXBlU2V0PiB8IG51bGwnCkBAIC0x
MDIsNyArMTAyLDcgQEAgU3RyaW5nIFR5cGVQcm9maWxlcjo6dHlwZUluZm9ybWF0aW9uRm9yRXhw
cmVzc2lvbkF0T2Zmc2V0KFR5cGVQcm9maWxlclNlYXJjaERlc2MKICAgICByZXR1cm4ganNvbi50
b1N0cmluZygpOwogfQogCi1UeXBlTG9jYXRpb24qIFR5cGVQcm9maWxlcjo6ZmluZExvY2F0aW9u
KHVuc2lnbmVkIGRpdm90LCBpbnRwdHJfdCBzb3VyY2VJRCwgVHlwZVByb2ZpbGVyU2VhcmNoRGVz
Y3JpcHRvciBkZXNjcmlwdG9yLCBWTSYgdm0pCitUeXBlTG9jYXRpb24qIFR5cGVQcm9maWxlcjo6
ZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90LCBTb3VyY2VJRCBzb3VyY2VJRCwgVHlwZVByb2Zp
bGVyU2VhcmNoRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBWTSYgdm0pCiB7CiAgICAgUXVlcnlLZXkg
cXVlcnlLZXkoc291cmNlSUQsIGRpdm90LCBkZXNjcmlwdG9yKTsKICAgICBhdXRvIGl0ZXIgPSBt
X3F1ZXJ5Q2FjaGUuZmluZChxdWVyeUtleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9UeXBlUHJvZmlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1R5cGVQcm9maWxlci5oCmluZGV4IDc3OWNjMDBjMTBkYTllMWViNmNhMTk3ODA1N2ZkYTIx
OWQ4MGNiYzUuLjk3ZDk3M2Y4M2Y4NjZiYWNmYzY5NDRkNmJlMWYxYjA3Mjk0MmE0MjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVQcm9maWxlci5oCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU291cmNlSUQuaCIKICNpbmNsdWRl
ICJUeXBlTG9jYXRpb24uaCIKICNpbmNsdWRlICJUeXBlTG9jYXRpb25DYWNoZS5oIgogI2luY2x1
ZGUgPHd0Zi9CYWcuaD4KQEAgLTUwLDIxICs1MSwyMSBAQCBzdHJ1Y3QgUXVlcnlLZXkgewogICAg
ICAgICAsIG1fc2VhcmNoRGVzY3JpcHRvcihUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yRnVu
Y3Rpb25SZXR1cm4pCiAgICAgeyB9CiAKLSAgICBRdWVyeUtleShpbnRwdHJfdCBzb3VyY2VJRCwg
dW5zaWduZWQgZGl2b3QsIFR5cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3Igc2VhcmNoRGVzY3Jp
cHRvcikKKyAgICBRdWVyeUtleShTb3VyY2VJRCBzb3VyY2VJRCwgdW5zaWduZWQgZGl2b3QsIFR5
cGVQcm9maWxlclNlYXJjaERlc2NyaXB0b3Igc2VhcmNoRGVzY3JpcHRvcikKICAgICAgICAgOiBt
X3NvdXJjZUlEKHNvdXJjZUlEKQogICAgICAgICAsIG1fZGl2b3QoZGl2b3QpCiAgICAgICAgICwg
bV9zZWFyY2hEZXNjcmlwdG9yKHNlYXJjaERlc2NyaXB0b3IpCiAgICAgeyB9CiAKICAgICBRdWVy
eUtleShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAgICAgIDogbV9zb3VyY2VJ
RChJTlRQVFJfTUFYKQorICAgICAgICA6IG1fc291cmNlSUQoVUlOVF9NQVgpCiAgICAgICAgICwg
bV9kaXZvdChVSU5UX01BWCkKICAgICAgICAgLCBtX3NlYXJjaERlc2NyaXB0b3IoVHlwZVByb2Zp
bGVyU2VhcmNoRGVzY3JpcHRvckZ1bmN0aW9uUmV0dXJuKQogICAgIHsgfQogCiAgICAgYm9vbCBp
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IAogICAgIHsgCi0gICAgICAgIHJldHVybiBt
X3NvdXJjZUlEID09IElOVFBUUl9NQVggCisgICAgICAgIHJldHVybiBtX3NvdXJjZUlEID09IFVJ
TlRfTUFYCiAgICAgICAgICAgICAmJiBtX2Rpdm90ID09IFVJTlRfTUFYCiAgICAgICAgICAgICAm
JiBtX3NlYXJjaERlc2NyaXB0b3IgPT0gVHlwZVByb2ZpbGVyU2VhcmNoRGVzY3JpcHRvckZ1bmN0
aW9uUmV0dXJuOwogICAgIH0KQEAgLTgyLDcgKzgzLDcgQEAgc3RydWN0IFF1ZXJ5S2V5IHsKICAg
ICAgICAgcmV0dXJuIGhhc2g7CiAgICAgfQogCi0gICAgaW50cHRyX3QgbV9zb3VyY2VJRDsKKyAg
ICBTb3VyY2VJRCBtX3NvdXJjZUlEOwogICAgIHVuc2lnbmVkIG1fZGl2b3Q7CiAgICAgVHlwZVBy
b2ZpbGVyU2VhcmNoRGVzY3JpcHRvciBtX3NlYXJjaERlc2NyaXB0b3I7CiB9OwpAQCAtMTE2LDE3
ICsxMTcsMTcgQEAgY2xhc3MgVHlwZVByb2ZpbGVyIHsKIHB1YmxpYzoKICAgICBUeXBlUHJvZmls
ZXIoKTsKICAgICB2b2lkIGxvZ1R5cGVzRm9yVHlwZUxvY2F0aW9uKFR5cGVMb2NhdGlvbiosIFZN
Jik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHR5cGVJbmZvcm1hdGlvbkZvckV4cHJl
c3Npb25BdE9mZnNldChUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yLCB1bnNpZ25lZCBvZmZz
ZXQsIGludHB0cl90IHNvdXJjZUlELCBWTSYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmlu
ZyB0eXBlSW5mb3JtYXRpb25Gb3JFeHByZXNzaW9uQXRPZmZzZXQoVHlwZVByb2ZpbGVyU2VhcmNo
RGVzY3JpcHRvciwgdW5zaWduZWQgb2Zmc2V0LCBTb3VyY2VJRCwgVk0mKTsKICAgICB2b2lkIGlu
c2VydE5ld0xvY2F0aW9uKFR5cGVMb2NhdGlvbiopOwogICAgIFR5cGVMb2NhdGlvbkNhY2hlKiB0
eXBlTG9jYXRpb25DYWNoZSgpIHsgcmV0dXJuICZtX3R5cGVMb2NhdGlvbkNhY2hlOyB9Ci0gICAg
VHlwZUxvY2F0aW9uKiBmaW5kTG9jYXRpb24odW5zaWduZWQgZGl2b3QsIGludHB0cl90IHNvdXJj
ZUlELCBUeXBlUHJvZmlsZXJTZWFyY2hEZXNjcmlwdG9yLCBWTSYpOworICAgIFR5cGVMb2NhdGlv
biogZmluZExvY2F0aW9uKHVuc2lnbmVkIGRpdm90LCBTb3VyY2VJRCwgVHlwZVByb2ZpbGVyU2Vh
cmNoRGVzY3JpcHRvciwgVk0mKTsKICAgICBHbG9iYWxWYXJpYWJsZUlEIGdldE5leHRVbmlxdWVW
YXJpYWJsZUlEKCkgeyByZXR1cm4gbV9uZXh0VW5pcXVlVmFyaWFibGVJRCsrOyB9CiAgICAgVHlw
ZUxvY2F0aW9uKiBuZXh0VHlwZUxvY2F0aW9uKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlVHlwZVNl
dENhY2hlKFZNJik7CiAgICAgdm9pZCBkdW1wVHlwZVByb2ZpbGVyRGF0YShWTSYpOwogICAgIAog
cHJpdmF0ZToKLSAgICB0eXBlZGVmIEhhc2hNYXA8aW50cHRyX3QsIFZlY3RvcjxUeXBlTG9jYXRp
b24qPj4gU291cmNlSURUb0xvY2F0aW9uQnVja2V0TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxT
b3VyY2VJRCwgVmVjdG9yPFR5cGVMb2NhdGlvbio+PiBTb3VyY2VJRFRvTG9jYXRpb25CdWNrZXRN
YXA7CiAgICAgU291cmNlSURUb0xvY2F0aW9uQnVja2V0TWFwIG1fYnVja2V0TWFwOwogICAgIFR5
cGVMb2NhdGlvbkNhY2hlIG1fdHlwZUxvY2F0aW9uQ2FjaGU7CiAgICAgdHlwZWRlZiBIYXNoTWFw
PFF1ZXJ5S2V5LCBUeXBlTG9jYXRpb24qPiBUeXBlTG9jYXRpb25RdWVyeUNhY2hlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>