<?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>213103</bug_id>
          
          <creation_ts>2020-06-11 16:36:15 -0700</creation_ts>
          <short_desc>JIT thunks should work on arm64_32</short_desc>
          <delta_ts>2020-06-15 11:57:18 -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>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1661785</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-11 16:36:15 -0700</bug_when>
    <thetext>JIT thunks should work on arm64_32</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661792</commentid>
    <comment_count>1</comment_count>
      <attachid>401694</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-11 17:00:17 -0700</bug_when>
    <thetext>Created attachment 401694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662050</commentid>
    <comment_count>2</comment_count>
      <attachid>401752</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 11:12:11 -0700</bug_when>
    <thetext>Created attachment 401752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662061</commentid>
    <comment_count>3</comment_count>
      <attachid>401755</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 11:36:06 -0700</bug_when>
    <thetext>Created attachment 401755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662109</commentid>
    <comment_count>4</comment_count>
      <attachid>401768</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 13:08:36 -0700</bug_when>
    <thetext>Created attachment 401768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662517</commentid>
    <comment_count>5</comment_count>
      <attachid>401768</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-14 13:43:19 -0700</bug_when>
    <thetext>Comment on attachment 401768
Patch

Looks just right to me, but I probably shouldn&apos;t review because I’m not familiar enough with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662550</commentid>
    <comment_count>6</comment_count>
      <attachid>401768</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-14 21:40:43 -0700</bug_when>
    <thetext>Comment on attachment 401768
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:16
&gt; +        2) MacroAssembler::*Ptr functions call 32/64 bit variants based on
&gt; +        Address space size rather than cpu architecture.

What about call sites where they&apos;re using Ptr as a shortcut for 64-bit? Will those be vetted and changed later on?

&gt; Source/JavaScriptCore/ChangeLog:23
&gt; +        5) numberOfDFGCompiles should report a big number for useBaselineJIT=0

you should say why

&gt; Source/JavaScriptCore/assembler/MacroAssembler.h:1253
&gt; +        bool shouldBlindDouble(double value)

this indentation looks off

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:155
&gt; +        if (b == ARM64Registers::sp)
&gt; +            std::swap(a, b);

is this required by the architecture?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:2510
&gt;      void signExtend32ToPtr(TrustedImm32 imm, RegisterID dest)
&gt;      {
&gt; -        move(TrustedImmPtr(reinterpret_cast&lt;void*&gt;(static_cast&lt;intptr_t&gt;(imm.m_value))), dest);
&gt; +        move(TrustedImm64(imm.m_value), dest);
&gt;      }

Why is this needed for address32? Shouldn&apos;t we doing a 32-bit-mov?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:447
&gt; +        if (!imm.m_value)
&gt; +            move(src, dest);
&gt; +        else
&gt; +            m_assembler.ror(dest, src, imm.m_value &amp; 0x1f);

do these have the same semantics for what happen to upper bits?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662714</commentid>
    <comment_count>7</comment_count>
      <attachid>401768</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-15 11:08:09 -0700</bug_when>
    <thetext>Comment on attachment 401768
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:16
&gt;&gt; +        Address space size rather than cpu architecture.
&gt; 
&gt; What about call sites where they&apos;re using Ptr as a shortcut for 64-bit? Will those be vetted and changed later on?

Yeah, I&apos;m going through those as I go. I couldn&apos;t think of an automated way of checking for this with the way our current code is laid out. Ideally, we&apos;d have something that returned the sizeof(&lt;member&gt;) in all our offsetOf* functions so we can assert it&apos;s the correct size.

&gt;&gt; Source/JavaScriptCore/ChangeLog:23
&gt;&gt; +        5) numberOfDFGCompiles should report a big number for useBaselineJIT=0
&gt; 
&gt; you should say why

Sure.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssembler.h:1253
&gt;&gt; +        bool shouldBlindDouble(double value)
&gt; 
&gt; this indentation looks off

indeed, will fix.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:155
&gt;&gt; +            std::swap(a, b);
&gt; 
&gt; is this required by the architecture?

Not sure, I just copied the code for add64... I didn&apos;t vet it in detail.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:2510
&gt;&gt;      }
&gt; 
&gt; Why is this needed for address32? Shouldn&apos;t we doing a 32-bit-mov?

You sometimes need to signExtend to the full register size as the instruction operates on the full 64-bit operand. This should likely be renamed to signExtendToRegister as that is how we use for the most part but identifying which spots are which is hard.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h:447
&gt;&gt; +            m_assembler.ror(dest, src, imm.m_value &amp; 0x1f);
&gt; 
&gt; do these have the same semantics for what happen to upper bits?

Huh? This is only for armv7? What upper bits are you talking about?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662719</commentid>
    <comment_count>8</comment_count>
      <attachid>401912</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-15 11:21:32 -0700</bug_when>
    <thetext>Created attachment 401912
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662744</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-15 11:56:09 -0700</bug_when>
    <thetext>Committed r263049: &lt;https://trac.webkit.org/changeset/263049&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401912.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662745</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-15 11:57:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/64373326&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401694</attachid>
            <date>2020-06-11 17:00:17 -0700</date>
            <delta_ts>2020-06-12 11:12:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213103-20200611170016.patch</filename>
            <type>text/plain</type>
            <size>29165</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OGFhZTM5ODIyODFiNzhmMjc1ODNkMzkxNTFlNGNjZjhkZDA4MGE3Li4zN2I1MjljYzI1NjlmNjky
NmZjZTM3ZWE3ZTgxOWI4YWI1YThjMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OCBAQAorMjAyMC0wNi0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBKSVQgdGh1bmtzIHNob3VsZCB3b3JrIG9uIGFybTY0XzMyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGZp
eGVzIHZhcmlvdXMgaXNzdWVzIHdoZW4gcnVubmluZyBKU0Mgb24gYXJtNjRfMzIgd2l0aAorICAg
ICAgICB1c2VKSVQ9MSBhbmQgdXNlQmFzZWxpbmVKSVQ9MC4gSW4gcGFydGljdWxhciB0aGlzIHBh
dGNoIG1ha2VzIHRoZQorICAgICAgICBmb2xsb3dpbmcgY2hhbmdlczoKKworICAgICAgICAxKSBT
Y2FsZVB0ciBpcyBub3cganVzdCBwYXJ0IG9mIHRoZSBTY2FsZSBlbnVtIGFuZCBpcyBzZXQgYmFz
ZWQgb24KKyAgICAgICAgdGhlIHNpemUgb2YgdGhlIGFkZHJlc3Mgc3BhY2UuCisKKyAgICAgICAg
MikgTWFjcm9Bc3NlbWJsZXI6OipQdHIgZnVuY3Rpb25zIGNhbGwgMzIvNjQgYml0IHZhcmlhbnRz
IGJhc2VkIG9uCisgICAgICAgIEFkZHJlc3Mgc3BhY2Ugc2l6ZSByYXRoZXIgdGhhbiBjcHUgYXJj
aGl0ZWN0dXJlLgorCisgICAgICAgIDMpIEFkZCBzb21lIG1pc3NpbmcgdmFyaWFudHMgb2YgZnVu
Y3Rpb25zIGZvciB3aGVuIHBvaW50ZXJzIGFyZSAzMi1iaXQuCisKKyAgICAgICAgNCkgQWRkIGEg
bG9hZC9zdG9yZVJlZyBmdW5jdGlvbiB0aGF0IHN0b3JlcyBhIGZ1bGwgcmVnaXN0ZXIgcmVnYXJk
bGVzcworICAgICAgICBvZiBwb2ludGVyIHNpemUgZm9yIHN0b3JpbmcvbG9hZGluZyBjYWxsZWUg
c2F2ZXMuCisKKyAgICAgICAgNSkgbnVtYmVyT2ZERkdDb21waWxlcyBzaG91bGQgcmVwb3J0IGEg
YmlnIG51bWJlciBmb3IgdXNlQmFzZWxpbmVKSVQ9MAorCisgICAgICAgIDYpIEFzc2VydCBCYXNl
SW5kZXggaGFzIGEgc2NhbGUgb2YgUHRyU2l6ZSBvciBUaW1lc09uZSAoZm9yIHByZS1zY2FsZWQK
KyAgICAgICAgdmFsdWVzKSB3aGVuIHBhc3NlZCB0byBhIGxvYWQvc3RvcmVQdHIgZnVuY3Rpb24u
CisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAg
ICAoSlNDOjpBYnN0cmFjdE1hY3JvQXNzZW1ibGVyOjp0aW1lc1B0cik6CisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpy
b3RhdGVSaWdodFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpsb2FkUHRyKToK
KyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmxvYWRQdHJXaXRoQ29tcGFjdEFkZHJlc3NP
ZmZzZXRQYXRjaCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpicmFuY2hQdHIpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c3RvcmVQdHIpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6c2hvdWxkQmxpbmREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlcjo6bW92ZURvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdG9y
ZTY0KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjphZGQzMik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OnNpZ25FeHRlbmQzMlRvUHRyKToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk02NDo6bG9hZFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
NjQ6OmNhbGwpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpmYXJKdW1wKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODYuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQu
aDoKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6QXNz
ZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVjdHVyZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5
SGVscGVyczo6cmVzdG9yZUNhbGxlZVNhdmVzRnJvbUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZl
cik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6Y29weUNhbGxlZVNhdmVzVG9FbnRy
eUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXJJbXBsKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxw
ZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3RvcmVSZWcpOgorICAgICAg
ICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmxvYWRSZWcpOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OmVtaXRNYXRlcmlhbGl6ZVRhZ0NoZWNrUmVnaXN0ZXJzKToKKyAgICAgICAgKEpT
Qzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cik6CisgICAg
ICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXIzMik6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEdldEZyb21DYWxsRnJhbWVIZWFk
ZXI2NCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFB1dFRvQ2FsbEZyYW1l
SGVhZGVyKToKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmNwcDoKKyAgICAgICAgKEpT
Qzo6bmF0aXZlRm9yR2VuZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1lL1Rlc3RSdW5uZXJVdGls
cy5jcHA6CisgICAgICAgIChKU0M6Om51bWJlck9mREZHQ29tcGlsZXMpOgorCiAyMDIwLTA2LTA5
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gU2hy
aW5rIF9fREFUQSwoX19kYXRhLF9fYnNzLF9fY29tbW9uKSBtb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCmlu
ZGV4IGE3MWQwODgzZTYyZmM4YTUyMjQ2ZGViMTcyZTJkMDg1N2I2MzY4OTYuLjM1ZGJjOTUwMDhj
MmEwZDA1NmIwMDQ2ZDBjZTZhNjU1YTczYzZkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCkBAIC0xMjAs
MTUgKzEyMCw5IEBAIHB1YmxpYzoKICAgICAgICAgVGltZXNUd28sCiAgICAgICAgIFRpbWVzRm91
ciwKICAgICAgICAgVGltZXNFaWdodCwKKyAgICAgICAgU2NhbGVQdHIgPSBpc0FkZHJlc3M2NEJp
dCgpID8gVGltZXNFaWdodCA6IFRpbWVzRm91ciwKICAgICB9OwogICAgIAotICAgIHN0YXRpYyBT
Y2FsZSB0aW1lc1B0cigpCi0gICAgewotICAgICAgICBpZiAoc2l6ZW9mKHZvaWQqKSA9PSA0KQot
ICAgICAgICAgICAgcmV0dXJuIFRpbWVzRm91cjsKLSAgICAgICAgcmV0dXJuIFRpbWVzRWlnaHQ7
Ci0gICAgfQotICAgIAogICAgIHN0cnVjdCBCYXNlSW5kZXg7CiAgICAgCiAgICAgc3RhdGljIFJl
Z2lzdGVySUQgd2l0aFN3YXBwZWRSZWdpc3RlcihSZWdpc3RlcklEIG9yaWdpbmFsLCBSZWdpc3Rl
cklEIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKaW5kZXggYmY5ZTkwYjNkNWEwOGRhMzRkMzUxMGI2
NzFhMDYwNjM5NTg5ZjFiMi4uM2Q2YjkwOTk1MDY0ZjY5YWU5NjJmNjIyZmY3ODQwZDkwZGIyMjFm
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXIuaApAQCAtOTUsNiArOTUsNyBAQCB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2UgPSBUQVJHRVRf
TUFDUk9BU1NFTUJMRVI7CiAKIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNz
ZW1ibGVyQmFzZSB7CiBwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IE1hY3JvQXNzZW1ibGVyQmFz
ZTsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBuZXh0UmVnaXN0ZXIoUmVnaXN0
ZXJJRCByZWcpCiAgICAgewpAQCAtMTUwLDYgKzE1MSwxMiBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
TWFjcm9Bc3NlbWJsZXJCYXNlOjp1cnNoaWZ0MzI7CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJC
YXNlOjp4b3IzMjsKIAorI2lmIENQVShBUk02NCkgfHwgQ1BVKFg4Nl82NCkKKyAgICB1c2luZyBN
YWNyb0Fzc2VtYmxlckJhc2U6OmFuZDY0OworICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6
Y29udmVydEludDMyVG9Eb3VibGU7CisgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpzdG9y
ZTY0OworI2VuZGlmCisKICAgICBzdGF0aWMgYm9vbCBpc1B0ckFsaWduZWRBZGRyZXNzT2Zmc2V0
KHB0cmRpZmZfdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBzdGF0aWNf
Y2FzdDxpbnQzMl90Pih2YWx1ZSk7CkBAIC01NDEsOCArNTQ4LDcgQEAgcHVibGljOgogCiAgICAg
Ly8gUHRyIG1ldGhvZHMKICAgICAvLyBPbiAzMi1iaXQgcGxhdGZvcm1zIChpLmUuIHg4NiksIHRo
ZXNlIG1ldGhvZHMgZGlyZWN0bHkgbWFwIG9udG8gdGhlaXIgMzItYml0IGVxdWl2YWxlbnRzLgot
ICAgIC8vIEZJWE1FOiBzaG91bGQgdGhpcyB1c2UgYSB0ZXN0IGZvciAzMi1iaXRuZXNzIGluc3Rl
YWQgb2YgdGhpcyBzcGVjaWZpYyBleGNlcHRpb24/Ci0jaWYgIUNQVShYODZfNjQpICYmICFDUFUo
QVJNNjQpCisjaWYgIUNQVShBRERSRVNTNjQpCiAgICAgdm9pZCBhZGRQdHIoQWRkcmVzcyBzcmMs
IFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGFkZDMyKHNyYywgZGVzdCk7CkBAIC02
NTgsNiArNjY0LDExIEBAIHB1YmxpYzoKICAgICAgICAgb3IzMihpbW0sIGRlc3QpOwogICAgIH0K
IAorICAgIHZvaWQgcm90YXRlUmlnaHRQdHIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBz
cmNEc3QpCisgICAgeworICAgICAgICByb3RhdGVSaWdodDMyKGltbSwgc3JjRHN0KTsKKyAgICB9
CisKICAgICB2b2lkIHN1YlB0cihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgc3ViMzIoc3JjLCBkZXN0KTsKQEAgLTcwMCw2ICs3MTEsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGxvYWRQdHIoQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CisgICAgICAgIEFTU0VSVChhZGRyZXNzLnNjYWxlID09IFNjYWxlUHRyIHx8IGFkZHJl
c3Muc2NhbGUgPT0gVGltZXNPbmUpOwogICAgICAgICBsb2FkMzIoYWRkcmVzcywgZGVzdCk7CiAg
ICAgfQogCkBAIC03MjksMTEgKzc0MSw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVy
biBsb2FkMzJXaXRoQ29tcGFjdEFkZHJlc3NPZmZzZXRQYXRjaChhZGRyZXNzLCBkZXN0KTsKICAg
ICB9Ci0KLSAgICB2b2lkIG1vdmUoSW1tUHRyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQotICAgIHsK
LSAgICAgICAgbW92ZShJbW0zMihpbW0uYXNUcnVzdGVkSW1tUHRyKCkpLCBkZXN0KTsKLSAgICB9
CiAgICAgCiAgICAgdm9pZCBjb21wYXJlUHRyKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCwgUmVn
aXN0ZXJJRCBsZWZ0LCBUcnVzdGVkSW1tMzIgcmlnaHQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
CkBAIC04NzAsNyArODc3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJs
ZXJCYXNlOjpicmFuY2hUZXN0OChjb25kLCBBZGRyZXNzKGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5v
ZmZzZXQpLCBtYXNrKTsKICAgICB9CiAKLSNlbHNlIC8vICFDUFUoWDg2XzY0KSAmJiAhQ1BVKEFS
TTY0KQorI2Vsc2UgLy8gIUNQVShBRERSRVNTNjQpCiAKICAgICB2b2lkIGFkZFB0cihSZWdpc3Rl
cklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAgLTEwNTAsNiArMTA1Nyw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgbG9hZFB0cihCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKKyAgICAgICAgQVNTRVJUKGFkZHJlc3Muc2NhbGUgPT0gU2NhbGVQdHIgfHwg
YWRkcmVzcy5zY2FsZSA9PSBUaW1lc09uZSk7CiAgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBkZXN0
KTsKICAgICB9CiAKQEAgLTEyMTksMTAgKzEyMjcsMzAgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYnJhbmNoU3ViNjQoY29uZCwgc3JjMSwgc3JjMiwgZGVzdCk7CiAgICAgfQogCi0gICAgdXNp
bmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjphbmQ2NDsKLSAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJh
c2U6OmNvbnZlcnRJbnQzMlRvRG91YmxlOwotICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6
c3RvcmU2NDsKLSAgICBib29sIHNob3VsZEJsaW5kRG91YmxlKGRvdWJsZSB2YWx1ZSkKKyAgICBK
dW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwg
SW1tUHRyIHJpZ2h0KQorICAgIHsKKyAgICAgICAgaWYgKHNob3VsZEJsaW5kKHJpZ2h0KSAmJiBo
YXZlU2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKSkgeworICAgICAgICAgICAgUmVnaXN0ZXJJ
RCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOworICAgICAg
ICAgICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChy
aWdodCksIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNv
bmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJy
YW5jaFB0cihjb25kLCBsZWZ0LCByaWdodC5hc1RydXN0ZWRJbW1QdHIoKSk7CisgICAgfQorCisg
ICAgdm9pZCBzdG9yZVB0cihJbW1QdHIgaW1tLCBBZGRyZXNzIGRlc3QpCisgICAgeworICAgICAg
ICBpZiAoc2hvdWxkQmxpbmQoaW1tKSAmJiBoYXZlU2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmco
KSkgeworICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVn
aXN0ZXJGb3JCbGluZGluZygpOworICAgICAgICAgICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0
YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChpbW0pLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAg
ICAgICAgc3RvcmVQdHIoc2NyYXRjaFJlZ2lzdGVyLCBkZXN0KTsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBzdG9yZVB0cihpbW0uYXNUcnVzdGVkSW1tUHRyKCksIGRlc3QpOworICAgIH0K
KworI2VuZGlmIC8vICFDUFUoQUREUkVTUzY0KQorCisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAg
ICAgYm9vbCBzaG91bGRCbGluZERvdWJsZShkb3VibGUgdmFsdWUpCiAgICAgewogICAgICAgICAv
LyBEb24ndCB0cnVzdCBOYU4gb3IgKy8tSW5maW5pdHkKICAgICAgICAgaWYgKCFzdGQ6OmlzZmlu
aXRlKHZhbHVlKSkKQEAgLTE0MTUsMTMgKzE0NDMsMTEgQEAgcHVibGljOgogICAgICAgICAgICAg
bW92ZShpbW0uYXNUcnVzdGVkSW1tNjQoKSwgZGVzdCk7CiAgICAgfQogCi0jaWYgQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KQogICAgIHZvaWQgbW92ZURvdWJsZShJbW02NCBpbW0sIEZQUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsK
ICAgICAgICAgbW92ZTY0VG9Eb3VibGUoc2NyYXRjaFJlZ2lzdGVyKCksIGRlc3QpOwogICAgIH0K
LSNlbmRpZgogCiAgICAgdm9pZCBhbmQ2NChJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAg
ICB7CkBAIC0xNDMyLDM4ICsxNDU4LDcgQEAgcHVibGljOgogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIGFuZDY0KGltbS5hc1RydXN0ZWRJbW0zMigpLCBkZXN0KTsKICAgICB9Ci0KLSAgICBK
dW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwg
SW1tUHRyIHJpZ2h0KQotICAgIHsKLSAgICAgICAgaWYgKHNob3VsZEJsaW5kKHJpZ2h0KSAmJiBo
YXZlU2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKSkgewotICAgICAgICAgICAgUmVnaXN0ZXJJ
RCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOwotICAgICAg
ICAgICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChy
aWdodCksIHNjcmF0Y2hSZWdpc3Rlcik7Ci0gICAgICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNv
bmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3Rlcik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGJy
YW5jaFB0cihjb25kLCBsZWZ0LCByaWdodC5hc1RydXN0ZWRJbW1QdHIoKSk7Ci0gICAgfQotICAg
IAotICAgIHZvaWQgc3RvcmVQdHIoSW1tUHRyIGltbSwgQWRkcmVzcyBkZXN0KQotICAgIHsKLSAg
ICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkgJiYgaGF2ZVNjcmF0Y2hSZWdpc3RlckZvckJsaW5k
aW5nKCkpIHsKLSAgICAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gc2NyYXRj
aFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKLSAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRD
b25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQoaW1tKSwgc2NyYXRjaFJlZ2lzdGVyKTsKLSAg
ICAgICAgICAgIHN0b3JlUHRyKHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7Ci0gICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgc3RvcmVQdHIoaW1tLmFzVHJ1c3RlZEltbVB0cigpLCBkZXN0KTsKLSAg
ICB9Ci0KLSAgICB2b2lkIHN0b3JlNjQoSW1tNjQgaW1tLCBBZGRyZXNzIGRlc3QpCi0gICAgewot
ICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSAmJiBoYXZlU2NyYXRjaFJlZ2lzdGVyRm9yQmxp
bmRpbmcoKSkgewotICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3Jh
dGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOwotICAgICAgICAgICAgbG9hZFJvdGF0aW9uQmxpbmRl
ZENvbnN0YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChpbW0pLCBzY3JhdGNoUmVnaXN0ZXIpOwot
ICAgICAgICAgICAgc3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIsIGRlc3QpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIHN0b3JlNjQoaW1tLmFzVHJ1c3RlZEltbTY0KCksIGRlc3QpOwotICAg
IH0KLQotI2VuZGlmIC8vICFDUFUoWDg2XzY0KQorI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAK
ICNpZiAhQ1BVKFg4NikgJiYgIUNQVShYODZfNjQpICYmICFDUFUoQVJNNjQpCiAgICAgLy8gV2Ug
c2hvdWxkIGltcGxlbWVudCB0aGlzIHRoZSByaWdodCB3YXkgZXZlbnR1YWxseSwgYnV0IGZvciBu
b3csIGl0J3MgZmluZSBiZWNhdXNlIGl0IGFyaXNlcyBzbwpAQCAtMTcxOSw3ICsxNzE0LDE4IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN0b3JlNjQodmFsdWUsIGFkZHJlc3NGb3JQb2tlKGlu
ZGV4KSk7CiAgICAgfQotI2VuZGlmIC8vIENQVShYODZfNjQpCisKKyAgICB2b2lkIHN0b3JlNjQo
SW1tNjQgaW1tLCBBZGRyZXNzIGRlc3QpCisgICAgeworICAgICAgICBpZiAoc2hvdWxkQmxpbmQo
aW1tKSAmJiBoYXZlU2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKSkgeworICAgICAgICAgICAg
UmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygp
OworICAgICAgICAgICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0YW50KHJvdGF0aW9uQmxpbmRD
b25zdGFudChpbW0pLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICAgICAgc3RvcmU2NChzY3Jh
dGNoUmVnaXN0ZXIsIGRlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0b3JlNjQo
aW1tLmFzVHJ1c3RlZEltbTY0KCksIGRlc3QpOworICAgIH0KKworI2VuZGlmIC8vIENQVShYODZf
NjQpIHx8IENQVShBUk02NCkKICAgICAKICAgICB2b2lkIHN0b3JlMzIoSW1tMzIgaW1tLCBBZGRy
ZXNzIGRlc3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCBlMjcyMjYwNjQxODdjNTVlMDA1ZmE5NzQ3
ODA3YjE3YzI3Mzk5NjAxLi4zYmQyYmFjY2E0MjY3ZGNlZDM2MmMyZTAyNDU0MThkYjNmOGYwMDU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNNjQuaApAQCAtODksOCArODksNiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGUgPEFz
c2VtYmxlcjo6Q29weUZ1bmN0aW9uIGNvcHk+CiAgICAgc3RhdGljIHZvaWQgbGluayhMaW5rUmVj
b3JkJiByZWNvcmQsIHVpbnQ4X3QqIGZyb20sIGNvbnN0IHVpbnQ4X3QqIGZyb21JbnN0cnVjdGlv
biwgdWludDhfdCogdG8pIHsgcmV0dXJuIEFzc2VtYmxlcjo6bGluazxjb3B5PihyZWNvcmQsIGZy
b20sIGZyb21JbnN0cnVjdGlvbiwgdG8pOyB9CiAKLSAgICBzdGF0aWMgY29uc3RleHByIFNjYWxl
IFNjYWxlUHRyID0gVGltZXNFaWdodDsKLQogICAgIHN0YXRpYyBib29sIGlzQ29tcGFjdFB0ckFs
aWduZWRBZGRyZXNzT2Zmc2V0KHB0cmRpZmZfdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIC8vIFRo
aXMgaXMgdGhlIGxhcmdlc3QgMzItYml0IGFjY2VzcyBhbGxvd2VkLCBhbGlnbmVkIHRvIDY0LWJp
dCBib3VuZGFyeS4KQEAgLTE1MiwxMyArMTUwLDE4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRk
MzIoUmVnaXN0ZXJJRCBhLCBSZWdpc3RlcklEIGIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChhICE9IEFSTTY0UmVnaXN0ZXJzOjpzcCAmJiBiICE9IEFSTTY0UmVnaXN0
ZXJzOjpzcCk7CisgICAgICAgIEFTU0VSVChhICE9IEFSTTY0UmVnaXN0ZXJzOjpzcCB8fCBiICE9
IEFSTTY0UmVnaXN0ZXJzOjpzcCk7CisgICAgICAgIGlmIChiID09IEFSTTY0UmVnaXN0ZXJzOjpz
cCkKKyAgICAgICAgICAgIHN0ZDo6c3dhcChhLCBiKTsKICAgICAgICAgbV9hc3NlbWJsZXIuYWRk
PDMyPihkZXN0LCBhLCBiKTsKICAgICB9CiAKICAgICB2b2lkIGFkZDMyKFJlZ2lzdGVySUQgc3Jj
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRl
c3QsIGRlc3QsIHNyYyk7CisgICAgICAgIGlmIChzcmMgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQor
ICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDMyPihkZXN0LCBzcmMsIGRlc3QpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRlc3QsIGRlc3QsIHNyYyk7
CiAgICAgfQogCiAgICAgdm9pZCBhZGQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRl
c3QpCkBAIC0yMjQsNiArMjI3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgYWRkMzIoZGF0YVRlbXBS
ZWdpc3RlciwgZGVzdCk7CiAgICAgfQogCisgICAgdm9pZCBhZGQzMihBYnNvbHV0ZUFkZHJlc3Mg
c3JjLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBsb2FkMzIoc3JjLm1fcHRyLCBn
ZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBhZGQz
MihkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyAgICB9CisKICAgICB2b2lkIGFkZDY0KFJlZ2lz
dGVySUQgYSwgUmVnaXN0ZXJJRCBiLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBB
U1NFUlQoYSAhPSBBUk02NFJlZ2lzdGVyczo6c3AgfHwgYiAhPSBBUk02NFJlZ2lzdGVyczo6c3Ap
OwpAQCAtMjQ5Nyw5ICsyNTA2LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzaWduRXh0ZW5kMzJU
b1B0cihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8aW50
cHRyX3Q+KGltbS5tX3ZhbHVlKSkpLCBkZXN0KTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tNjQo
aW1tLm1fdmFsdWUpLCBkZXN0KTsKICAgICB9Ci0gICAgCisKICAgICB2b2lkIHNpZ25FeHRlbmQz
MlRvUHRyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBt
X2Fzc2VtYmxlci5zeHR3KGRlc3QsIHNyYyk7CkBAIC0zMzI0LDYgKzMzMzMsMTcgQEAgcHVibGlj
OgogCiAgICAgLy8gSnVtcHMsIGNhbGxzLCByZXR1cm5zCiAKKyAgICAvLyBkdXBsaWNhdGUgTWFj
cm9Bc3NlbWJsZXIncyBsb2FkUHRyIGZvciBsb2FkaW5nIGNhbGwgdGFyZ2V0cy4KKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBsb2FkUHRyKEFy
Z3MuLi4gYXJncykKKyAgICB7CisjaWYgQ1BVKEFERFJFU1M2NCkKKyAgICAgICAgbG9hZDY0KGFy
Z3MuLi4pOworI2Vsc2UKKyAgICAgICAgbG9hZDMyKGFyZ3MuLi4pOworI2VuZGlmCisgICAgfQor
CiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoUHRyVGFnKQogICAgIHsKICAgICAgICAgQXNz
ZW1ibGVyTGFiZWwgcG9pbnRlckxhYmVsID0gbV9hc3NlbWJsZXIubGFiZWwoKTsKQEAgLTMzNDQs
NyArMzM2NCw3IEBAIHB1YmxpYzoKIAogICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKEFkZHJl
c3MgYWRkcmVzcywgUHRyVGFnIHRhZykKICAgICB7Ci0gICAgICAgIGxvYWQ2NChhZGRyZXNzLCBn
ZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBsb2Fk
UHRyKGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7
CiAgICAgICAgIHJldHVybiBjYWxsKGRhdGFUZW1wUmVnaXN0ZXIsIHRhZyk7CiAgICAgfQogCkBA
IC0zMzczLDIwICszMzkzLDIwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmFySnVtcChBZGRyZXNz
IGFkZHJlc3MsIFB0clRhZykKICAgICB7Ci0gICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNo
ZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBsb2FkUHRyKGFk
ZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CiAgICAg
ICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KICAgICAKICAgICB2
b2lkIGZhckp1bXAoQmFzZUluZGV4IGFkZHJlc3MsIFB0clRhZykKICAgICB7Ci0gICAgICAgIGxv
YWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkp
OworICAgICAgICBsb2FkUHRyKGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFu
ZEludmFsaWRhdGUoKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIp
OwogICAgIH0KIAogICAgIHZvaWQgZmFySnVtcChBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgUHRy
VGFnKQogICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MubV9wdHIpLCBn
ZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAgICBsb2Fk
NjQoQWRkcmVzcyhkYXRhVGVtcFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAg
IGxvYWRQdHIoQWRkcmVzcyhkYXRhVGVtcFJlZ2lzdGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcu
aAppbmRleCA5NzY5MTFkZGY3NGY1MDU2ZDllNDEyN2RjNzhmOGEzMGJjMzIxYTc5Li4wMWM5NGIw
YjFkMjg5N2FiMmQwM2IyNjJkNzIyZDJmYTlhNmJjNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTA1LDgg
KzEwNSw2IEBAIHB1YmxpYzoKICAgICB9OwogICAgIAogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1lc0ZvdXI7Ci0KICAgICBlbnVtIFJlbGF0aW9uYWxD
b25kaXRpb24gewogICAgICAgICBFcXVhbCA9IEFSTXY3QXNzZW1ibGVyOjpDb25kaXRpb25FUSwK
ICAgICAgICAgTm90RXF1YWwgPSBBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uTkUsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApp
bmRleCAzZjE5OTYwYzczNDNkMWU3YmJiYTRiZjljYjUyMDQyNTgwMGJmYTczLi5lYWJlN2E2MDk2
OWIyZWUwMzNmNDU2MTg0NTM3ZTFhNjZkOWMxMjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTYxLDggKzYxLDYg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gZ2V0TFNCU2V0KHYpOwogICAgIH0KIAotICAgIHN0
YXRpYyBjb25zdGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1lc0ZvdXI7Ci0KICAgICAvLyBGb3Ig
c3RvcmluZyBpbW1lZGlhdGUgbnVtYmVyCiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklE
IGltbVRlbXBSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnQwOwogICAgIC8vIEZvciBzdG9yaW5n
IGRhdGEgbG9hZGVkIGZyb20gdGhlIG1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCmluZGV4IGI4MWMyMmJmODM3MjM4MzBh
N2UzOGQ4ZGEzZWRjOTI4M2VlNGQ2MDAuLjhkMDIyZTNiODI1ZjU4ZDJlZjQ4ODIxYjFjMmE5NDI1
NjkxZDFiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2LmgKQEAgLTM2LDggKzM2LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbnVtR1BScyA9IDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBudW1GUFJzID0gODsKICAgICAKLSAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxl
UHRyID0gVGltZXNGb3VyOwotCiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFk
ZDMyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphbmQzMjsKICAgICB1c2lu
ZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YnJhbmNoQWRkMzI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXgg
MDNlYzQ0MDA1MDMxZmRmNTE5Y2U1OGFhMjJmNzkxNTc1ZTA1NDkyMi4uNTZhNmZkMTZhZGY3NTUw
YzIyZjdmOTUzZGNhMTgyNjAzNmQ2YmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtNDAsOCArNDAsNiBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1HUFJzID0gMTY7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1GUFJzID0gMTY7CiAgICAgCi0gICAgc3Rh
dGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRWlnaHQ7Ci0KICAgICBzdGF0aWMg
Y29uc3RleHByIFJlZ2lzdGVySUQgSW52YWxpZEdQUlJlZyA9IFg4NlJlZ2lzdGVyczo6SW52YWxp
ZEdQUlJlZzsKIAogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphZGQzMjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAppbmRleCBjZWViZTA3NWE2
MmYzNzcyN2U3ZTc2OTQ3Y2MzODFjNmEwOWM1YTk0Li4zYTQ2YjM1MDE4NGU0MzRkMmNkMzY1Y2Vm
Mzg5ZTA5M2U5MjQwNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlck1hY3Jvcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNy
b3MuY3BwCkBAIC01MzksNyArNTM5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
ICAgIEdQUlJlZyBzY3JhdGNoID0gcGFyYW1zLmdwU2NyYXRjaCgwKTsKIAogICAgICAgICAgICAg
ICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGp1bXBUYWJs
ZSksIHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhl
bHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBpbmRleCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0cigp
KSwgc2NyYXRjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVs
cGVyczo6QmFzZUluZGV4KHNjcmF0Y2gsIGluZGV4LCBDQ2FsbEhlbHBlcnM6OlNjYWxlUHRyKSwg
c2NyYXRjaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBqaXQuZmFySnVtcChzY3JhdGNoLCBK
U1N3aXRjaFB0clRhZyk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGxhYmVs
cyBhcmUgZ3VhcmFudGVlZCB0byBiZSBwb3B1bGF0ZWQgYmVmb3JlIGVpdGhlciBsYXRlIHBhdGhz
IG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcAppbmRleCAxMjQwZWI0NWI2MDVl
MDVmMzAxM2M3NmUwNjNlNzQ5ODk2ZmI5ZWE0Li5iNmM2ZTJjYTFmZWMwZjg4MTczNzc5Y2FmYTY1
OGJlNDc3YTllOTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAKQEAgLTE2
NzksNyArMTY3OSw3IEBAIHZvaWQgdGVzdEludGVycHJldGVyKCkKICAgICAgICAgICAgIEdQUlJl
ZyBzY3JhdGNoID0gcGFyYW1zLmdwU2NyYXRjaCgwKTsKIAogICAgICAgICAgICAgaml0Lm1vdmUo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGp1bXBUYWJsZSksIHNjcmF0Y2gpOwotICAgICAg
ICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBwYXJhbXNb
MF0uZ3ByKCksIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSksIHNjcmF0Y2gpOworICAgICAgICAg
ICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBwYXJhbXNbMF0u
Z3ByKCksIENDYWxsSGVscGVyczo6U2NhbGVQdHIpLCBzY3JhdGNoKTsKICAgICAgICAgICAgIGpp
dC5mYXJKdW1wKHNjcmF0Y2gsIEIzQ29tcGlsYXRpb25QdHJUYWcpOwogCiAgICAgICAgICAgICBq
aXQuYWRkTGlua1Rhc2soCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCmluZGV4IDg4YWJlMGUzYjg2MDMzYzVhZTM3ZTIxNDM4NWU3YTAzMzFiMjcw
NDEuLjY4OGI2NGNjMjNmNGI0ODE0NTBhNjllZjhhMDVhODEzNGNiOGExYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMTI0Myw3
ICsxMTI0Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRTd2l0Y2hJbnRKdW1wKAogICAg
ICAgICBtX2ppdC5icmFuY2gzMihKSVRDb21waWxlcjo6QWJvdmVPckVxdWFsLCB2YWx1ZSwgSW1t
MzIodGFibGUuY3RpT2Zmc2V0cy5zaXplKCkpKSwKICAgICAgICAgZGF0YS0+ZmFsbFRocm91Z2gu
YmxvY2spOwogICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbVB0cih0YWJsZS5jdGlPZmZzZXRzLmJl
Z2luKCkpLCBzY3JhdGNoKTsKLSAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpCYXNlSW5k
ZXgoc2NyYXRjaCwgdmFsdWUsIEpJVENvbXBpbGVyOjp0aW1lc1B0cigpKSwgc2NyYXRjaCk7Cisg
ICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QmFzZUluZGV4KHNjcmF0Y2gsIHZhbHVlLCBK
SVRDb21waWxlcjo6U2NhbGVQdHIpLCBzY3JhdGNoKTsKICAgICAKICAgICBtX2ppdC5mYXJKdW1w
KHNjcmF0Y2gsIEpTU3dpdGNoUHRyVGFnKTsKICAgICBkYXRhLT5kaWRVc2VKdW1wVGFibGUgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmlu
ZGV4IDdhN2NkNTg5NDFjOTM4ZWFjM2IzM2YwMjA5MjU3NmQyMjk5ZmU2NWMuLmJhMjFlYzE3Njdl
ZjZkOGU0YzY1OTYwNWU5NzQ2YmJmNWZjYjQ5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCB2b2lkIEFzc2Vt
Ymx5SGVscGVyczo6ZW1pdExvYWRTdHJ1Y3R1cmUoVk0mIHZtLCBSZWdpc3RlcklEIHNvdXJjZSwg
UmVnaXN0ZXJJRCBkZQogICAgIGxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzb3VyY2Us
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2gyKTsKICAgICBsb2FkUHRyKHZt
LmhlYXAuc3RydWN0dXJlSURUYWJsZSgpLmJhc2UoKSwgc2NyYXRjaCk7CiAgICAgcnNoaWZ0MzIo
c2NyYXRjaDIsIFRydXN0ZWRJbW0zMihTdHJ1Y3R1cmVJRFRhYmxlOjpzX251bWJlck9mRW50cm9w
eUJpdHMpLCBkZXN0KTsKLSAgICBsb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc2Ny
YXRjaCwgZGVzdCwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCBkZXN0KTsKKyAgICBsb2Fk
UHRyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc2NyYXRjaCwgZGVzdCwgTWFjcm9Bc3NlbWJs
ZXI6OlNjYWxlUHRyKSwgZGVzdCk7CiAgICAgbHNoaWZ0UHRyKFRydXN0ZWRJbW0zMihTdHJ1Y3R1
cmVJRFRhYmxlOjpzX2VudHJvcHlCaXRzU2hpZnRGb3JTdHJ1Y3R1cmVQb2ludGVyKSwgc2NyYXRj
aDIpOwogICAgIHhvclB0cihzY3JhdGNoMiwgZGVzdCk7CiAjZWxzZSAvLyBub3QgVVNFKEpTVkFM
VUU2NCkKQEAgLTU3Miw3ICs1NzIsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6ZW1pdEFsbG9j
YXRlVmFyaWFibGVTaXplZChHUFJSZWcgcmVzdWx0R1BSLCBDb21wbGV0ZVN1YnNwYQogICAgIHVy
c2hpZnQzMihUcnVzdGVkSW1tMzIoc3RlcFNoaWZ0KSwgc2NyYXRjaEdQUjEpOwogICAgIHNsb3dQ
YXRoLmFwcGVuZChicmFuY2gzMihBYm92ZSwgc2NyYXRjaEdQUjEsIFRydXN0ZWRJbW0zMihNYXJr
ZWRTcGFjZTo6bGFyZ2VDdXRvZmYgPj4gc3RlcFNoaWZ0KSkpOwogICAgIG1vdmUoVHJ1c3RlZElt
bVB0cihzdWJzcGFjZS5hbGxvY2F0b3JGb3JTaXplU3RlcCgpKSwgc2NyYXRjaEdQUjIpOwotICAg
IGxvYWRQdHIoQmFzZUluZGV4KHNjcmF0Y2hHUFIyLCBzY3JhdGNoR1BSMSwgdGltZXNQdHIoKSks
IHNjcmF0Y2hHUFIxKTsKKyAgICBsb2FkUHRyKEJhc2VJbmRleChzY3JhdGNoR1BSMiwgc2NyYXRj
aEdQUjEsIFNjYWxlUHRyKSwgc2NyYXRjaEdQUjEpOwogICAgIAogICAgIGVtaXRBbGxvY2F0ZShy
ZXN1bHRHUFIsIEpJVEFsbG9jYXRvcjo6dmFyaWFibGUoKSwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hH
UFIyLCBzbG93UGF0aCk7CiB9CkBAIC02MDgsMTEgKzYwOCw5IEBAIHZvaWQgQXNzZW1ibHlIZWxw
ZXJzOjpyZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tRW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKEVu
dHJ5RnJhCiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBhbGxDYWxsZWVTYXZlcy0+
YXQoaSk7CiAgICAgICAgIGlmIChkb250UmVzdG9yZVJlZ2lzdGVycy5nZXQoZW50cnkucmVnKCkp
KQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChlbnRyeS5yZWcoKS5pc0dQUigp
KSB7Ci0gICAgICAgICAgICBpZiAoaSAhPSBzY3JhdGNoR1BSRW50cnlJbmRleCkKLSAgICAgICAg
ICAgICAgICBsb2FkUHRyKEFkZHJlc3Moc2NyYXRjaCwgZW50cnkub2Zmc2V0KCkpLCBlbnRyeS5y
ZWcoKS5ncHIoKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbG9hZERvdWJsZShBZGRy
ZXNzKHNjcmF0Y2gsIGVudHJ5Lm9mZnNldCgpKSwgZW50cnkucmVnKCkuZnByKCkpOworICAgICAg
ICBpZiAoaSA9PSBzY3JhdGNoR1BSRW50cnlJbmRleCkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICBsb2FkUmVnKEFkZHJlc3Moc2NyYXRjaCwgZW50cnkub2Zmc2V0KCkpLCBlbnRyeS5y
ZWcoKSk7CiAgICAgfQogCiAgICAgLy8gUmVzdG9yZSB0aGUgY2FsbGVlIHNhdmUgdmFsdWUgb2Yg
dGhlIHNjcmF0Y2guCkBAIC02MjAsNyArNjE4LDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OnJl
c3RvcmVDYWxsZWVTYXZlc0Zyb21FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIoRW50cnlGcmEK
ICAgICBBU1NFUlQoIWRvbnRSZXN0b3JlUmVnaXN0ZXJzLmdldChlbnRyeS5yZWcoKSkpOwogICAg
IEFTU0VSVChlbnRyeS5yZWcoKS5pc0dQUigpKTsKICAgICBBU1NFUlQoc2NyYXRjaCA9PSBlbnRy
eS5yZWcoKS5ncHIoKSk7Ci0gICAgbG9hZFB0cihBZGRyZXNzKHNjcmF0Y2gsIGVudHJ5Lm9mZnNl
dCgpKSwgc2NyYXRjaCk7CisgICAgbG9hZFJlZyhBZGRyZXNzKHNjcmF0Y2gsIGVudHJ5Lm9mZnNl
dCgpKSwgc2NyYXRjaCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh0b3BFbnRyeUZyYW1lKTsK
ICNlbmRpZgpAQCAtOTg4LDEwICs5ODYsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6Y29weUNh
bGxlZVNhdmVzVG9FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXJJbXBsKEdQUlJlZyBjYQogICAg
ICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gYWxsQ2FsbGVlU2F2ZXMtPmF0KGkpOwogICAg
ICAgICBpZiAoZG9udENvcHlSZWdpc3RlcnMuZ2V0KGVudHJ5LnJlZygpKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICBpZiAoZW50cnkucmVnKCkuaXNHUFIoKSkKLSAgICAgICAgICAg
IHN0b3JlUHRyKGVudHJ5LnJlZygpLmdwcigpLCBBZGRyZXNzKGNhbGxlZVNhdmVzQnVmZmVyLCBl
bnRyeS5vZmZzZXQoKSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzdG9yZURvdWJsZShl
bnRyeS5yZWcoKS5mcHIoKSwgQWRkcmVzcyhjYWxsZWVTYXZlc0J1ZmZlciwgZW50cnkub2Zmc2V0
KCkpKTsKKyAgICAgICAgc3RvcmVSZWcoZW50cnkucmVnKCksIEFkZHJlc3MoY2FsbGVlU2F2ZXNC
dWZmZXIsIGVudHJ5Lm9mZnNldCgpKSk7CiAgICAgfQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
Y2FsbGVlU2F2ZXNCdWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmgKaW5kZXggMDYzYjhiZjY0NGFjMjU5MGRhNTQ2YjY0OWE4MjdiNzVlMTA3ODE1ZC4u
ZDViNDAxOWRhZjk1NmJjMjQ1N2I0ZDA5NTQ5ZjczNTVmZGE4Y2NhYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xMDIsNiArMTAyLDE0IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHN0b3JlMzIoc3JjLmdwcigpLCBkc3QpOwogICAgIH0KIAorICAg
IHZvaWQgc3RvcmVSZWcoUmVnIHNyYywgQWRkcmVzcyBkc3QpCisgICAgeworICAgICAgICBpZiBj
b25zdGV4cHIgKGlzNjRCaXQoKSkKKyAgICAgICAgICAgIHN0b3JlNjRGcm9tUmVnKHNyYywgZHN0
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RvcmUzMkZyb21SZWcoc3JjLCBkc3QpOwor
ICAgIH0KKwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgdm9pZCBsb2FkNjRUb1JlZyhBZGRyZXNz
IHNyYywgUmVnIGRzdCkKICAgICB7CkBAIC0xMjAsNiArMTI4LDE0IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGxvYWQzMihzcmMsIGRzdC5ncHIoKSk7CiAgICAgfQogCisgICAgdm9pZCBsb2FkUmVn
KEFkZHJlc3Mgc3JjLCBSZWcgZHN0KQorICAgIHsKKyAgICAgICAgaWYgY29uc3RleHByIChpczY0
Qml0KCkpCisgICAgICAgICAgICBsb2FkNjRUb1JlZyhzcmMsIGRzdCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGxvYWQzMlRvUmVnKHNyYywgZHN0KTsKKyAgICB9CisKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogICAgIHZvaWQgc3RvcmVDZWxsKFQgY2VsbCwgQWRkcmVzcyBhZGRyZXNz
KQogICAgIHsKQEAgLTQ5OCw3ICs1MTQsNyBAQCBwdWJsaWM6CiAgICAgewogI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgICAgIG1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChKU1ZhbHVl
OjpOdW1iZXJUYWcpLCBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3Rlcik7Ci0gICAgICAgIG9yUHRy
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6T3RoZXJUYWcpLCBHUFJJbmZv
OjpudW1iZXJUYWdSZWdpc3RlciwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CisgICAg
ICAgIG9yNjQoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpPdGhlclRhZyks
IEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVy
KTsKICNlbmRpZgogICAgIH0KIApAQCAtNjI1LDI1ICs2NDEsMzAgQEAgcHVibGljOgogCiAgICAg
dm9pZCBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihWaXJ0dWFsUmVnaXN0ZXIgZW50cnks
IEdQUlJlZyB0bywgR1BSUmVnIGZyb20gPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcikKICAg
ICB7CisgICAgICAgIEFTU0VSVChlbnRyeS5pc0hlYWRlcigpKTsKICAgICAgICAgbG9hZFB0cihB
ZGRyZXNzKGZyb20sIGVudHJ5Lm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIHRvKTsKICAg
ICB9CiAgICAgdm9pZCBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFZpcnR1YWxSZWdpc3Rl
ciBlbnRyeSwgR1BSUmVnIHRvLCBHUFJSZWcgZnJvbSA9IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGVudHJ5LmlzSGVhZGVyKCkpOwogICAgICAgICBs
b2FkMzIoQWRkcmVzcyhmcm9tLCBlbnRyeS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCB0
byk7CiAgICAgfQogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgdm9pZCBlbWl0R2V0RnJvbUNhbGxG
cmFtZUhlYWRlcjY0KFZpcnR1YWxSZWdpc3RlciBlbnRyeSwgR1BSUmVnIHRvLCBHUFJSZWcgZnJv
bSA9IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGVu
dHJ5LmlzSGVhZGVyKCkpOwogICAgICAgICBsb2FkNjQoQWRkcmVzcyhmcm9tLCBlbnRyeS5vZmZz
ZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCB0byk7CiAgICAgfQogI2VuZGlmIC8vIFVTRShKU1ZB
TFVFNjQpCiAgICAgdm9pZCBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSUmVnIGZyb20sIFZp
cnR1YWxSZWdpc3RlciBlbnRyeSkKICAgICB7CisgICAgICAgIEFTU0VSVChlbnRyeS5pc0hlYWRl
cigpKTsKICAgICAgICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlciwgZW50cnkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSk7CiAgICAgfQogCiAg
ICAgdm9pZCBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIodm9pZCogdmFsdWUsIFZpcnR1YWxSZWdp
c3RlciBlbnRyeSkKICAgICB7CisgICAgICAgIEFTU0VSVChlbnRyeS5pc0hlYWRlcigpKTsKICAg
ICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cih2YWx1ZSksIEFkZHJlc3MoR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIsIGVudHJ5Lm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSkpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJf
NjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmlu
ZGV4IDcxY2Y5OWU5OTA0OGJhNjRmYjk1MTRjZTZiYTVhOTEwNmMwZGE2NzMuLmU2ZjIzNTE1OTc4
NzEwZWViYzU2MWFjOTgwNDQxOThmZTE5Zjc0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEzMjAsNyArMTMyMCw3IEBAIHZvaWQgSklU
OjplbWl0X29wX2VudW1lcmF0b3Jfc3RydWN0dXJlX3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3RpCiAgICAgaW5Cb3VuZHMubGluayh0aGlzKTsKIAogICAgIGxvYWRQdHIo
QWRkcmVzcyhyZWdUMSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjYWNoZWRQcm9wZXJ0eU5h
bWVzVmVjdG9yT2Zmc2V0KCkpLCByZWdUMSk7Ci0gICAgbG9hZFB0cihCYXNlSW5kZXgocmVnVDEs
IHJlZ1QwLCB0aW1lc1B0cigpKSwgcmVnVDApOworICAgIGxvYWRQdHIoQmFzZUluZGV4KHJlZ1Qx
LCByZWdUMCwgU2NhbGVQdHIpLCByZWdUMCk7CiAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZyksIHJlZ1QyKTsKIAogICAgIGRvbmUubGluayh0aGlzKTsKQEAgLTEzNDUsNyAr
MTM0NSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2VuZXJpY19wbmFtZShjb25z
dCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uCiAgICAgaW5Cb3VuZHMubGluayh0aGlz
KTsKIAogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
OjpjYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yT2Zmc2V0KCkpLCByZWdUMSk7Ci0gICAgbG9hZFB0
cihCYXNlSW5kZXgocmVnVDEsIHJlZ1QwLCB0aW1lc1B0cigpKSwgcmVnVDApOworICAgIGxvYWRQ
dHIoQmFzZUluZGV4KHJlZ1QxLCByZWdUMCwgU2NhbGVQdHIpLCByZWdUMCk7CiAgICAgbW92ZShU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1QyKTsKICAgICAKICAgICBkb25lLmxp
bmsodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2Vu
ZXJhdG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5j
cHAKaW5kZXggNjlmYjdjYjJkMjM0MmEwNTZhN2Y2ZWY4ZWU5OTc0YjlmY2M5YjU2Zi4uNjI2MWQw
NGQ5MWM2YzU0OWYyZGQwZjY5MzBmNGJhOWNhNmU1MmU3MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMzAyLDggKzMwMiw4IEBAIHN0YXRp
YyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IG5hdGl2ZUZvckdlbmVyYXRv
cihWTSYgdm0sIFRodW5rRnVuCiAKICAgICAvLyBDaGVjayBmb3IgYW4gZXhjZXB0aW9uCiAjaWYg
VVNFKEpTVkFMVUU2NCkKLSAgICBqaXQubG9hZDY0KHZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBK
U0ludGVyZmFjZUpJVDo6cmVnVDIpOwotICAgIEpTSW50ZXJmYWNlSklUOjpKdW1wIGV4Y2VwdGlv
bkhhbmRsZXIgPSBqaXQuYnJhbmNoVGVzdDY0KEpTSW50ZXJmYWNlSklUOjpOb25aZXJvLCBKU0lu
dGVyZmFjZUpJVDo6cmVnVDIpOworICAgIGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZkV4Y2VwdGlv
bigpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDIpOworICAgIEpTSW50ZXJmYWNlSklUOjpKdW1wIGV4
Y2VwdGlvbkhhbmRsZXIgPSBqaXQuYnJhbmNoVGVzdFB0cihKU0ludGVyZmFjZUpJVDo6Tm9uWmVy
bywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKICNlbHNlCiAgICAgSlNJbnRlcmZhY2VKSVQ6Okp1
bXAgZXhjZXB0aW9uSGFuZGxlciA9IGppdC5icmFuY2gzMigKICAgICAgICAgSlNJbnRlcmZhY2VK
SVQ6Ok5vdEVxdWFsLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VGVzdFJ1bm5lclV0aWxzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rlc3RS
dW5uZXJVdGlscy5jcHAKaW5kZXggZGM4MWI5Mjg2MWUyOTA5Nzg0ZWI4ODBmZWVlYmFlYjViOTZi
MWM2NS4uYWM3YjYxZGRkMGExNGEyNTdkYjdiMmI4MDE0OTM2YjYzMGVmY2MwMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZXN0UnVubmVyVXRpbHMuY3BwCkBAIC02
NSw3ICs2NSw3IEBAIEpTVmFsdWUgbnVtYmVyT2ZERkdDb21waWxlcyhKU1ZhbHVlIHRoZUZ1bmN0
aW9uVmFsdWUpCiB7CiAgICAgYm9vbCBwcmV0ZW5kVG9IYXZlTWFueUNvbXBpbGVzID0gZmFsc2U7
CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgaWYgKCFPcHRpb25zOjp1c2VKSVQoKSB8fCAhT3B0
aW9uczo6dXNlREZHSklUKCkpCisgICAgaWYgKCFPcHRpb25zOjp1c2VKSVQoKSB8fCAhT3B0aW9u
czo6dXNlQmFzZWxpbmVKSVQoKSB8fCAhT3B0aW9uczo6dXNlREZHSklUKCkpCiAgICAgICAgIHBy
ZXRlbmRUb0hhdmVNYW55Q29tcGlsZXMgPSB0cnVlOwogI2Vsc2UKICAgICBwcmV0ZW5kVG9IYXZl
TWFueUNvbXBpbGVzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2M0ZjZhOWNjMWJhMzMxZjQxMTEwMTE5YzhhM2FlNzE5NmUy
ZGIyMS4uZDg5NjRiOWU5MWRlYWQ1NTY0YjA0ZjBjMzliZDkzNjgwMWEwM2ZhZSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMC0wNi0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
KworICAgICAgICBKSVQgdGh1bmtzIHNob3VsZCB3b3JrIG9uIGFybTY0XzMyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBza2lwIHRlc3Qgb24gbWVtb3J5
IGxpbWl0ZWQgc2luY2UgaXQgYnJlYWtzIG9uIHdhdGNoIHdpdGggSklULgorCisgICAgICAgICog
c3RyZXNzL2FycmF5LWJ1ZmZlci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxs
eS1hZGQtaW4tZGZnLmpzOgorCiAyMDIwLTA2LTA4ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSW50bF0gVXBkYXRlIHRlc3RzIHRvIHN1cHBvcnQg
SUNVIDY3CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hcnJheS1idWZmZXItdmlldy13YXRj
aHBvaW50LWNhbi1iZS1maXJlZC1pbi1yZWFsbHktYWRkLWluLWRmZy5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2FycmF5LWJ1ZmZlci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxseS1h
ZGQtaW4tZGZnLmpzCmluZGV4IDc1YWViZTY5YmFjYmE3NTA5M2U5MTI1MzgxNThlZTI5MDA2NmFm
YzkuLmI5ZGQ5M2Y3NjU3NjMxMTc4YWM4ZjM4N2MxY2Y0MTU2YmVkZjkzYWQgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZlci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVk
LWluLXJlYWxseS1hZGQtaW4tZGZnLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZl
ci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxseS1hZGQtaW4tZGZnLmpzCkBA
IC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYgJG1lbW9yeUxpbWl0ZWQKIC8vQCBza2lwIGlmIFsi
YXJtIiwgInBvd2VycGMiLCAicG93ZXJwYzY0IiwgInMzOTAiXS5pbmNsdWRlPygkYXJjaGl0ZWN0
dXJlKSBhbmQgJGhvc3RPUyA9PSAibGludXgiCiAvL0AgcmVxdWlyZU9wdGlvbnMoIi1lIiwgImxl
dCBpdGVyYXRpb25zPTQwMDAwIikgaWYgWyJtaXBzIl0uaW5jbHVkZT8oJGFyY2hpdGVjdHVyZSkK
IC8vQCBydW5EZWZhdWx0KCItLWppdFBvbGljeVNjYWxlPTAiKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401752</attachid>
            <date>2020-06-12 11:12:11 -0700</date>
            <delta_ts>2020-06-12 11:36:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213103-20200612111210.patch</filename>
            <type>text/plain</type>
            <size>31411</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OGFhZTM5ODIyODFiNzhmMjc1ODNkMzkxNTFlNGNjZjhkZDA4MGE3Li45MWVlMjFhZmY4ZTJlZDE5
MWRmMDg1ZjgxNmNkODE2MmRiMmQ3NzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBKSVQgdGh1bmtzIHNob3VsZCB3b3JrIG9uIGFybTY0XzMyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGZp
eGVzIHZhcmlvdXMgaXNzdWVzIHdoZW4gcnVubmluZyBKU0Mgb24gYXJtNjRfMzIgd2l0aAorICAg
ICAgICB1c2VKSVQ9MSBhbmQgdXNlQmFzZWxpbmVKSVQ9MC4gSW4gcGFydGljdWxhciB0aGlzIHBh
dGNoIG1ha2VzIHRoZQorICAgICAgICBmb2xsb3dpbmcgY2hhbmdlczoKKworICAgICAgICAxKSBT
Y2FsZVB0ciBpcyBub3cganVzdCBwYXJ0IG9mIHRoZSBTY2FsZSBlbnVtIGFuZCBpcyBzZXQgYmFz
ZWQgb24KKyAgICAgICAgdGhlIHNpemUgb2YgdGhlIGFkZHJlc3Mgc3BhY2UuCisKKyAgICAgICAg
MikgTWFjcm9Bc3NlbWJsZXI6OipQdHIgZnVuY3Rpb25zIGNhbGwgMzIvNjQgYml0IHZhcmlhbnRz
IGJhc2VkIG9uCisgICAgICAgIEFkZHJlc3Mgc3BhY2Ugc2l6ZSByYXRoZXIgdGhhbiBjcHUgYXJj
aGl0ZWN0dXJlLgorCisgICAgICAgIDMpIEFkZCBzb21lIG1pc3NpbmcgdmFyaWFudHMgb2YgZnVu
Y3Rpb25zIGZvciB3aGVuIHBvaW50ZXJzIGFyZSAzMi1iaXQuCisKKyAgICAgICAgNCkgQWRkIGEg
bG9hZC9zdG9yZVJlZyBmdW5jdGlvbiB0aGF0IHN0b3JlcyBhIGZ1bGwgcmVnaXN0ZXIgcmVnYXJk
bGVzcworICAgICAgICBvZiBwb2ludGVyIHNpemUgZm9yIHN0b3JpbmcvbG9hZGluZyBjYWxsZWUg
c2F2ZXMuCisKKyAgICAgICAgNSkgbnVtYmVyT2ZERkdDb21waWxlcyBzaG91bGQgcmVwb3J0IGEg
YmlnIG51bWJlciBmb3IgdXNlQmFzZWxpbmVKSVQ9MAorCisgICAgICAgIDYpIEFzc2VydCBCYXNl
SW5kZXggaGFzIGEgc2NhbGUgb2YgUHRyU2l6ZSBvciBUaW1lc09uZSAoZm9yIHByZS1zY2FsZWQK
KyAgICAgICAgdmFsdWVzKSB3aGVuIHBhc3NlZCB0byBhIGxvYWQvc3RvcmVQdHIgZnVuY3Rpb24u
CisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAg
ICAoSlNDOjpBYnN0cmFjdE1hY3JvQXNzZW1ibGVyOjp0aW1lc1B0cik6IERlbGV0ZWQuCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyOjpyb3RhdGVSaWdodFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjps
b2FkUHRyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmxvYWRQdHJXaXRoQ29tcGFj
dEFkZHJlc3NPZmZzZXRQYXRjaCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpicmFu
Y2hQdHIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c3RvcmVQdHIpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c2hvdWxkQmxpbmREb3VibGUpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlcjo6bW92ZURvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyOjpzdG9yZTY0KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5o
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjphZGQzMik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnNpZ25FeHRlbmQzMlRvUHRyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OmNhbGwpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpm
YXJKdW1wKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaDoKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODYuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZfNjQuaDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFjcm9zLmNwcDoKKyAgICAgICAgKiBi
My90ZXN0YjNfNi5jcHA6CisgICAgICAgICh0ZXN0SW50ZXJwcmV0ZXIpOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmVtaXRTd2l0Y2hJbnRKdW1wKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVjdHVyZSk6Cisg
ICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEFsbG9jYXRlVmFyaWFibGVTaXplZCk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6cmVzdG9yZUNhbGxlZVNhdmVzRnJvbUVu
dHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVy
czo6Y29weUNhbGxlZVNhdmVzVG9FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXJJbXBsKToKKyAg
ICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVs
cGVyczo6c3RvcmVSZWcpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmxvYWRSZWcp
OgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRNYXRlcmlhbGl6ZVRhZ0NoZWNr
UmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0R2V0RnJvbUNh
bGxGcmFtZUhlYWRlclB0cik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEdl
dEZyb21DYWxsRnJhbWVIZWFkZXIzMik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6
ZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXI2NCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVs
cGVyczo6ZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2VudW1lcmF0b3Jfc3RydWN0
dXJlX3BuYW1lKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2VuZXJp
Y19wbmFtZSk6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChK
U0M6Om5hdGl2ZUZvckdlbmVyYXRvcik6CisgICAgICAgICogcnVudGltZS9UZXN0UnVubmVyVXRp
bHMuY3BwOgorICAgICAgICAoSlNDOjpudW1iZXJPZkRGR0NvbXBpbGVzKToKKwogMjAyMC0wNi0w
OSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFNo
cmluayBfX0RBVEEsKF9fZGF0YSxfX2JzcyxfX2NvbW1vbikgbW9yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk0
YTA0ZTI0ZWZjNDY5ZWJlNDA3N2MxYWM4Y2UzZjk0ZDVmYTlmOTEuLmYzNDFlZTJjMGU1NTRkMjA2
OTJjZmRiMDVmZjFiYmI3ZjFkODQzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAy
MC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBKSVQgdGh1bmtzIHNob3VsZCB3b3JrIG9uIGFybTY0XzMyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciB0aW1lc1B0cigpIHRvIFNjYWxl
UHRyLgorCisgICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0
ZUVsZW1lbnRIYXNDbGFzc2VzKToKKwogMjAyMC0wNi0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIGxhbmc9emggbmVlZHMgdG8gZGVmZXIgdG8g
c3lzdGVtIHByZWZlcmVuY2VzIHRvIGtub3cgd2hldGhlciBpdCBzaG91bGQgYmUgc2ltcGxpZmll
ZCBvciB0cmFkaXRpb25hbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCBhNzFkMDg4M2U2MmZjOGE1MjI0
NmRlYjE3MmUyZDA4NTdiNjM2ODk2Li4zNWRiYzk1MDA4YzJhMGQwNTZiMDA0NmQwY2U2YTY1NWE3
M2M2ZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3Ry
YWN0TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtMTIwLDE1ICsxMjAsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIFRpbWVzVHdvLAogICAgICAgICBUaW1lc0ZvdXIsCiAgICAgICAgIFRpbWVzRWlnaHQs
CisgICAgICAgIFNjYWxlUHRyID0gaXNBZGRyZXNzNjRCaXQoKSA/IFRpbWVzRWlnaHQgOiBUaW1l
c0ZvdXIsCiAgICAgfTsKICAgICAKLSAgICBzdGF0aWMgU2NhbGUgdGltZXNQdHIoKQotICAgIHsK
LSAgICAgICAgaWYgKHNpemVvZih2b2lkKikgPT0gNCkKLSAgICAgICAgICAgIHJldHVybiBUaW1l
c0ZvdXI7Ci0gICAgICAgIHJldHVybiBUaW1lc0VpZ2h0OwotICAgIH0KLSAgICAKICAgICBzdHJ1
Y3QgQmFzZUluZGV4OwogICAgIAogICAgIHN0YXRpYyBSZWdpc3RlcklEIHdpdGhTd2FwcGVkUmVn
aXN0ZXIoUmVnaXN0ZXJJRCBvcmlnaW5hbCwgUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJp
Z2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ci5oCmluZGV4IGJmOWU5MGIzZDVhMDhkYTM0ZDM1MTBiNjcxYTA2MDYzOTU4OWYxYjIuLjNkNmI5
MDk5NTA2NGY2OWFlOTYyZjYyMmZmNzg0MGQ5MGRiMjIxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKQEAgLTk1LDYgKzk1LDcgQEAg
dXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlID0gVEFSR0VUX01BQ1JPQVNTRU1CTEVSOwogCiBjbGFz
cyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlckJhc2UgewogcHVibGljOgor
ICAgIHVzaW5nIEJhc2UgPSBNYWNyb0Fzc2VtYmxlckJhc2U7CiAKICAgICBzdGF0aWMgY29uc3Rl
eHByIFJlZ2lzdGVySUQgbmV4dFJlZ2lzdGVyKFJlZ2lzdGVySUQgcmVnKQogICAgIHsKQEAgLTE1
MCw2ICsxNTEsMTIgQEAgcHVibGljOgogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6dXJz
aGlmdDMyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6eG9yMzI7CiAKKyNpZiBDUFUo
QVJNNjQpIHx8IENQVShYODZfNjQpCisgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjphbmQ2
NDsKKyAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OmNvbnZlcnRJbnQzMlRvRG91YmxlOwor
ICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6c3RvcmU2NDsKKyNlbmRpZgorCiAgICAgc3Rh
dGljIGJvb2wgaXNQdHJBbGlnbmVkQWRkcmVzc09mZnNldChwdHJkaWZmX3QgdmFsdWUpCiAgICAg
ewogICAgICAgICByZXR1cm4gdmFsdWUgPT0gc3RhdGljX2Nhc3Q8aW50MzJfdD4odmFsdWUpOwpA
QCAtNTQxLDggKzU0OCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFB0ciBtZXRob2RzCiAgICAgLy8g
T24gMzItYml0IHBsYXRmb3JtcyAoaS5lLiB4ODYpLCB0aGVzZSBtZXRob2RzIGRpcmVjdGx5IG1h
cCBvbnRvIHRoZWlyIDMyLWJpdCBlcXVpdmFsZW50cy4KLSAgICAvLyBGSVhNRTogc2hvdWxkIHRo
aXMgdXNlIGEgdGVzdCBmb3IgMzItYml0bmVzcyBpbnN0ZWFkIG9mIHRoaXMgc3BlY2lmaWMgZXhj
ZXB0aW9uPwotI2lmICFDUFUoWDg2XzY0KSAmJiAhQ1BVKEFSTTY0KQorI2lmICFDUFUoQUREUkVT
UzY0KQogICAgIHZvaWQgYWRkUHRyKEFkZHJlc3Mgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBhZGQzMihzcmMsIGRlc3QpOwpAQCAtNjU4LDYgKzY2NCwxMSBAQCBwdWJsaWM6
CiAgICAgICAgIG9yMzIoaW1tLCBkZXN0KTsKICAgICB9CiAKKyAgICB2b2lkIHJvdGF0ZVJpZ2h0
UHRyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjRHN0KQorICAgIHsKKyAgICAgICAg
cm90YXRlUmlnaHQzMihpbW0sIHNyY0RzdCk7CisgICAgfQorCiAgICAgdm9pZCBzdWJQdHIoUmVn
aXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIHN1YjMyKHNyYywg
ZGVzdCk7CkBAIC03MDAsNiArNzExLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBsb2FkUHRyKEJh
c2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgeworICAgICAgICBBU1NFUlQo
YWRkcmVzcy5zY2FsZSA9PSBTY2FsZVB0ciB8fCBhZGRyZXNzLnNjYWxlID09IFRpbWVzT25lKTsK
ICAgICAgICAgbG9hZDMyKGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIApAQCAtNzI5LDExICs3NDEs
NiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gbG9hZDMyV2l0aENvbXBhY3RBZGRy
ZXNzT2Zmc2V0UGF0Y2goYWRkcmVzcywgZGVzdCk7CiAgICAgfQotCi0gICAgdm9pZCBtb3ZlKElt
bVB0ciBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKLSAgICB7Ci0gICAgICAgIG1vdmUoSW1tMzIoaW1t
LmFzVHJ1c3RlZEltbVB0cigpKSwgZGVzdCk7Ci0gICAgfQogICAgIAogICAgIHZvaWQgY29tcGFy
ZVB0cihSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgVHJ1c3RlZElt
bTMyIHJpZ2h0LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtODcwLDcgKzg3Nyw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyQmFzZTo6YnJhbmNoVGVzdDgoY29u
ZCwgQWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSwgbWFzayk7CiAgICAgfQog
Ci0jZWxzZSAvLyAhQ1BVKFg4Nl82NCkgJiYgIUNQVShBUk02NCkKKyNlbHNlIC8vICFDUFUoQURE
UkVTUzY0KQogCiAgICAgdm9pZCBhZGRQdHIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVz
dCkKICAgICB7CkBAIC0xMDUwLDYgKzEwNTcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGxvYWRQ
dHIoQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CisgICAgICAgIEFT
U0VSVChhZGRyZXNzLnNjYWxlID09IFNjYWxlUHRyIHx8IGFkZHJlc3Muc2NhbGUgPT0gVGltZXNP
bmUpOwogICAgICAgICBsb2FkNjQoYWRkcmVzcywgZGVzdCk7CiAgICAgfQogCkBAIC0xMjE5LDEw
ICsxMjI3LDMwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJyYW5jaFN1YjY0KGNvbmQsIHNy
YzEsIHNyYzIsIGRlc3QpOwogICAgIH0KIAotICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6
YW5kNjQ7Ci0gICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpjb252ZXJ0SW50MzJUb0RvdWJs
ZTsKLSAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnN0b3JlNjQ7Ci0gICAgYm9vbCBzaG91
bGRCbGluZERvdWJsZShkb3VibGUgdmFsdWUpCisgICAgSnVtcCBicmFuY2hQdHIoUmVsYXRpb25h
bENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIEltbVB0ciByaWdodCkKKyAgICB7Cisg
ICAgICAgIGlmIChzaG91bGRCbGluZChyaWdodCkgJiYgaGF2ZVNjcmF0Y2hSZWdpc3RlckZvckJs
aW5kaW5nKCkpIHsKKyAgICAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gc2Ny
YXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKKyAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5k
ZWRDb25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQocmlnaHQpLCBzY3JhdGNoUmVnaXN0ZXIp
OworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFB0cihjb25kLCBsZWZ0LCBzY3JhdGNoUmVnaXN0
ZXIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgcmln
aHQuYXNUcnVzdGVkSW1tUHRyKCkpOworICAgIH0KKworICAgIHZvaWQgc3RvcmVQdHIoSW1tUHRy
IGltbSwgQWRkcmVzcyBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkg
JiYgaGF2ZVNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCkpIHsKKyAgICAgICAgICAgIFJlZ2lz
dGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gc2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKKyAg
ICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRDb25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3Rh
bnQoaW1tKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlUHRyKHNjcmF0Y2hS
ZWdpc3RlciwgZGVzdCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RvcmVQdHIoaW1t
LmFzVHJ1c3RlZEltbVB0cigpLCBkZXN0KTsKKyAgICB9CisKKyNlbmRpZiAvLyAhQ1BVKEFERFJF
U1M2NCkKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIGJvb2wgc2hvdWxkQmxpbmREb3Vi
bGUoZG91YmxlIHZhbHVlKQogICAgIHsKICAgICAgICAgLy8gRG9uJ3QgdHJ1c3QgTmFOIG9yICsv
LUluZmluaXR5CiAgICAgICAgIGlmICghc3RkOjppc2Zpbml0ZSh2YWx1ZSkpCkBAIC0xNDE1LDEz
ICsxNDQzLDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1vdmUoaW1tLmFzVHJ1c3RlZEltbTY0
KCksIGRlc3QpOwogICAgIH0KIAotI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKICAgICB2
b2lkIG1vdmVEb3VibGUoSW1tNjQgaW1tLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAg
ICAgIG1vdmUoaW1tLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgIG1vdmU2NFRvRG91Ymxl
KHNjcmF0Y2hSZWdpc3RlcigpLCBkZXN0KTsKICAgICB9Ci0jZW5kaWYKIAogICAgIHZvaWQgYW5k
NjQoSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtMTQzMiwzOCArMTQ1OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBhbmQ2NChpbW0uYXNUcnVz
dGVkSW1tMzIoKSwgZGVzdCk7CiAgICAgfQotCi0gICAgSnVtcCBicmFuY2hQdHIoUmVsYXRpb25h
bENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIEltbVB0ciByaWdodCkKLSAgICB7Ci0g
ICAgICAgIGlmIChzaG91bGRCbGluZChyaWdodCkgJiYgaGF2ZVNjcmF0Y2hSZWdpc3RlckZvckJs
aW5kaW5nKCkpIHsKLSAgICAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gc2Ny
YXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKLSAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5k
ZWRDb25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQocmlnaHQpLCBzY3JhdGNoUmVnaXN0ZXIp
OwotICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFB0cihjb25kLCBsZWZ0LCBzY3JhdGNoUmVnaXN0
ZXIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgcmln
aHQuYXNUcnVzdGVkSW1tUHRyKCkpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHN0b3JlUHRyKElt
bVB0ciBpbW0sIEFkZHJlc3MgZGVzdCkKLSAgICB7Ci0gICAgICAgIGlmIChzaG91bGRCbGluZChp
bW0pICYmIGhhdmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKSB7Ci0gICAgICAgICAgICBS
ZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCk7
Ci0gICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQocm90YXRpb25CbGluZENv
bnN0YW50KGltbSksIHNjcmF0Y2hSZWdpc3Rlcik7Ci0gICAgICAgICAgICBzdG9yZVB0cihzY3Jh
dGNoUmVnaXN0ZXIsIGRlc3QpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN0b3JlUHRy
KGltbS5hc1RydXN0ZWRJbW1QdHIoKSwgZGVzdCk7Ci0gICAgfQotCi0gICAgdm9pZCBzdG9yZTY0
KEltbTY0IGltbSwgQWRkcmVzcyBkZXN0KQotICAgIHsKLSAgICAgICAgaWYgKHNob3VsZEJsaW5k
KGltbSkgJiYgaGF2ZVNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCkpIHsKLSAgICAgICAgICAg
IFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gc2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmco
KTsKLSAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRDb25zdGFudChyb3RhdGlvbkJsaW5k
Q29uc3RhbnQoaW1tKSwgc2NyYXRjaFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIHN0b3JlNjQoc2Ny
YXRjaFJlZ2lzdGVyLCBkZXN0KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzdG9yZTY0
KGltbS5hc1RydXN0ZWRJbW02NCgpLCBkZXN0KTsKLSAgICB9Ci0KLSNlbmRpZiAvLyAhQ1BVKFg4
Nl82NCkKKyNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogCiAjaWYgIUNQVShYODYpICYmICFDUFUo
WDg2XzY0KSAmJiAhQ1BVKEFSTTY0KQogICAgIC8vIFdlIHNob3VsZCBpbXBsZW1lbnQgdGhpcyB0
aGUgcmlnaHQgd2F5IGV2ZW50dWFsbHksIGJ1dCBmb3Igbm93LCBpdCdzIGZpbmUgYmVjYXVzZSBp
dCBhcmlzZXMgc28KQEAgLTE3MTksNyArMTcxNCwxOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBzdG9yZTY0KHZhbHVlLCBhZGRyZXNzRm9yUG9rZShpbmRleCkpOwogICAgIH0KLSNlbmRpZiAv
LyBDUFUoWDg2XzY0KQorCisgICAgdm9pZCBzdG9yZTY0KEltbTY0IGltbSwgQWRkcmVzcyBkZXN0
KQorICAgIHsKKyAgICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkgJiYgaGF2ZVNjcmF0Y2hSZWdp
c3RlckZvckJsaW5kaW5nKCkpIHsKKyAgICAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lz
dGVyID0gc2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKKyAgICAgICAgICAgIGxvYWRSb3Rh
dGlvbkJsaW5kZWRDb25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQoaW1tKSwgc2NyYXRjaFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgIHN0b3JlNjQoc2NyYXRjaFJlZ2lzdGVyLCBkZXN0KTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdG9yZTY0KGltbS5hc1RydXN0ZWRJbW02NCgpLCBk
ZXN0KTsKKyAgICB9CisKKyNlbmRpZiAvLyBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCiAgICAg
CiAgICAgdm9pZCBzdG9yZTMyKEltbTMyIGltbSwgQWRkcmVzcyBkZXN0KQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02
NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0
LmgKaW5kZXggZTI3MjI2MDY0MTg3YzU1ZTAwNWZhOTc0NzgwN2IxN2MyNzM5OTYwMS4uM2JkMmJh
Y2NhNDI2N2RjZWQzNjJjMmUwMjQ1NDE4ZGIzZjhmMDA1NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTg5LDgg
Kzg5LDYgQEAgcHVibGljOgogICAgIHRlbXBsYXRlIDxBc3NlbWJsZXI6OkNvcHlGdW5jdGlvbiBj
b3B5PgogICAgIHN0YXRpYyB2b2lkIGxpbmsoTGlua1JlY29yZCYgcmVjb3JkLCB1aW50OF90KiBm
cm9tLCBjb25zdCB1aW50OF90KiBmcm9tSW5zdHJ1Y3Rpb24sIHVpbnQ4X3QqIHRvKSB7IHJldHVy
biBBc3NlbWJsZXI6Omxpbms8Y29weT4ocmVjb3JkLCBmcm9tLCBmcm9tSW5zdHJ1Y3Rpb24sIHRv
KTsgfQogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRWlnaHQ7
Ci0KICAgICBzdGF0aWMgYm9vbCBpc0NvbXBhY3RQdHJBbGlnbmVkQWRkcmVzc09mZnNldChwdHJk
aWZmX3QgdmFsdWUpCiAgICAgewogICAgICAgICAvLyBUaGlzIGlzIHRoZSBsYXJnZXN0IDMyLWJp
dCBhY2Nlc3MgYWxsb3dlZCwgYWxpZ25lZCB0byA2NC1iaXQgYm91bmRhcnkuCkBAIC0xNTIsMTMg
KzE1MCwxOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZDMyKFJlZ2lzdGVySUQgYSwgUmVnaXN0
ZXJJRCBiLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBBU1NFUlQoYSAhPSBBUk02
NFJlZ2lzdGVyczo6c3AgJiYgYiAhPSBBUk02NFJlZ2lzdGVyczo6c3ApOworICAgICAgICBBU1NF
UlQoYSAhPSBBUk02NFJlZ2lzdGVyczo6c3AgfHwgYiAhPSBBUk02NFJlZ2lzdGVyczo6c3ApOwor
ICAgICAgICBpZiAoYiA9PSBBUk02NFJlZ2lzdGVyczo6c3ApCisgICAgICAgICAgICBzdGQ6OnN3
YXAoYSwgYik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDwzMj4oZGVzdCwgYSwgYik7CiAgICAg
fQogCiAgICAgdm9pZCBhZGQzMihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDMyPihkZXN0LCBkZXN0LCBzcmMpOworICAgICAg
ICBpZiAoc3JjID09IEFSTTY0UmVnaXN0ZXJzOjpzcCkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZDwzMj4oZGVzdCwgc3JjLCBkZXN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9h
c3NlbWJsZXIuYWRkPDMyPihkZXN0LCBkZXN0LCBzcmMpOwogICAgIH0KIAogICAgIHZvaWQgYWRk
MzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtMjI0LDYgKzIyNywxMiBA
QCBwdWJsaWM6CiAgICAgICAgIGFkZDMyKGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QpOwogICAgIH0K
IAorICAgIHZvaWQgYWRkMzIoQWJzb2x1dGVBZGRyZXNzIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQor
ICAgIHsKKyAgICAgICAgbG9hZDMyKHNyYy5tX3B0ciwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3Rl
cklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgYWRkMzIoZGF0YVRlbXBSZWdpc3RlciwgZGVz
dCk7CisgICAgfQorCiAgICAgdm9pZCBhZGQ2NChSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQgYiwg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGEgIT0gQVJNNjRSZWdpc3Rl
cnM6OnNwIHx8IGIgIT0gQVJNNjRSZWdpc3RlcnM6OnNwKTsKQEAgLTI0OTcsOSArMjUwNiw5IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2lnbkV4dGVuZDMyVG9QdHIoVHJ1c3RlZEltbTMyIGltbSwg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGludHB0cl90PihpbW0ubV92YWx1ZSkpKSwg
ZGVzdCk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbTY0KGltbS5tX3ZhbHVlKSwgZGVzdCk7CiAg
ICAgfQotICAgIAorCiAgICAgdm9pZCBzaWduRXh0ZW5kMzJUb1B0cihSZWdpc3RlcklEIHNyYywg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3h0dyhkZXN0LCBz
cmMpOwpAQCAtMzMyNCw2ICszMzMzLDE3IEBAIHB1YmxpYzoKIAogICAgIC8vIEp1bXBzLCBjYWxs
cywgcmV0dXJucwogCisgICAgLy8gZHVwbGljYXRlIE1hY3JvQXNzZW1ibGVyJ3MgbG9hZFB0ciBm
b3IgbG9hZGluZyBjYWxsIHRhcmdldHMuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4K
KyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbG9hZFB0cihBcmdzLi4uIGFyZ3MpCisgICAgeworI2lm
IENQVShBRERSRVNTNjQpCisgICAgICAgIGxvYWQ2NChhcmdzLi4uKTsKKyNlbHNlCisgICAgICAg
IGxvYWQzMihhcmdzLi4uKTsKKyNlbmRpZgorICAgIH0KKwogICAgIEFMV0FZU19JTkxJTkUgQ2Fs
bCBjYWxsKFB0clRhZykKICAgICB7CiAgICAgICAgIEFzc2VtYmxlckxhYmVsIHBvaW50ZXJMYWJl
bCA9IG1fYXNzZW1ibGVyLmxhYmVsKCk7CkBAIC0zMzQ0LDcgKzMzNjQsNyBAQCBwdWJsaWM6CiAK
ICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChBZGRyZXNzIGFkZHJlc3MsIFB0clRhZyB0YWcp
CiAgICAgewotICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3Rl
cklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbG9hZFB0cihhZGRyZXNzLCBnZXRDYWNoZWRE
YXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICByZXR1cm4gY2FsbChk
YXRhVGVtcFJlZ2lzdGVyLCB0YWcpOwogICAgIH0KIApAQCAtMzM3MywyMCArMzM5MywyMCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGZhckp1bXAoQWRkcmVzcyBhZGRyZXNzLCBQdHJUYWcpCiAgICAg
ewotICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5k
SW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbG9hZFB0cihhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5icihkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBmYXJKdW1wKEJhc2VJbmRleCBh
ZGRyZXNzLCBQdHJUYWcpCiAgICAgewotICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2FjaGVk
RGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbG9hZFB0cihhZGRy
ZXNzLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAg
ICBtX2Fzc2VtYmxlci5icihkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKICAgICB2b2lkIGZh
ckp1bXAoQWJzb2x1dGVBZGRyZXNzIGFkZHJlc3MsIFB0clRhZykKICAgICB7CiAgICAgICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3Rl
cklEQW5kSW52YWxpZGF0ZSgpKTsKLSAgICAgICAgbG9hZDY0KEFkZHJlc3MoZGF0YVRlbXBSZWdp
c3RlciksIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MoZGF0YVRl
bXBSZWdpc3RlciksIGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgICAgICBtX2Fzc2VtYmxlci5icihk
YXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggOTc2OTExZGRmNzRmNTA1
NmQ5ZTQxMjdkYzc4ZjhhMzBiYzMyMWE3OS4uMDFjOTRiMGIxZDI4OTdhYjJkMDNiMjYyZDcyMmQy
ZmE5YTZiYzQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTEwNSw4ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAg
fTsKICAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0g
VGltZXNGb3VyOwotCiAgICAgZW51bSBSZWxhdGlvbmFsQ29uZGl0aW9uIHsKICAgICAgICAgRXF1
YWwgPSBBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uRVEsCiAgICAgICAgIE5vdEVxdWFsID0gQVJN
djdBc3NlbWJsZXI6OkNvbmRpdGlvbk5FLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggM2YxOTk2MGM3MzQzZDFlN2Ji
YmE0YmY5Y2I1MjA0MjU4MDBiZmE3My4uZWFiZTdhNjA5NjliMmVlMDMzZjQ1NjE4NDUzN2UxYTY2
ZDljMTI1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyTUlQUy5oCkBAIC02MSw4ICs2MSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGdldExTQlNldCh2KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNj
YWxlUHRyID0gVGltZXNGb3VyOwotCiAgICAgLy8gRm9yIHN0b3JpbmcgaW1tZWRpYXRlIG51bWJl
cgogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBpbW1UZW1wUmVnaXN0ZXIgPSBNSVBT
UmVnaXN0ZXJzOjp0MDsKICAgICAvLyBGb3Igc3RvcmluZyBkYXRhIGxvYWRlZCBmcm9tIHRoZSBt
ZW1vcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODYuaAppbmRleCBiODFjMjJiZjgzNzIzODMwYTdlMzhkOGRhM2VkYzkyODNlZTRkNjAw
Li44ZDAyMmUzYjgyNWY1OGQyZWY0ODgyMWIxYzJhOTQyNTY5MWQxYjQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCkBAIC0z
Niw4ICszNiw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUdQ
UnMgPSA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtRlBScyA9IDg7CiAgICAg
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRm91cjsKLQogICAg
IHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphZGQzMjsKICAgICB1c2luZyBNYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbjo6YW5kMzI7CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJYODZDb21t
b246OmJyYW5jaEFkZDMyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IDAzZWM0NDAwNTAzMWZkZjUxOWNlNThh
YTIyZjc5MTU3NWUwNTQ5MjIuLjU2YTZmZDE2YWRmNzU1MGMyMmY3Zjk1M2RjYTE4MjYwMzZkNmJh
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2XzY0LmgKQEAgLTQwLDggKzQwLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbnVtR1BScyA9IDE2OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgbnVtRlBScyA9IDE2OwogICAgIAotICAgIHN0YXRpYyBjb25zdGV4cHIgU2NhbGUgU2Nh
bGVQdHIgPSBUaW1lc0VpZ2h0OwotCiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIElu
dmFsaWRHUFJSZWcgPSBYODZSZWdpc3RlcnM6OkludmFsaWRHUFJSZWc7CiAKICAgICB1c2luZyBN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YWRkMzI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNMb3dlck1hY3Jvcy5jcHAKaW5kZXggY2VlYmUwNzVhNjJmMzc3MjdlN2U3Njk0N2NjMzgxYzZh
MDljNWE5NC4uM2E0NmIzNTAxODRlNDM0ZDJjZDM2NWNlZjM4OWUwOTNlOTI0MDUwYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcApAQCAtNTM5LDcgKzUzOSw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBh
cmFtcy5ncFNjcmF0Y2goMCk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihqdW1wVGFibGUpLCBzY3JhdGNoKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRj
aCwgaW5kZXgsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSksIHNjcmF0Y2gpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNo
LCBpbmRleCwgQ0NhbGxIZWxwZXJzOjpTY2FsZVB0ciksIHNjcmF0Y2gpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgaml0LmZhckp1bXAoc2NyYXRjaCwgSlNTd2l0Y2hQdHJUYWcpOwogCiAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBsYWJlbHMgYXJlIGd1YXJhbnRlZWQgdG8gYmUg
cG9wdWxhdGVkIGJlZm9yZSBlaXRoZXIgbGF0ZSBwYXRocyBvcgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjNfNi5jcHAKaW5kZXggMTI0MGViNDViNjA1ZTA1ZjMwMTNjNzZlMDYzZTc0OTg5NmZi
OWVhNC4uYjZjNmUyY2ExZmVjMGY4ODE3Mzc3OWNhZmE2NThiZTQ3N2E5ZTkzYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCkBAIC0xNjc5LDcgKzE2NzksNyBAQCB2b2lkIHRl
c3RJbnRlcnByZXRlcigpCiAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBhcmFtcy5ncFNj
cmF0Y2goMCk7CiAKICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cihqdW1wVGFibGUpLCBzY3JhdGNoKTsKLSAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxI
ZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbEhlbHBlcnM6
OnRpbWVzUHRyKCkpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxw
ZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbEhlbHBlcnM6OlNj
YWxlUHRyKSwgc2NyYXRjaCk7CiAgICAgICAgICAgICBqaXQuZmFySnVtcChzY3JhdGNoLCBCM0Nv
bXBpbGF0aW9uUHRyVGFnKTsKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA4OGFi
ZTBlM2I4NjAzM2M1YWUzN2UyMTQzODVlN2EwMzMxYjI3MDQxLi42ODhiNjRjYzIzZjRiNDgxNDUw
YTY5ZWY4YTA1YTgxMzRjYjhhMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTEyNDMsNyArMTEyNDMsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjplbWl0U3dpdGNoSW50SnVtcCgKICAgICAgICAgbV9qaXQuYnJhbmNoMzIoSklU
Q29tcGlsZXI6OkFib3ZlT3JFcXVhbCwgdmFsdWUsIEltbTMyKHRhYmxlLmN0aU9mZnNldHMuc2l6
ZSgpKSksCiAgICAgICAgIGRhdGEtPmZhbGxUaHJvdWdoLmJsb2NrKTsKICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW1QdHIodGFibGUuY3RpT2Zmc2V0cy5iZWdpbigpKSwgc2NyYXRjaCk7Ci0gICAg
bV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QmFzZUluZGV4KHNjcmF0Y2gsIHZhbHVlLCBKSVRD
b21waWxlcjo6dGltZXNQdHIoKSksIHNjcmF0Y2gpOworICAgIG1faml0LmxvYWRQdHIoSklUQ29t
cGlsZXI6OkJhc2VJbmRleChzY3JhdGNoLCB2YWx1ZSwgSklUQ29tcGlsZXI6OlNjYWxlUHRyKSwg
c2NyYXRjaCk7CiAgICAgCiAgICAgbV9qaXQuZmFySnVtcChzY3JhdGNoLCBKU1N3aXRjaFB0clRh
Zyk7CiAgICAgZGF0YS0+ZGlkVXNlSnVtcFRhYmxlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCA3YTdjZDU4OTQxYzkzOGVhYzNi
MzNmMDIwOTI1NzZkMjI5OWZlNjVjLi5iYTIxZWMxNzY3ZWY2ZDhlNGM2NTk2MDVlOTc0NmJiZjVm
Y2I0OTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwCkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRMb2FkU3Ry
dWN0dXJlKFZNJiB2bSwgUmVnaXN0ZXJJRCBzb3VyY2UsIFJlZ2lzdGVySUQgZGUKICAgICBsb2Fk
MzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc291cmNlLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zm
c2V0KCkpLCBzY3JhdGNoMik7CiAgICAgbG9hZFB0cih2bS5oZWFwLnN0cnVjdHVyZUlEVGFibGUo
KS5iYXNlKCksIHNjcmF0Y2gpOwogICAgIHJzaGlmdDMyKHNjcmF0Y2gyLCBUcnVzdGVkSW1tMzIo
U3RydWN0dXJlSURUYWJsZTo6c19udW1iZXJPZkVudHJvcHlCaXRzKSwgZGVzdCk7Ci0gICAgbG9h
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHNjcmF0Y2gsIGRlc3QsIE1hY3JvQXNzZW1i
bGVyOjpUaW1lc0VpZ2h0KSwgZGVzdCk7CisgICAgbG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QmFz
ZUluZGV4KHNjcmF0Y2gsIGRlc3QsIE1hY3JvQXNzZW1ibGVyOjpTY2FsZVB0ciksIGRlc3QpOwog
ICAgIGxzaGlmdFB0cihUcnVzdGVkSW1tMzIoU3RydWN0dXJlSURUYWJsZTo6c19lbnRyb3B5Qml0
c1NoaWZ0Rm9yU3RydWN0dXJlUG9pbnRlciksIHNjcmF0Y2gyKTsKICAgICB4b3JQdHIoc2NyYXRj
aDIsIGRlc3QpOwogI2Vsc2UgLy8gbm90IFVTRShKU1ZBTFVFNjQpCkBAIC01NzIsNyArNTcyLDcg
QEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRBbGxvY2F0ZVZhcmlhYmxlU2l6ZWQoR1BSUmVn
IHJlc3VsdEdQUiwgQ29tcGxldGVTdWJzcGEKICAgICB1cnNoaWZ0MzIoVHJ1c3RlZEltbTMyKHN0
ZXBTaGlmdCksIHNjcmF0Y2hHUFIxKTsKICAgICBzbG93UGF0aC5hcHBlbmQoYnJhbmNoMzIoQWJv
dmUsIHNjcmF0Y2hHUFIxLCBUcnVzdGVkSW1tMzIoTWFya2VkU3BhY2U6OmxhcmdlQ3V0b2ZmID4+
IHN0ZXBTaGlmdCkpKTsKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoc3Vic3BhY2UuYWxsb2NhdG9y
Rm9yU2l6ZVN0ZXAoKSksIHNjcmF0Y2hHUFIyKTsKLSAgICBsb2FkUHRyKEJhc2VJbmRleChzY3Jh
dGNoR1BSMiwgc2NyYXRjaEdQUjEsIHRpbWVzUHRyKCkpLCBzY3JhdGNoR1BSMSk7CisgICAgbG9h
ZFB0cihCYXNlSW5kZXgoc2NyYXRjaEdQUjIsIHNjcmF0Y2hHUFIxLCBTY2FsZVB0ciksIHNjcmF0
Y2hHUFIxKTsKICAgICAKICAgICBlbWl0QWxsb2NhdGUocmVzdWx0R1BSLCBKSVRBbGxvY2F0b3I6
OnZhcmlhYmxlKCksIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgc2xvd1BhdGgpOwogfQpAQCAt
NjA4LDExICs2MDgsOSBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6cmVzdG9yZUNhbGxlZVNhdmVz
RnJvbUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcihFbnRyeUZyYQogICAgICAgICBSZWdpc3Rl
ckF0T2Zmc2V0IGVudHJ5ID0gYWxsQ2FsbGVlU2F2ZXMtPmF0KGkpOwogICAgICAgICBpZiAoZG9u
dFJlc3RvcmVSZWdpc3RlcnMuZ2V0KGVudHJ5LnJlZygpKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICBpZiAoZW50cnkucmVnKCkuaXNHUFIoKSkgewotICAgICAgICAgICAgaWYgKGkg
IT0gc2NyYXRjaEdQUkVudHJ5SW5kZXgpCi0gICAgICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNz
KHNjcmF0Y2gsIGVudHJ5Lm9mZnNldCgpKSwgZW50cnkucmVnKCkuZ3ByKCkpOwotICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzY3JhdGNoLCBlbnRyeS5vZmZz
ZXQoKSksIGVudHJ5LnJlZygpLmZwcigpKTsKKyAgICAgICAgaWYgKGkgPT0gc2NyYXRjaEdQUkVu
dHJ5SW5kZXgpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgbG9hZFJlZyhBZGRyZXNz
KHNjcmF0Y2gsIGVudHJ5Lm9mZnNldCgpKSwgZW50cnkucmVnKCkpOwogICAgIH0KIAogICAgIC8v
IFJlc3RvcmUgdGhlIGNhbGxlZSBzYXZlIHZhbHVlIG9mIHRoZSBzY3JhdGNoLgpAQCAtNjIwLDcg
KzYxOCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpyZXN0b3JlQ2FsbGVlU2F2ZXNGcm9tRW50
cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKEVudHJ5RnJhCiAgICAgQVNTRVJUKCFkb250UmVzdG9y
ZVJlZ2lzdGVycy5nZXQoZW50cnkucmVnKCkpKTsKICAgICBBU1NFUlQoZW50cnkucmVnKCkuaXNH
UFIoKSk7CiAgICAgQVNTRVJUKHNjcmF0Y2ggPT0gZW50cnkucmVnKCkuZ3ByKCkpOwotICAgIGxv
YWRQdHIoQWRkcmVzcyhzY3JhdGNoLCBlbnRyeS5vZmZzZXQoKSksIHNjcmF0Y2gpOworICAgIGxv
YWRSZWcoQWRkcmVzcyhzY3JhdGNoLCBlbnRyeS5vZmZzZXQoKSksIHNjcmF0Y2gpOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0odG9wRW50cnlGcmFtZSk7CiAjZW5kaWYKQEAgLTk4OCwxMCArOTg2
LDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmNvcHlDYWxsZWVTYXZlc1RvRW50cnlGcmFtZUNh
bGxlZVNhdmVzQnVmZmVySW1wbChHUFJSZWcgY2EKICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBl
bnRyeSA9IGFsbENhbGxlZVNhdmVzLT5hdChpKTsKICAgICAgICAgaWYgKGRvbnRDb3B5UmVnaXN0
ZXJzLmdldChlbnRyeS5yZWcoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYg
KGVudHJ5LnJlZygpLmlzR1BSKCkpCi0gICAgICAgICAgICBzdG9yZVB0cihlbnRyeS5yZWcoKS5n
cHIoKSwgQWRkcmVzcyhjYWxsZWVTYXZlc0J1ZmZlciwgZW50cnkub2Zmc2V0KCkpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgc3RvcmVEb3VibGUoZW50cnkucmVnKCkuZnByKCksIEFkZHJl
c3MoY2FsbGVlU2F2ZXNCdWZmZXIsIGVudHJ5Lm9mZnNldCgpKSk7CisgICAgICAgIHN0b3JlUmVn
KGVudHJ5LnJlZygpLCBBZGRyZXNzKGNhbGxlZVNhdmVzQnVmZmVyLCBlbnRyeS5vZmZzZXQoKSkp
OwogICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNhbGxlZVNhdmVzQnVmZmVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDA2M2I4YmY2
NDRhYzI1OTBkYTU0NmI2NDlhODI3Yjc1ZTEwNzgxNWQuLmQ1YjQwMTlkYWY5NTZiYzI0NTdiNGQw
OTU0OWY3MzU1ZmRhOGNjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuaApAQCAtMTAyLDYgKzEwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBzdG9y
ZTMyKHNyYy5ncHIoKSwgZHN0KTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUmVnKFJlZyBzcmMs
IEFkZHJlc3MgZHN0KQorICAgIHsKKyAgICAgICAgaWYgY29uc3RleHByIChpczY0Qml0KCkpCisg
ICAgICAgICAgICBzdG9yZTY0RnJvbVJlZyhzcmMsIGRzdCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHN0b3JlMzJGcm9tUmVnKHNyYywgZHN0KTsKKyAgICB9CisKICNpZiBVU0UoSlNWQUxV
RTY0KQogICAgIHZvaWQgbG9hZDY0VG9SZWcoQWRkcmVzcyBzcmMsIFJlZyBkc3QpCiAgICAgewpA
QCAtMTIwLDYgKzEyOCwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBsb2FkMzIoc3JjLCBkc3Qu
Z3ByKCkpOwogICAgIH0KIAorICAgIHZvaWQgbG9hZFJlZyhBZGRyZXNzIHNyYywgUmVnIGRzdCkK
KyAgICB7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoaXM2NEJpdCgpKQorICAgICAgICAgICAgbG9h
ZDY0VG9SZWcoc3JjLCBkc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2FkMzJUb1Jl
ZyhzcmMsIGRzdCk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lk
IHN0b3JlQ2VsbChUIGNlbGwsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CkBAIC00OTgsNyArNTE0
LDcgQEAgcHVibGljOgogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBtb3ZlKE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6TnVtYmVyVGFnKSwgR1BSSW5mbzo6
bnVtYmVyVGFnUmVnaXN0ZXIpOwotICAgICAgICBvclB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6Ok90aGVyVGFnKSwgR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsIEdQ
UkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAgICBvcjY0KE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6T3RoZXJUYWcpLCBHUFJJbmZvOjpudW1iZXJUYWdSZWdp
c3RlciwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CiAjZW5kaWYKICAgICB9CiAKQEAg
LTYyNSwyNSArNjQxLDMwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIoVmlydHVhbFJlZ2lzdGVyIGVudHJ5LCBHUFJSZWcgdG8sIEdQUlJlZyBmcm9t
ID0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpCiAgICAgeworICAgICAgICBBU1NFUlQoZW50
cnkuaXNIZWFkZXIoKSk7CiAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhmcm9tLCBlbnRyeS5vZmZz
ZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCB0byk7CiAgICAgfQogICAgIHZvaWQgZW1pdEdldEZy
b21DYWxsRnJhbWVIZWFkZXIzMihWaXJ0dWFsUmVnaXN0ZXIgZW50cnksIEdQUlJlZyB0bywgR1BS
UmVnIGZyb20gPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcikKICAgICB7CisgICAgICAgIEFT
U0VSVChlbnRyeS5pc0hlYWRlcigpKTsKICAgICAgICAgbG9hZDMyKEFkZHJlc3MoZnJvbSwgZW50
cnkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgdG8pOwogICAgIH0KICNpZiBVU0UoSlNW
QUxVRTY0KQogICAgIHZvaWQgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXI2NChWaXJ0dWFsUmVn
aXN0ZXIgZW50cnksIEdQUlJlZyB0bywgR1BSUmVnIGZyb20gPSBHUFJJbmZvOjpjYWxsRnJhbWVS
ZWdpc3RlcikKICAgICB7CisgICAgICAgIEFTU0VSVChlbnRyeS5pc0hlYWRlcigpKTsKICAgICAg
ICAgbG9hZDY0KEFkZHJlc3MoZnJvbSwgZW50cnkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIp
KSwgdG8pOwogICAgIH0KICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogICAgIHZvaWQgZW1pdFB1
dFRvQ2FsbEZyYW1lSGVhZGVyKEdQUlJlZyBmcm9tLCBWaXJ0dWFsUmVnaXN0ZXIgZW50cnkpCiAg
ICAgeworICAgICAgICBBU1NFUlQoZW50cnkuaXNIZWFkZXIoKSk7CiAgICAgICAgIHN0b3JlUHRy
KGZyb20sIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGVudHJ5Lm9mZnNldCgp
ICogc2l6ZW9mKFJlZ2lzdGVyKSkpOwogICAgIH0KIAogICAgIHZvaWQgZW1pdFB1dFRvQ2FsbEZy
YW1lSGVhZGVyKHZvaWQqIHZhbHVlLCBWaXJ0dWFsUmVnaXN0ZXIgZW50cnkpCiAgICAgeworICAg
ICAgICBBU1NFUlQoZW50cnkuaXNIZWFkZXIoKSk7CiAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJ
bW1QdHIodmFsdWUpLCBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBlbnRyeS5v
ZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA3MWNmOTllOTkwNDhiYTY0ZmI5
NTE0Y2U2YmE1YTkxMDZjMGRhNjczLi5lNmYyMzUxNTk3ODcxMGVlYmM1NjFhYzk4MDQ0MTk4ZmUx
OWY3NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMz
Ml82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQu
Y3BwCkBAIC0xMzIwLDcgKzEzMjAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX3N0
cnVjdHVyZV9wbmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aQogICAgIGlu
Qm91bmRzLmxpbmsodGhpcyk7CiAKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkUHJvcGVydHlOYW1lc1ZlY3Rvck9mZnNldCgpKSwgcmVn
VDEpOwotICAgIGxvYWRQdHIoQmFzZUluZGV4KHJlZ1QxLCByZWdUMCwgdGltZXNQdHIoKSksIHJl
Z1QwKTsKKyAgICBsb2FkUHRyKEJhc2VJbmRleChyZWdUMSwgcmVnVDAsIFNjYWxlUHRyKSwgcmVn
VDApOwogICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdUMik7CiAK
ICAgICBkb25lLmxpbmsodGhpcyk7CkBAIC0xMzQ1LDcgKzEzNDUsNyBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9lbnVtZXJhdG9yX2dlbmVyaWNfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbgogICAgIGluQm91bmRzLmxpbmsodGhpcyk7CiAKICAgICBsb2FkUHRyKEFkZHJl
c3MocmVnVDEsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkUHJvcGVydHlOYW1lc1Zl
Y3Rvck9mZnNldCgpKSwgcmVnVDEpOwotICAgIGxvYWRQdHIoQmFzZUluZGV4KHJlZ1QxLCByZWdU
MCwgdGltZXNQdHIoKSksIHJlZ1QwKTsKKyAgICBsb2FkUHRyKEJhc2VJbmRleChyZWdUMSwgcmVn
VDAsIFNjYWxlUHRyKSwgcmVnVDApOwogICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLCByZWdUMik7CiAgICAgCiAgICAgZG9uZS5saW5rKHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IDY5ZmI3Y2IyZDIzNDJh
MDU2YTdmNmVmOGVlOTk3NGI5ZmNjOWI1NmYuLjYyNjFkMDRkOTFjNmM1NDlmMmRkMGY2OTMwZjRi
YTljYTZlNTJlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJh
dG9ycy5jcHAKQEAgLTMwMiw4ICszMDIsOCBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEpJVFRodW5rUHRyVGFnPiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0mIHZtLCBUaHVua0Z1bgogCiAg
ICAgLy8gQ2hlY2sgZm9yIGFuIGV4Y2VwdGlvbgogI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgaml0
LmxvYWQ2NCh2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsK
LSAgICBKU0ludGVyZmFjZUpJVDo6SnVtcCBleGNlcHRpb25IYW5kbGVyID0gaml0LmJyYW5jaFRl
c3Q2NChKU0ludGVyZmFjZUpJVDo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QyKTsKKyAg
ICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QyKTsKKyAgICBKU0ludGVyZmFjZUpJVDo6SnVtcCBleGNlcHRpb25IYW5kbGVyID0gaml0LmJy
YW5jaFRlc3RQdHIoSlNJbnRlcmZhY2VKSVQ6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpyZWdU
Mik7CiAjZWxzZQogICAgIEpTSW50ZXJmYWNlSklUOjpKdW1wIGV4Y2VwdGlvbkhhbmRsZXIgPSBq
aXQuYnJhbmNoMzIoCiAgICAgICAgIEpTSW50ZXJmYWNlSklUOjpOb3RFcXVhbCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZXN0UnVubmVyVXRpbHMuY3BwCmluZGV4IGRj
ODFiOTI4NjFlMjkwOTc4NGViODgwZmVlZWJhZWI1Yjk2YjFjNjUuLmFjN2I2MWRkZDBhMTRhMjU3
ZGI3YjJiODAxNDkzNmI2MzBlZmNjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNwcApAQCAtNjUsNyArNjUsNyBAQCBKU1ZhbHVlIG51
bWJlck9mREZHQ29tcGlsZXMoSlNWYWx1ZSB0aGVGdW5jdGlvblZhbHVlKQogewogICAgIGJvb2wg
cHJldGVuZFRvSGF2ZU1hbnlDb21waWxlcyA9IGZhbHNlOwogI2lmIEVOQUJMRShERkdfSklUKQot
ICAgIGlmICghT3B0aW9uczo6dXNlSklUKCkgfHwgIU9wdGlvbnM6OnVzZURGR0pJVCgpKQorICAg
IGlmICghT3B0aW9uczo6dXNlSklUKCkgfHwgIU9wdGlvbnM6OnVzZUJhc2VsaW5lSklUKCkgfHwg
IU9wdGlvbnM6OnVzZURGR0pJVCgpKQogICAgICAgICBwcmV0ZW5kVG9IYXZlTWFueUNvbXBpbGVz
ID0gdHJ1ZTsKICNlbHNlCiAgICAgcHJldGVuZFRvSGF2ZU1hbnlDb21waWxlcyA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggMTA2NTU2NmI5
NTY3MDNlZDk4ZGQ0N2UzZjgzOWFhY2NkMzBlYjVmNC4uNmJiYjYyMWU4NTcyMjU1NmVhZDJjMmE1
ZDliNzE0YWEyYjNiZWVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVj
dG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBp
bGVyLmNwcApAQCAtMzUwMSw3ICszNTAxLDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlRWxlbWVudEhhc0NsYXNzZXMoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHUKICAg
ICAgICAgQXNzZW1ibGVyOjpMYWJlbCBsb29wU3RhcnQobV9hc3NlbWJsZXIubGFiZWwoKSk7CiAK
ICAgICAgICAgLy8gSWYgdGhlIHBvaW50ZXJzIG1hdGNoLCBwcm9jZWVkIHRvIHRoZSBuZXh0IG1h
dGNoZXIuCi0gICAgICAgIEFzc2VtYmxlcjo6SnVtcCBjbGFzc0ZvdW5kID0gbV9hc3NlbWJsZXIu
YnJhbmNoUHRyKEFzc2VtYmxlcjo6RXF1YWwsIEFzc2VtYmxlcjo6QmFzZUluZGV4KHNwYWNlU3Bs
aXRTdHJpbmdEYXRhLCBpbmRleFJlZ2lzdGVyLCBBc3NlbWJsZXI6OnRpbWVzUHRyKCksIFNwYWNl
U3BsaXRTdHJpbmdEYXRhOjp0b2tlbnNNZW1vcnlPZmZzZXQoKSksIGNsYXNzTmFtZVRvTWF0Y2gp
OworICAgICAgICBBc3NlbWJsZXI6Okp1bXAgY2xhc3NGb3VuZCA9IG1fYXNzZW1ibGVyLmJyYW5j
aFB0cihBc3NlbWJsZXI6OkVxdWFsLCBBc3NlbWJsZXI6OkJhc2VJbmRleChzcGFjZVNwbGl0U3Ry
aW5nRGF0YSwgaW5kZXhSZWdpc3RlciwgQXNzZW1ibGVyOjpTY2FsZVB0ciwgU3BhY2VTcGxpdFN0
cmluZ0RhdGE6OnRva2Vuc01lbW9yeU9mZnNldCgpKSwgY2xhc3NOYW1lVG9NYXRjaCk7CiAKICAg
ICAgICAgLy8gSW5jcmVtZW50IHRoZSBpbmRleC4KICAgICAgICAgbV9hc3NlbWJsZXIuYWRkMzIo
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSksIGluZGV4UmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAzYzRmNmE5Y2MxYmEz
MzFmNDExMTAxMTljOGEzYWU3MTk2ZTJkYjIxLi5jZGY0YmZkYTY0OTEyNzFlNzZiOWNkMTZhMjVj
NjU1ZWQ4NzE4NzcwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA2LTEyICBLZWl0aCBNaWxsZXIgIDxr
ZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEpJVCB0aHVua3Mgc2hvdWxkIHdvcmsg
b24gYXJtNjRfMzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMzEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNraXAgdGVzdCBvbiBtZW1vcnkgbGltaXRlZCBzaW5jZSBpdCBicmVha3Mgb24gd2F0Y2gg
d2l0aCBKSVQuCisKKyAgICAgICAgKiBzdHJlc3MvYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hwb2lu
dC1jYW4tYmUtZmlyZWQtaW4tcmVhbGx5LWFkZC1pbi1kZmcuanM6CisKIDIwMjAtMDYtMDggIFJv
c3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtJbnRsXSBV
cGRhdGUgdGVzdHMgdG8gc3VwcG9ydCBJQ1UgNjcKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2FycmF5LWJ1ZmZlci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxseS1hZGQt
aW4tZGZnLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hwb2ludC1j
YW4tYmUtZmlyZWQtaW4tcmVhbGx5LWFkZC1pbi1kZmcuanMKaW5kZXggNzVhZWJlNjliYWNiYTc1
MDkzZTkxMjUzODE1OGVlMjkwMDY2YWZjOS4uYjlkZDkzZjc2NTc2MzExNzhhYzhmMzg3YzFjZjQx
NTZiZWRmOTNhZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVyLXZpZXct
d2F0Y2hwb2ludC1jYW4tYmUtZmlyZWQtaW4tcmVhbGx5LWFkZC1pbi1kZmcuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hwb2ludC1jYW4tYmUtZmlyZWQtaW4t
cmVhbGx5LWFkZC1pbi1kZmcuanMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAkbWVtb3J5
TGltaXRlZAogLy9AIHNraXAgaWYgWyJhcm0iLCAicG93ZXJwYyIsICJwb3dlcnBjNjQiLCAiczM5
MCJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpIGFuZCAkaG9zdE9TID09ICJsaW51eCIKIC8vQCBy
ZXF1aXJlT3B0aW9ucygiLWUiLCAibGV0IGl0ZXJhdGlvbnM9NDAwMDAiKSBpZiBbIm1pcHMiXS5p
bmNsdWRlPygkYXJjaGl0ZWN0dXJlKQogLy9AIHJ1bkRlZmF1bHQoIi0taml0UG9saWN5U2NhbGU9
MCIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401755</attachid>
            <date>2020-06-12 11:36:06 -0700</date>
            <delta_ts>2020-06-12 13:08:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213103-20200612113605.patch</filename>
            <type>text/plain</type>
            <size>31987</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OGFhZTM5ODIyODFiNzhmMjc1ODNkMzkxNTFlNGNjZjhkZDA4MGE3Li4zYjBiNzRmZTI4YzMzMTQ5
NmFiM2JhNWU5ODkyYjEzMGY1MGMwMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OCBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBKSVQgdGh1bmtzIHNob3VsZCB3b3JrIG9uIGFybTY0XzMyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGZp
eGVzIHZhcmlvdXMgaXNzdWVzIHdoZW4gcnVubmluZyBKU0Mgb24gYXJtNjRfMzIgd2l0aAorICAg
ICAgICB1c2VKSVQ9MSBhbmQgdXNlQmFzZWxpbmVKSVQ9MC4gSW4gcGFydGljdWxhciB0aGlzIHBh
dGNoIG1ha2VzIHRoZQorICAgICAgICBmb2xsb3dpbmcgY2hhbmdlczoKKworICAgICAgICAxKSBT
Y2FsZVB0ciBpcyBub3cganVzdCBwYXJ0IG9mIHRoZSBTY2FsZSBlbnVtIGFuZCBpcyBzZXQgYmFz
ZWQgb24KKyAgICAgICAgdGhlIHNpemUgb2YgdGhlIGFkZHJlc3Mgc3BhY2UuCisKKyAgICAgICAg
MikgTWFjcm9Bc3NlbWJsZXI6OipQdHIgZnVuY3Rpb25zIGNhbGwgMzIvNjQgYml0IHZhcmlhbnRz
IGJhc2VkIG9uCisgICAgICAgIEFkZHJlc3Mgc3BhY2Ugc2l6ZSByYXRoZXIgdGhhbiBjcHUgYXJj
aGl0ZWN0dXJlLgorCisgICAgICAgIDMpIEFkZCBzb21lIG1pc3NpbmcgdmFyaWFudHMgb2YgZnVu
Y3Rpb25zIGZvciB3aGVuIHBvaW50ZXJzIGFyZSAzMi1iaXQuCisKKyAgICAgICAgNCkgQWRkIGEg
bG9hZC9zdG9yZVJlZyBmdW5jdGlvbiB0aGF0IHN0b3JlcyBhIGZ1bGwgcmVnaXN0ZXIgcmVnYXJk
bGVzcworICAgICAgICBvZiBwb2ludGVyIHNpemUgZm9yIHN0b3JpbmcvbG9hZGluZyBjYWxsZWUg
c2F2ZXMuCisKKyAgICAgICAgNSkgbnVtYmVyT2ZERkdDb21waWxlcyBzaG91bGQgcmVwb3J0IGEg
YmlnIG51bWJlciBmb3IgdXNlQmFzZWxpbmVKSVQ9MAorCisgICAgICAgIDYpIEFzc2VydCBCYXNl
SW5kZXggaGFzIGEgc2NhbGUgb2YgUHRyU2l6ZSBvciBUaW1lc09uZSAoZm9yIHByZS1zY2FsZWQK
KyAgICAgICAgdmFsdWVzKSB3aGVuIHBhc3NlZCB0byBhIGxvYWQvc3RvcmVQdHIgZnVuY3Rpb24u
CisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAg
ICAoSlNDOjpBYnN0cmFjdE1hY3JvQXNzZW1ibGVyOjp0aW1lc1B0cik6IERlbGV0ZWQuCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyOjpyb3RhdGVSaWdodFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjps
b2FkUHRyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmxvYWRQdHJXaXRoQ29tcGFj
dEFkZHJlc3NPZmZzZXRQYXRjaCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpicmFu
Y2hQdHIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c3RvcmVQdHIpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c2hvdWxkQmxpbmREb3VibGUpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlcjo6bW92ZURvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyOjpzdG9yZTY0KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5o
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjphZGQzMik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnNpZ25FeHRlbmQzMlRvUHRyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OmNhbGwpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpm
YXJKdW1wKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpyb3RhdGVSaWdodDMyKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgICogYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2Lmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0Lmg6CisgICAgICAgICogYjMvQjNMb3dlck1hY3Jvcy5jcHA6CisgICAgICAgICogYjMvdGVz
dGIzXzYuY3BwOgorICAgICAgICAodGVzdEludGVycHJldGVyKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpl
bWl0U3dpdGNoSW50SnVtcCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5jcHA6Cisg
ICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdExvYWRTdHJ1Y3R1cmUpOgorICAgICAg
ICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRBbGxvY2F0ZVZhcmlhYmxlU2l6ZWQpOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnJlc3RvcmVDYWxsZWVTYXZlc0Zyb21FbnRyeUZy
YW1lQ2FsbGVlU2F2ZXNCdWZmZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNv
cHlDYWxsZWVTYXZlc1RvRW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVySW1wbCk6CisgICAgICAg
ICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6
OnN0b3JlUmVnKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpsb2FkUmVnKToKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0TWF0ZXJpYWxpemVUYWdDaGVja1JlZ2lz
dGVycyk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXJQdHIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyMzIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRH
ZXRGcm9tQ2FsbEZyYW1lSGVhZGVyNjQpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6
OmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9w
bmFtZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX2dlbmVyaWNfcG5h
bWUpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpu
YXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNw
cDoKKyAgICAgICAgKEpTQzo6bnVtYmVyT2ZERkdDb21waWxlcyk6CisKIDIwMjAtMDYtMDkgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBTaHJpbmsg
X19EQVRBLChfX2RhdGEsX19ic3MsX19jb21tb24pIG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NGEwNGUy
NGVmYzQ2OWViZTQwNzdjMWFjOGNlM2Y5NGQ1ZmE5ZjkxLi5mMzQxZWUyYzBlNTU0ZDIwNjkyY2Zk
YjA1ZmYxYmJiN2YxZDg0MzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDYt
MTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgSklU
IHRodW5rcyBzaG91bGQgd29yayBvbiBhcm02NF8zMgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgdGltZXNQdHIoKSB0byBTY2FsZVB0ci4K
KworICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVt
ZW50SGFzQ2xhc3Nlcyk6CisKIDIwMjAtMDYtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBsYW5nPXpoIG5lZWRzIHRvIGRlZmVyIHRvIHN5c3Rl
bSBwcmVmZXJlbmNlcyB0byBrbm93IHdoZXRoZXIgaXQgc2hvdWxkIGJlIHNpbXBsaWZpZWQgb3Ig
dHJhZGl0aW9uYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKaW5kZXggYTcxZDA4ODNlNjJmYzhhNTIyNDZkZWIx
NzJlMmQwODU3YjYzNjg5Ni4uMzVkYmM5NTAwOGMyYTBkMDU2YjAwNDZkMGNlNmE2NTVhNzNjNmRm
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0
cmFjdE1hY3JvQXNzZW1ibGVyLmgKQEAgLTEyMCwxNSArMTIwLDkgQEAgcHVibGljOgogICAgICAg
ICBUaW1lc1R3bywKICAgICAgICAgVGltZXNGb3VyLAogICAgICAgICBUaW1lc0VpZ2h0LAorICAg
ICAgICBTY2FsZVB0ciA9IGlzQWRkcmVzczY0Qml0KCkgPyBUaW1lc0VpZ2h0IDogVGltZXNGb3Vy
LAogICAgIH07CiAgICAgCi0gICAgc3RhdGljIFNjYWxlIHRpbWVzUHRyKCkKLSAgICB7Ci0gICAg
ICAgIGlmIChzaXplb2Yodm9pZCopID09IDQpCi0gICAgICAgICAgICByZXR1cm4gVGltZXNGb3Vy
OwotICAgICAgICByZXR1cm4gVGltZXNFaWdodDsKLSAgICB9Ci0gICAgCiAgICAgc3RydWN0IEJh
c2VJbmRleDsKICAgICAKICAgICBzdGF0aWMgUmVnaXN0ZXJJRCB3aXRoU3dhcHBlZFJlZ2lzdGVy
KFJlZ2lzdGVySUQgb3JpZ2luYWwsIFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaApp
bmRleCBiZjllOTBiM2Q1YTA4ZGEzNGQzNTEwYjY3MWEwNjA2Mzk1ODlmMWIyLi4zZDZiOTA5OTUw
NjRmNjlhZTk2MmY2MjJmZjc4NDBkOTBkYjIyMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCkBAIC05NSw2ICs5NSw3IEBAIHVzaW5n
IE1hY3JvQXNzZW1ibGVyQmFzZSA9IFRBUkdFVF9NQUNST0FTU0VNQkxFUjsKIAogY2xhc3MgTWFj
cm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJCYXNlIHsKIHB1YmxpYzoKKyAgICB1
c2luZyBCYXNlID0gTWFjcm9Bc3NlbWJsZXJCYXNlOwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBS
ZWdpc3RlcklEIG5leHRSZWdpc3RlcihSZWdpc3RlcklEIHJlZykKICAgICB7CkBAIC0xNTAsNiAr
MTUxLDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnVyc2hpZnQz
MjsKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnhvcjMyOwogCisjaWYgQ1BVKEFSTTY0
KSB8fCBDUFUoWDg2XzY0KQorICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6YW5kNjQ7Cisg
ICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpjb252ZXJ0SW50MzJUb0RvdWJsZTsKKyAgICB1
c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnN0b3JlNjQ7CisjZW5kaWYKKwogICAgIHN0YXRpYyBi
b29sIGlzUHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQocHRyZGlmZl90IHZhbHVlKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIHZhbHVlID09IHN0YXRpY19jYXN0PGludDMyX3Q+KHZhbHVlKTsKQEAgLTU0
MSw4ICs1NDgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBQdHIgbWV0aG9kcwogICAgIC8vIE9uIDMy
LWJpdCBwbGF0Zm9ybXMgKGkuZS4geDg2KSwgdGhlc2UgbWV0aG9kcyBkaXJlY3RseSBtYXAgb250
byB0aGVpciAzMi1iaXQgZXF1aXZhbGVudHMuCi0gICAgLy8gRklYTUU6IHNob3VsZCB0aGlzIHVz
ZSBhIHRlc3QgZm9yIDMyLWJpdG5lc3MgaW5zdGVhZCBvZiB0aGlzIHNwZWNpZmljIGV4Y2VwdGlv
bj8KLSNpZiAhQ1BVKFg4Nl82NCkgJiYgIUNQVShBUk02NCkKKyNpZiAhQ1BVKEFERFJFU1M2NCkK
ICAgICB2b2lkIGFkZFB0cihBZGRyZXNzIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAg
ICAgICAgYWRkMzIoc3JjLCBkZXN0KTsKQEAgLTY1OCw2ICs2NjQsMTEgQEAgcHVibGljOgogICAg
ICAgICBvcjMyKGltbSwgZGVzdCk7CiAgICAgfQogCisgICAgdm9pZCByb3RhdGVSaWdodFB0cihU
cnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyY0RzdCkKKyAgICB7CisgICAgICAgIHJvdGF0
ZVJpZ2h0MzIoaW1tLCBzcmNEc3QpOworICAgIH0KKwogICAgIHZvaWQgc3ViUHRyKFJlZ2lzdGVy
SUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBzdWIzMihzcmMsIGRlc3Qp
OwpAQCAtNzAwLDYgKzcxMSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbG9hZFB0cihCYXNlSW5k
ZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKKyAgICAgICAgQVNTRVJUKGFkZHJl
c3Muc2NhbGUgPT0gU2NhbGVQdHIgfHwgYWRkcmVzcy5zY2FsZSA9PSBUaW1lc09uZSk7CiAgICAg
ICAgIGxvYWQzMihhZGRyZXNzLCBkZXN0KTsKICAgICB9CiAKQEAgLTcyOSwxMSArNzQxLDYgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGxvYWQzMldpdGhDb21wYWN0QWRkcmVzc09m
ZnNldFBhdGNoKGFkZHJlc3MsIGRlc3QpOwogICAgIH0KLQotICAgIHZvaWQgbW92ZShJbW1QdHIg
aW1tLCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICBtb3ZlKEltbTMyKGltbS5hc1Ry
dXN0ZWRJbW1QdHIoKSksIGRlc3QpOwotICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBhcmVQdHIo
UmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIFRydXN0ZWRJbW0zMiBy
aWdodCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAgLTg3MCw3ICs4NzcsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckJhc2U6OmJyYW5jaFRlc3Q4KGNvbmQsIEFk
ZHJlc3MoYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCksIG1hc2spOwogICAgIH0KIAotI2Vs
c2UgLy8gIUNQVShYODZfNjQpICYmICFDUFUoQVJNNjQpCisjZWxzZSAvLyAhQ1BVKEFERFJFU1M2
NCkKIAogICAgIHZvaWQgYWRkUHRyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewpAQCAtMTA1MCw2ICsxMDU3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBsb2FkUHRyKEJh
c2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgeworICAgICAgICBBU1NFUlQo
YWRkcmVzcy5zY2FsZSA9PSBTY2FsZVB0ciB8fCBhZGRyZXNzLnNjYWxlID09IFRpbWVzT25lKTsK
ICAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIApAQCAtMTIxOSwxMCArMTIy
NywzMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBicmFuY2hTdWI2NChjb25kLCBzcmMxLCBz
cmMyLCBkZXN0KTsKICAgICB9CiAKLSAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OmFuZDY0
OwotICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6Y29udmVydEludDMyVG9Eb3VibGU7Ci0g
ICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpzdG9yZTY0OwotICAgIGJvb2wgc2hvdWxkQmxp
bmREb3VibGUoZG91YmxlIHZhbHVlKQorICAgIEp1bXAgYnJhbmNoUHRyKFJlbGF0aW9uYWxDb25k
aXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW1QdHIgcmlnaHQpCisgICAgeworICAgICAg
ICBpZiAoc2hvdWxkQmxpbmQocmlnaHQpICYmIGhhdmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGlu
ZygpKSB7CisgICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hS
ZWdpc3RlckZvckJsaW5kaW5nKCk7CisgICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29u
c3RhbnQocm90YXRpb25CbGluZENvbnN0YW50KHJpZ2h0KSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAg
ICAgICAgICAgIHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNvbmQsIGxlZnQsIHJpZ2h0LmFz
VHJ1c3RlZEltbVB0cigpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUHRyKEltbVB0ciBpbW0s
IEFkZHJlc3MgZGVzdCkKKyAgICB7CisgICAgICAgIGlmIChzaG91bGRCbGluZChpbW0pICYmIGhh
dmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKSB7CisgICAgICAgICAgICBSZWdpc3RlcklE
IHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCk7CisgICAgICAg
ICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQocm90YXRpb25CbGluZENvbnN0YW50KGlt
bSksIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgICAgICBzdG9yZVB0cihzY3JhdGNoUmVnaXN0
ZXIsIGRlc3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0b3JlUHRyKGltbS5hc1Ry
dXN0ZWRJbW1QdHIoKSwgZGVzdCk7CisgICAgfQorCisjZW5kaWYgLy8gIUNQVShBRERSRVNTNjQp
CisKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBib29sIHNob3VsZEJsaW5kRG91YmxlKGRv
dWJsZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIC8vIERvbid0IHRydXN0IE5hTiBvciArLy1JbmZp
bml0eQogICAgICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodmFsdWUpKQpAQCAtMTQxNSwxMyArMTQ0
MywxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtb3ZlKGltbS5hc1RydXN0ZWRJbW02NCgpLCBk
ZXN0KTsKICAgICB9CiAKLSNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCiAgICAgdm9pZCBt
b3ZlRG91YmxlKEltbTY0IGltbSwgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBt
b3ZlKGltbSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICBtb3ZlNjRUb0RvdWJsZShzY3Jh
dGNoUmVnaXN0ZXIoKSwgZGVzdCk7CiAgICAgfQotI2VuZGlmCiAKICAgICB2b2lkIGFuZDY0KElt
bTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAgLTE0MzIsMzggKzE0NTgsNyBAQCBw
dWJsaWM6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgYW5kNjQoaW1tLmFzVHJ1c3RlZElt
bTMyKCksIGRlc3QpOwogICAgIH0KLQotICAgIEp1bXAgYnJhbmNoUHRyKFJlbGF0aW9uYWxDb25k
aXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW1QdHIgcmlnaHQpCi0gICAgewotICAgICAg
ICBpZiAoc2hvdWxkQmxpbmQocmlnaHQpICYmIGhhdmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGlu
ZygpKSB7Ci0gICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hS
ZWdpc3RlckZvckJsaW5kaW5nKCk7Ci0gICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29u
c3RhbnQocm90YXRpb25CbGluZENvbnN0YW50KHJpZ2h0KSwgc2NyYXRjaFJlZ2lzdGVyKTsKLSAg
ICAgICAgICAgIHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNvbmQsIGxlZnQsIHJpZ2h0LmFz
VHJ1c3RlZEltbVB0cigpKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzdG9yZVB0cihJbW1QdHIg
aW1tLCBBZGRyZXNzIGRlc3QpCi0gICAgewotICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSAm
JiBoYXZlU2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKSkgewotICAgICAgICAgICAgUmVnaXN0
ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOwotICAg
ICAgICAgICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0YW50KHJvdGF0aW9uQmxpbmRDb25zdGFu
dChpbW0pLCBzY3JhdGNoUmVnaXN0ZXIpOwotICAgICAgICAgICAgc3RvcmVQdHIoc2NyYXRjaFJl
Z2lzdGVyLCBkZXN0KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzdG9yZVB0cihpbW0u
YXNUcnVzdGVkSW1tUHRyKCksIGRlc3QpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmU2NChJbW02
NCBpbW0sIEFkZHJlc3MgZGVzdCkKLSAgICB7Ci0gICAgICAgIGlmIChzaG91bGRCbGluZChpbW0p
ICYmIGhhdmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKSB7Ci0gICAgICAgICAgICBSZWdp
c3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCk7Ci0g
ICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQocm90YXRpb25CbGluZENvbnN0
YW50KGltbSksIHNjcmF0Y2hSZWdpc3Rlcik7Ci0gICAgICAgICAgICBzdG9yZTY0KHNjcmF0Y2hS
ZWdpc3RlciwgZGVzdCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3RvcmU2NChpbW0u
YXNUcnVzdGVkSW1tNjQoKSwgZGVzdCk7Ci0gICAgfQotCi0jZW5kaWYgLy8gIUNQVShYODZfNjQp
CisjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAogI2lmICFDUFUoWDg2KSAmJiAhQ1BVKFg4Nl82
NCkgJiYgIUNQVShBUk02NCkKICAgICAvLyBXZSBzaG91bGQgaW1wbGVtZW50IHRoaXMgdGhlIHJp
Z2h0IHdheSBldmVudHVhbGx5LCBidXQgZm9yIG5vdywgaXQncyBmaW5lIGJlY2F1c2UgaXQgYXJp
c2VzIHNvCkBAIC0xNzE5LDcgKzE3MTQsMTggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgc3Rv
cmU2NCh2YWx1ZSwgYWRkcmVzc0ZvclBva2UoaW5kZXgpKTsKICAgICB9Ci0jZW5kaWYgLy8gQ1BV
KFg4Nl82NCkKKworICAgIHZvaWQgc3RvcmU2NChJbW02NCBpbW0sIEFkZHJlc3MgZGVzdCkKKyAg
ICB7CisgICAgICAgIGlmIChzaG91bGRCbGluZChpbW0pICYmIGhhdmVTY3JhdGNoUmVnaXN0ZXJG
b3JCbGluZGluZygpKSB7CisgICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9
IHNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCk7CisgICAgICAgICAgICBsb2FkUm90YXRpb25C
bGluZGVkQ29uc3RhbnQocm90YXRpb25CbGluZENvbnN0YW50KGltbSksIHNjcmF0Y2hSZWdpc3Rl
cik7CisgICAgICAgICAgICBzdG9yZTY0KHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgc3RvcmU2NChpbW0uYXNUcnVzdGVkSW1tNjQoKSwgZGVzdCk7
CisgICAgfQorCisjZW5kaWYgLy8gQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgIAogICAg
IHZvaWQgc3RvcmUzMihJbW0zMiBpbW0sIEFkZHJlc3MgZGVzdCkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmlu
ZGV4IGUyNzIyNjA2NDE4N2M1NWUwMDVmYTk3NDc4MDdiMTdjMjczOTk2MDEuLjNiZDJiYWNjYTQy
NjdkY2VkMzYyYzJlMDI0NTQxOGRiM2Y4ZjAwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC04OSw4ICs4OSw2
IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZSA8QXNzZW1ibGVyOjpDb3B5RnVuY3Rpb24gY29weT4K
ICAgICBzdGF0aWMgdm9pZCBsaW5rKExpbmtSZWNvcmQmIHJlY29yZCwgdWludDhfdCogZnJvbSwg
Y29uc3QgdWludDhfdCogZnJvbUluc3RydWN0aW9uLCB1aW50OF90KiB0bykgeyByZXR1cm4gQXNz
ZW1ibGVyOjpsaW5rPGNvcHk+KHJlY29yZCwgZnJvbSwgZnJvbUluc3RydWN0aW9uLCB0byk7IH0K
IAotICAgIHN0YXRpYyBjb25zdGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1lc0VpZ2h0OwotCiAg
ICAgc3RhdGljIGJvb2wgaXNDb21wYWN0UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQocHRyZGlmZl90
IHZhbHVlKQogICAgIHsKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgbGFyZ2VzdCAzMi1iaXQgYWNj
ZXNzIGFsbG93ZWQsIGFsaWduZWQgdG8gNjQtYml0IGJvdW5kYXJ5LgpAQCAtMTUyLDEzICsxNTAs
MTggQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGQzMihSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQg
YiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGEgIT0gQVJNNjRSZWdp
c3RlcnM6OnNwICYmIGIgIT0gQVJNNjRSZWdpc3RlcnM6OnNwKTsKKyAgICAgICAgQVNTRVJUKGEg
IT0gQVJNNjRSZWdpc3RlcnM6OnNwIHx8IGIgIT0gQVJNNjRSZWdpc3RlcnM6OnNwKTsKKyAgICAg
ICAgaWYgKGIgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQorICAgICAgICAgICAgc3RkOjpzd2FwKGEs
IGIpOwogICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRlc3QsIGEsIGIpOwogICAgIH0KIAog
ICAgIHZvaWQgYWRkMzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0g
ICAgICAgIG1fYXNzZW1ibGVyLmFkZDwzMj4oZGVzdCwgZGVzdCwgc3JjKTsKKyAgICAgICAgaWYg
KHNyYyA9PSBBUk02NFJlZ2lzdGVyczo6c3ApCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8
MzI+KGRlc3QsIHNyYywgZGVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmFkZDwzMj4oZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKICAgICB2b2lkIGFkZDMyKFRy
dXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTIyNCw2ICsyMjcsMTIgQEAgcHVi
bGljOgogICAgICAgICBhZGQzMihkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0KTsKICAgICB9CiAKKyAg
ICB2b2lkIGFkZDMyKEFic29sdXRlQWRkcmVzcyBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7
CisgICAgICAgIGxvYWQzMihzcmMubV9wdHIsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFu
ZEludmFsaWRhdGUoKSk7CisgICAgICAgIGFkZDMyKGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QpOwor
ICAgIH0KKwogICAgIHZvaWQgYWRkNjQoUmVnaXN0ZXJJRCBhLCBSZWdpc3RlcklEIGIsIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVChhICE9IEFSTTY0UmVnaXN0ZXJzOjpz
cCB8fCBiICE9IEFSTTY0UmVnaXN0ZXJzOjpzcCk7CkBAIC0yNDk3LDkgKzI1MDYsOSBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHNpZ25FeHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihyZWludGVycHJl
dF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxpbnRwdHJfdD4oaW1tLm1fdmFsdWUpKSksIGRlc3Qp
OworICAgICAgICBtb3ZlKFRydXN0ZWRJbW02NChpbW0ubV92YWx1ZSksIGRlc3QpOwogICAgIH0K
LSAgICAKKwogICAgIHZvaWQgc2lnbkV4dGVuZDMyVG9QdHIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lz
dGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN4dHcoZGVzdCwgc3JjKTsK
QEAgLTMzMjQsNiArMzMzMywxNyBAQCBwdWJsaWM6CiAKICAgICAvLyBKdW1wcywgY2FsbHMsIHJl
dHVybnMKIAorICAgIC8vIGR1cGxpY2F0ZSBNYWNyb0Fzc2VtYmxlcidzIGxvYWRQdHIgZm9yIGxv
YWRpbmcgY2FsbCB0YXJnZXRzLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CisgICAg
QUxXQVlTX0lOTElORSB2b2lkIGxvYWRQdHIoQXJncy4uLiBhcmdzKQorICAgIHsKKyNpZiBDUFUo
QUREUkVTUzY0KQorICAgICAgICBsb2FkNjQoYXJncy4uLik7CisjZWxzZQorICAgICAgICBsb2Fk
MzIoYXJncy4uLik7CisjZW5kaWYKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2Fs
bChQdHJUYWcpCiAgICAgewogICAgICAgICBBc3NlbWJsZXJMYWJlbCBwb2ludGVyTGFiZWwgPSBt
X2Fzc2VtYmxlci5sYWJlbCgpOwpAQCAtMzM0NCw3ICszMzY0LDcgQEAgcHVibGljOgogCiAgICAg
QUxXQVlTX0lOTElORSBDYWxsIGNhbGwoQWRkcmVzcyBhZGRyZXNzLCBQdHJUYWcgdGFnKQogICAg
IHsKLSAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFu
ZEludmFsaWRhdGUoKSk7CisgICAgICAgIGxvYWRQdHIoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRl
bXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKICAgICAgICAgcmV0dXJuIGNhbGwoZGF0YVRl
bXBSZWdpc3RlciwgdGFnKTsKICAgICB9CiAKQEAgLTMzNzMsMjAgKzMzOTMsMjAgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBmYXJKdW1wKEFkZHJlc3MgYWRkcmVzcywgUHRyVGFnKQogICAgIHsKLSAg
ICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFs
aWRhdGUoKSk7CisgICAgICAgIGxvYWRQdHIoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdp
c3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKICAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRlbXBS
ZWdpc3Rlcik7CiAgICAgfQogICAgIAogICAgIHZvaWQgZmFySnVtcChCYXNlSW5kZXggYWRkcmVz
cywgUHRyVGFnKQogICAgIHsKLSAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFU
ZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIGxvYWRQdHIoYWRkcmVzcywg
Z2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKICAgICAgICAgbV9h
c3NlbWJsZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCiAgICAgdm9pZCBmYXJKdW1w
KEFic29sdXRlQWRkcmVzcyBhZGRyZXNzLCBQdHJUYWcpCiAgICAgewogICAgICAgICBtb3ZlKFRy
dXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0ciksIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFu
ZEludmFsaWRhdGUoKSk7Ci0gICAgICAgIGxvYWQ2NChBZGRyZXNzKGRhdGFUZW1wUmVnaXN0ZXIp
LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKGRhdGFUZW1wUmVn
aXN0ZXIpLCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRl
bXBSZWdpc3Rlcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDk3NjkxMWRkZjc0ZjUwNTZkOWU0
MTI3ZGM3OGY4YTMwYmMzMjFhNzkuLjM5OWM3MGQ0NWFiYTg0OGYxZmEzODYxN2VmODdhZjYwMTQ5
ODk2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC0xMDUsOCArMTA1LDYgQEAgcHVibGljOgogICAgIH07CiAg
ICAgCiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVz
Rm91cjsKLQogICAgIGVudW0gUmVsYXRpb25hbENvbmRpdGlvbiB7CiAgICAgICAgIEVxdWFsID0g
QVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkVRLAogICAgICAgICBOb3RFcXVhbCA9IEFSTXY3QXNz
ZW1ibGVyOjpDb25kaXRpb25ORSwKQEAgLTQ0MSw2ICs0MzksMTkgQEAgcHVibGljOgogICAgICAg
ICB9CiAgICAgfQogCisgICAgdm9pZCByb3RhdGVSaWdodDMyKFJlZ2lzdGVySUQgc3JjLCBUcnVz
dGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAoIWltbS5t
X3ZhbHVlKQorICAgICAgICAgICAgbW92ZShzcmMsIGRlc3QpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5yb3IoZGVzdCwgc3JjLCBpbW0ubV92YWx1ZSAmIDB4MWYpOwor
ICAgIH0KKworICAgIHZvaWQgcm90YXRlUmlnaHQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3Rl
cklEIHNyY0RzdCkKKyAgICB7CisgICAgICAgIHJvdGF0ZVJpZ2h0MzIoc3JjRHN0LCBpbW0sIHNy
Y0RzdCk7CisgICAgfQorCiAgICAgdm9pZCByc2hpZnQzMihSZWdpc3RlcklEIHNyYywgUmVnaXN0
ZXJJRCBzaGlmdEFtb3VudCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgLy8gQ2xh
bXAgdGhlIHNoaWZ0IHRvIHRoZSByYW5nZSAwLi4zMQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggM2YxOTk2MGM3MzQz
ZDFlN2JiYmE0YmY5Y2I1MjA0MjU4MDBiZmE3My4uZWFiZTdhNjA5NjliMmVlMDMzZjQ1NjE4NDUz
N2UxYTY2ZDljMTI1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCkBAIC02MSw4ICs2MSw2IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGdldExTQlNldCh2KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3RleHByIFNj
YWxlIFNjYWxlUHRyID0gVGltZXNGb3VyOwotCiAgICAgLy8gRm9yIHN0b3JpbmcgaW1tZWRpYXRl
IG51bWJlcgogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBpbW1UZW1wUmVnaXN0ZXIg
PSBNSVBTUmVnaXN0ZXJzOjp0MDsKICAgICAvLyBGb3Igc3RvcmluZyBkYXRhIGxvYWRlZCBmcm9t
IHRoZSBtZW1vcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODYuaAppbmRleCBiODFjMjJiZjgzNzIzODMwYTdlMzhkOGRhM2VkYzkyODNl
ZTRkNjAwLi44ZDAyMmUzYjgyNWY1OGQyZWY0ODgyMWIxYzJhOTQyNTY5MWQxYjQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5o
CkBAIC0zNiw4ICszNiw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IG51bUdQUnMgPSA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtRlBScyA9IDg7
CiAgICAgCi0gICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRm91cjsK
LQogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjphZGQzMjsKICAgICB1c2luZyBN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YW5kMzI7CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb246OmJyYW5jaEFkZDMyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IDAzZWM0NDAwNTAzMWZkZjUx
OWNlNThhYTIyZjc5MTU3NWUwNTQ5MjIuLjU2YTZmZDE2YWRmNzU1MGMyMmY3Zjk1M2RjYTE4MjYw
MzZkNmJhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTQwLDggKzQwLDYgQEAgcHVibGljOgogICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtR1BScyA9IDE2OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtRlBScyA9IDE2OwogICAgIAotICAgIHN0YXRpYyBjb25zdGV4cHIgU2Nh
bGUgU2NhbGVQdHIgPSBUaW1lc0VpZ2h0OwotCiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3Rl
cklEIEludmFsaWRHUFJSZWcgPSBYODZSZWdpc3RlcnM6OkludmFsaWRHUFJSZWc7CiAKICAgICB1
c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YWRkMzI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKaW5kZXggY2VlYmUwNzVhNjJmMzc3MjdlN2U3Njk0N2Nj
MzgxYzZhMDljNWE5NC4uM2E0NmIzNTAxODRlNDM0ZDJjZDM2NWNlZjM4OWUwOTNlOTI0MDUwYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcApAQCAtNTM5LDcg
KzUzOSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRj
aCA9IHBhcmFtcy5ncFNjcmF0Y2goMCk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihqdW1wVGFibGUpLCBzY3JhdGNoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgo
c2NyYXRjaCwgaW5kZXgsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSksIHNjcmF0Y2gpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChz
Y3JhdGNoLCBpbmRleCwgQ0NhbGxIZWxwZXJzOjpTY2FsZVB0ciksIHNjcmF0Y2gpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgaml0LmZhckp1bXAoc2NyYXRjaCwgSlNTd2l0Y2hQdHJUYWcpOwog
CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBsYWJlbHMgYXJlIGd1YXJhbnRlZWQg
dG8gYmUgcG9wdWxhdGVkIGJlZm9yZSBlaXRoZXIgbGF0ZSBwYXRocyBvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjNfNi5jcHAKaW5kZXggMTI0MGViNDViNjA1ZTA1ZjMwMTNjNzZlMDYzZTc0
OTg5NmZiOWVhNC4uYjZjNmUyY2ExZmVjMGY4ODE3Mzc3OWNhZmE2NThiZTQ3N2E5ZTkzYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiM182LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCkBAIC0xNjc5LDcgKzE2NzksNyBAQCB2
b2lkIHRlc3RJbnRlcnByZXRlcigpCiAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBhcmFt
cy5ncFNjcmF0Y2goMCk7CiAKICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cihqdW1wVGFibGUpLCBzY3JhdGNoKTsKLSAgICAgICAgICAgIGppdC5sb2FkNjQo
Q0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbEhl
bHBlcnM6OnRpbWVzUHRyKCkpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgIGppdC5sb2FkNjQoQ0Nh
bGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbEhlbHBl
cnM6OlNjYWxlUHRyKSwgc2NyYXRjaCk7CiAgICAgICAgICAgICBqaXQuZmFySnVtcChzY3JhdGNo
LCBCM0NvbXBpbGF0aW9uUHRyVGFnKTsKIAogICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRl
eCA4OGFiZTBlM2I4NjAzM2M1YWUzN2UyMTQzODVlN2EwMzMxYjI3MDQxLi42ODhiNjRjYzIzZjRi
NDgxNDUwYTY5ZWY4YTA1YTgxMzRjYjhhMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTEyNDMsNyArMTEyNDMsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoSW50SnVtcCgKICAgICAgICAgbV9qaXQuYnJhbmNo
MzIoSklUQ29tcGlsZXI6OkFib3ZlT3JFcXVhbCwgdmFsdWUsIEltbTMyKHRhYmxlLmN0aU9mZnNl
dHMuc2l6ZSgpKSksCiAgICAgICAgIGRhdGEtPmZhbGxUaHJvdWdoLmJsb2NrKTsKICAgICBtX2pp
dC5tb3ZlKFRydXN0ZWRJbW1QdHIodGFibGUuY3RpT2Zmc2V0cy5iZWdpbigpKSwgc2NyYXRjaCk7
Ci0gICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QmFzZUluZGV4KHNjcmF0Y2gsIHZhbHVl
LCBKSVRDb21waWxlcjo6dGltZXNQdHIoKSksIHNjcmF0Y2gpOworICAgIG1faml0LmxvYWRQdHIo
SklUQ29tcGlsZXI6OkJhc2VJbmRleChzY3JhdGNoLCB2YWx1ZSwgSklUQ29tcGlsZXI6OlNjYWxl
UHRyKSwgc2NyYXRjaCk7CiAgICAgCiAgICAgbV9qaXQuZmFySnVtcChzY3JhdGNoLCBKU1N3aXRj
aFB0clRhZyk7CiAgICAgZGF0YS0+ZGlkVXNlSnVtcFRhYmxlID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCA3YTdjZDU4OTQxYzkz
OGVhYzNiMzNmMDIwOTI1NzZkMjI5OWZlNjVjLi5iYTIxZWMxNzY3ZWY2ZDhlNGM2NTk2MDVlOTc0
NmJiZjVmY2I0OTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuY3BwCkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRM
b2FkU3RydWN0dXJlKFZNJiB2bSwgUmVnaXN0ZXJJRCBzb3VyY2UsIFJlZ2lzdGVySUQgZGUKICAg
ICBsb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc291cmNlLCBKU0NlbGw6OnN0cnVjdHVy
ZUlET2Zmc2V0KCkpLCBzY3JhdGNoMik7CiAgICAgbG9hZFB0cih2bS5oZWFwLnN0cnVjdHVyZUlE
VGFibGUoKS5iYXNlKCksIHNjcmF0Y2gpOwogICAgIHJzaGlmdDMyKHNjcmF0Y2gyLCBUcnVzdGVk
SW1tMzIoU3RydWN0dXJlSURUYWJsZTo6c19udW1iZXJPZkVudHJvcHlCaXRzKSwgZGVzdCk7Ci0g
ICAgbG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHNjcmF0Y2gsIGRlc3QsIE1hY3Jv
QXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSwgZGVzdCk7CisgICAgbG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHNjcmF0Y2gsIGRlc3QsIE1hY3JvQXNzZW1ibGVyOjpTY2FsZVB0ciksIGRl
c3QpOwogICAgIGxzaGlmdFB0cihUcnVzdGVkSW1tMzIoU3RydWN0dXJlSURUYWJsZTo6c19lbnRy
b3B5Qml0c1NoaWZ0Rm9yU3RydWN0dXJlUG9pbnRlciksIHNjcmF0Y2gyKTsKICAgICB4b3JQdHIo
c2NyYXRjaDIsIGRlc3QpOwogI2Vsc2UgLy8gbm90IFVTRShKU1ZBTFVFNjQpCkBAIC01NzIsNyAr
NTcyLDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRBbGxvY2F0ZVZhcmlhYmxlU2l6ZWQo
R1BSUmVnIHJlc3VsdEdQUiwgQ29tcGxldGVTdWJzcGEKICAgICB1cnNoaWZ0MzIoVHJ1c3RlZElt
bTMyKHN0ZXBTaGlmdCksIHNjcmF0Y2hHUFIxKTsKICAgICBzbG93UGF0aC5hcHBlbmQoYnJhbmNo
MzIoQWJvdmUsIHNjcmF0Y2hHUFIxLCBUcnVzdGVkSW1tMzIoTWFya2VkU3BhY2U6OmxhcmdlQ3V0
b2ZmID4+IHN0ZXBTaGlmdCkpKTsKICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoc3Vic3BhY2UuYWxs
b2NhdG9yRm9yU2l6ZVN0ZXAoKSksIHNjcmF0Y2hHUFIyKTsKLSAgICBsb2FkUHRyKEJhc2VJbmRl
eChzY3JhdGNoR1BSMiwgc2NyYXRjaEdQUjEsIHRpbWVzUHRyKCkpLCBzY3JhdGNoR1BSMSk7Cisg
ICAgbG9hZFB0cihCYXNlSW5kZXgoc2NyYXRjaEdQUjIsIHNjcmF0Y2hHUFIxLCBTY2FsZVB0ciks
IHNjcmF0Y2hHUFIxKTsKICAgICAKICAgICBlbWl0QWxsb2NhdGUocmVzdWx0R1BSLCBKSVRBbGxv
Y2F0b3I6OnZhcmlhYmxlKCksIHNjcmF0Y2hHUFIxLCBzY3JhdGNoR1BSMiwgc2xvd1BhdGgpOwog
fQpAQCAtNjA4LDExICs2MDgsOSBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6cmVzdG9yZUNhbGxl
ZVNhdmVzRnJvbUVudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcihFbnRyeUZyYQogICAgICAgICBS
ZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gYWxsQ2FsbGVlU2F2ZXMtPmF0KGkpOwogICAgICAgICBp
ZiAoZG9udFJlc3RvcmVSZWdpc3RlcnMuZ2V0KGVudHJ5LnJlZygpKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBpZiAoZW50cnkucmVnKCkuaXNHUFIoKSkgewotICAgICAgICAgICAg
aWYgKGkgIT0gc2NyYXRjaEdQUkVudHJ5SW5kZXgpCi0gICAgICAgICAgICAgICAgbG9hZFB0cihB
ZGRyZXNzKHNjcmF0Y2gsIGVudHJ5Lm9mZnNldCgpKSwgZW50cnkucmVnKCkuZ3ByKCkpOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgIGxvYWREb3VibGUoQWRkcmVzcyhzY3JhdGNoLCBlbnRy
eS5vZmZzZXQoKSksIGVudHJ5LnJlZygpLmZwcigpKTsKKyAgICAgICAgaWYgKGkgPT0gc2NyYXRj
aEdQUkVudHJ5SW5kZXgpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgbG9hZFJlZyhB
ZGRyZXNzKHNjcmF0Y2gsIGVudHJ5Lm9mZnNldCgpKSwgZW50cnkucmVnKCkpOwogICAgIH0KIAog
ICAgIC8vIFJlc3RvcmUgdGhlIGNhbGxlZSBzYXZlIHZhbHVlIG9mIHRoZSBzY3JhdGNoLgpAQCAt
NjIwLDcgKzYxOCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpyZXN0b3JlQ2FsbGVlU2F2ZXNG
cm9tRW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKEVudHJ5RnJhCiAgICAgQVNTRVJUKCFkb250
UmVzdG9yZVJlZ2lzdGVycy5nZXQoZW50cnkucmVnKCkpKTsKICAgICBBU1NFUlQoZW50cnkucmVn
KCkuaXNHUFIoKSk7CiAgICAgQVNTRVJUKHNjcmF0Y2ggPT0gZW50cnkucmVnKCkuZ3ByKCkpOwot
ICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNoLCBlbnRyeS5vZmZzZXQoKSksIHNjcmF0Y2gpOwor
ICAgIGxvYWRSZWcoQWRkcmVzcyhzY3JhdGNoLCBlbnRyeS5vZmZzZXQoKSksIHNjcmF0Y2gpOwog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0odG9wRW50cnlGcmFtZSk7CiAjZW5kaWYKQEAgLTk4OCwx
MCArOTg2LDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmNvcHlDYWxsZWVTYXZlc1RvRW50cnlG
cmFtZUNhbGxlZVNhdmVzQnVmZmVySW1wbChHUFJSZWcgY2EKICAgICAgICAgUmVnaXN0ZXJBdE9m
ZnNldCBlbnRyeSA9IGFsbENhbGxlZVNhdmVzLT5hdChpKTsKICAgICAgICAgaWYgKGRvbnRDb3B5
UmVnaXN0ZXJzLmdldChlbnRyeS5yZWcoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgaWYgKGVudHJ5LnJlZygpLmlzR1BSKCkpCi0gICAgICAgICAgICBzdG9yZVB0cihlbnRyeS5y
ZWcoKS5ncHIoKSwgQWRkcmVzcyhjYWxsZWVTYXZlc0J1ZmZlciwgZW50cnkub2Zmc2V0KCkpKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgc3RvcmVEb3VibGUoZW50cnkucmVnKCkuZnByKCks
IEFkZHJlc3MoY2FsbGVlU2F2ZXNCdWZmZXIsIGVudHJ5Lm9mZnNldCgpKSk7CisgICAgICAgIHN0
b3JlUmVnKGVudHJ5LnJlZygpLCBBZGRyZXNzKGNhbGxlZVNhdmVzQnVmZmVyLCBlbnRyeS5vZmZz
ZXQoKSkpOwogICAgIH0KICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGNhbGxlZVNhdmVzQnVmZmVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDA2
M2I4YmY2NDRhYzI1OTBkYTU0NmI2NDlhODI3Yjc1ZTEwNzgxNWQuLmQ1YjQwMTlkYWY5NTZiYzI0
NTdiNGQwOTU0OWY3MzU1ZmRhOGNjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaApAQCAtMTAyLDYgKzEwMiwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICBzdG9yZTMyKHNyYy5ncHIoKSwgZHN0KTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUmVnKFJl
ZyBzcmMsIEFkZHJlc3MgZHN0KQorICAgIHsKKyAgICAgICAgaWYgY29uc3RleHByIChpczY0Qml0
KCkpCisgICAgICAgICAgICBzdG9yZTY0RnJvbVJlZyhzcmMsIGRzdCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHN0b3JlMzJGcm9tUmVnKHNyYywgZHN0KTsKKyAgICB9CisKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgIHZvaWQgbG9hZDY0VG9SZWcoQWRkcmVzcyBzcmMsIFJlZyBkc3QpCiAg
ICAgewpAQCAtMTIwLDYgKzEyOCwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBsb2FkMzIoc3Jj
LCBkc3QuZ3ByKCkpOwogICAgIH0KIAorICAgIHZvaWQgbG9hZFJlZyhBZGRyZXNzIHNyYywgUmVn
IGRzdCkKKyAgICB7CisgICAgICAgIGlmIGNvbnN0ZXhwciAoaXM2NEJpdCgpKQorICAgICAgICAg
ICAgbG9hZDY0VG9SZWcoc3JjLCBkc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2Fk
MzJUb1JlZyhzcmMsIGRzdCk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAg
ICB2b2lkIHN0b3JlQ2VsbChUIGNlbGwsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CkBAIC00OTgs
NyArNTE0LDcgQEAgcHVibGljOgogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBt
b3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6TnVtYmVyVGFnKSwgR1BS
SW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpOwotICAgICAgICBvclB0cihNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKEpTVmFsdWU6Ok90aGVyVGFnKSwgR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0
ZXIsIEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAgICBvcjY0KE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6T3RoZXJUYWcpLCBHUFJJbmZvOjpudW1iZXJU
YWdSZWdpc3RlciwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CiAjZW5kaWYKICAgICB9
CiAKQEAgLTYyNSwyNSArNjQxLDMwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW1pdEdldEZyb21D
YWxsRnJhbWVIZWFkZXJQdHIoVmlydHVhbFJlZ2lzdGVyIGVudHJ5LCBHUFJSZWcgdG8sIEdQUlJl
ZyBmcm9tID0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpCiAgICAgeworICAgICAgICBBU1NF
UlQoZW50cnkuaXNIZWFkZXIoKSk7CiAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhmcm9tLCBlbnRy
eS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCB0byk7CiAgICAgfQogICAgIHZvaWQgZW1p
dEdldEZyb21DYWxsRnJhbWVIZWFkZXIzMihWaXJ0dWFsUmVnaXN0ZXIgZW50cnksIEdQUlJlZyB0
bywgR1BSUmVnIGZyb20gPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcikKICAgICB7CisgICAg
ICAgIEFTU0VSVChlbnRyeS5pc0hlYWRlcigpKTsKICAgICAgICAgbG9hZDMyKEFkZHJlc3MoZnJv
bSwgZW50cnkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgdG8pOwogICAgIH0KICNpZiBV
U0UoSlNWQUxVRTY0KQogICAgIHZvaWQgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXI2NChWaXJ0
dWFsUmVnaXN0ZXIgZW50cnksIEdQUlJlZyB0bywgR1BSUmVnIGZyb20gPSBHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlcikKICAgICB7CisgICAgICAgIEFTU0VSVChlbnRyeS5pc0hlYWRlcigpKTsK
ICAgICAgICAgbG9hZDY0KEFkZHJlc3MoZnJvbSwgZW50cnkub2Zmc2V0KCkgKiBzaXplb2YoUmVn
aXN0ZXIpKSwgdG8pOwogICAgIH0KICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQogICAgIHZvaWQg
ZW1pdFB1dFRvQ2FsbEZyYW1lSGVhZGVyKEdQUlJlZyBmcm9tLCBWaXJ0dWFsUmVnaXN0ZXIgZW50
cnkpCiAgICAgeworICAgICAgICBBU1NFUlQoZW50cnkuaXNIZWFkZXIoKSk7CiAgICAgICAgIHN0
b3JlUHRyKGZyb20sIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGVudHJ5Lm9m
ZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSkpOwogICAgIH0KIAogICAgIHZvaWQgZW1pdFB1dFRv
Q2FsbEZyYW1lSGVhZGVyKHZvaWQqIHZhbHVlLCBWaXJ0dWFsUmVnaXN0ZXIgZW50cnkpCiAgICAg
eworICAgICAgICBBU1NFUlQoZW50cnkuaXNIZWFkZXIoKSk7CiAgICAgICAgIHN0b3JlUHRyKFRy
dXN0ZWRJbW1QdHIodmFsdWUpLCBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBl
bnRyeS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA3MWNmOTllOTkwNDhi
YTY0ZmI5NTE0Y2U2YmE1YTkxMDZjMGRhNjczLi5lNmYyMzUxNTk3ODcxMGVlYmM1NjFhYzk4MDQ0
MTk4ZmUxOWY3NDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwCkBAIC0xMzIwLDcgKzEzMjAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9lbnVtZXJh
dG9yX3N0cnVjdHVyZV9wbmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aQog
ICAgIGluQm91bmRzLmxpbmsodGhpcyk7CiAKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDEsIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkUHJvcGVydHlOYW1lc1ZlY3Rvck9mZnNldCgp
KSwgcmVnVDEpOwotICAgIGxvYWRQdHIoQmFzZUluZGV4KHJlZ1QxLCByZWdUMCwgdGltZXNQdHIo
KSksIHJlZ1QwKTsKKyAgICBsb2FkUHRyKEJhc2VJbmRleChyZWdUMSwgcmVnVDAsIFNjYWxlUHRy
KSwgcmVnVDApOwogICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdU
Mik7CiAKICAgICBkb25lLmxpbmsodGhpcyk7CkBAIC0xMzQ1LDcgKzEzNDUsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9lbnVtZXJhdG9yX2dlbmVyaWNfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbgogICAgIGluQm91bmRzLmxpbmsodGhpcyk7CiAKICAgICBsb2FkUHRy
KEFkZHJlc3MocmVnVDEsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkUHJvcGVydHlO
YW1lc1ZlY3Rvck9mZnNldCgpKSwgcmVnVDEpOwotICAgIGxvYWRQdHIoQmFzZUluZGV4KHJlZ1Qx
LCByZWdUMCwgdGltZXNQdHIoKSksIHJlZ1QwKTsKKyAgICBsb2FkUHRyKEJhc2VJbmRleChyZWdU
MSwgcmVnVDAsIFNjYWxlUHRyKSwgcmVnVDApOwogICAgIG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpLCByZWdUMik7CiAgICAgCiAgICAgZG9uZS5saW5rKHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IDY5ZmI3Y2Iy
ZDIzNDJhMDU2YTdmNmVmOGVlOTk3NGI5ZmNjOWI1NmYuLjYyNjFkMDRkOTFjNmM1NDlmMmRkMGY2
OTMwZjRiYTljYTZlNTJlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAKQEAgLTMwMiw4ICszMDIsOCBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPEpJVFRodW5rUHRyVGFnPiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0mIHZtLCBUaHVua0Z1
bgogCiAgICAgLy8gQ2hlY2sgZm9yIGFuIGV4Y2VwdGlvbgogI2lmIFVTRShKU1ZBTFVFNjQpCi0g
ICAgaml0LmxvYWQ2NCh2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgSlNJbnRlcmZhY2VKSVQ6OnJl
Z1QyKTsKLSAgICBKU0ludGVyZmFjZUpJVDo6SnVtcCBleGNlcHRpb25IYW5kbGVyID0gaml0LmJy
YW5jaFRlc3Q2NChKU0ludGVyZmFjZUpJVDo6Tm9uWmVybywgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qy
KTsKKyAgICBqaXQubG9hZFB0cih2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgSlNJbnRlcmZhY2VK
SVQ6OnJlZ1QyKTsKKyAgICBKU0ludGVyZmFjZUpJVDo6SnVtcCBleGNlcHRpb25IYW5kbGVyID0g
aml0LmJyYW5jaFRlc3RQdHIoSlNJbnRlcmZhY2VKSVQ6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklU
OjpyZWdUMik7CiAjZWxzZQogICAgIEpTSW50ZXJmYWNlSklUOjpKdW1wIGV4Y2VwdGlvbkhhbmRs
ZXIgPSBqaXQuYnJhbmNoMzIoCiAgICAgICAgIEpTSW50ZXJmYWNlSklUOjpOb3RFcXVhbCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZXN0UnVubmVyVXRpbHMuY3BwCmlu
ZGV4IGRjODFiOTI4NjFlMjkwOTc4NGViODgwZmVlZWJhZWI1Yjk2YjFjNjUuLmFjN2I2MWRkZDBh
MTRhMjU3ZGI3YjJiODAxNDkzNmI2MzBlZmNjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNwcApAQCAtNjUsNyArNjUsNyBAQCBKU1Zh
bHVlIG51bWJlck9mREZHQ29tcGlsZXMoSlNWYWx1ZSB0aGVGdW5jdGlvblZhbHVlKQogewogICAg
IGJvb2wgcHJldGVuZFRvSGF2ZU1hbnlDb21waWxlcyA9IGZhbHNlOwogI2lmIEVOQUJMRShERkdf
SklUKQotICAgIGlmICghT3B0aW9uczo6dXNlSklUKCkgfHwgIU9wdGlvbnM6OnVzZURGR0pJVCgp
KQorICAgIGlmICghT3B0aW9uczo6dXNlSklUKCkgfHwgIU9wdGlvbnM6OnVzZUJhc2VsaW5lSklU
KCkgfHwgIU9wdGlvbnM6OnVzZURGR0pJVCgpKQogICAgICAgICBwcmV0ZW5kVG9IYXZlTWFueUNv
bXBpbGVzID0gdHJ1ZTsKICNlbHNlCiAgICAgcHJldGVuZFRvSGF2ZU1hbnlDb21waWxlcyA9IHRy
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggMTA2
NTU2NmI5NTY3MDNlZDk4ZGQ0N2UzZjgzOWFhY2NkMzBlYjVmNC4uNmJiYjYyMWU4NTcyMjU1NmVh
ZDJjMmE1ZDliNzE0YWEyYjNiZWVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3Rv
ckNvbXBpbGVyLmNwcApAQCAtMzUwMSw3ICszNTAxLDcgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5l
cmF0b3I6OmdlbmVyYXRlRWxlbWVudEhhc0NsYXNzZXMoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZmFp
bHUKICAgICAgICAgQXNzZW1ibGVyOjpMYWJlbCBsb29wU3RhcnQobV9hc3NlbWJsZXIubGFiZWwo
KSk7CiAKICAgICAgICAgLy8gSWYgdGhlIHBvaW50ZXJzIG1hdGNoLCBwcm9jZWVkIHRvIHRoZSBu
ZXh0IG1hdGNoZXIuCi0gICAgICAgIEFzc2VtYmxlcjo6SnVtcCBjbGFzc0ZvdW5kID0gbV9hc3Nl
bWJsZXIuYnJhbmNoUHRyKEFzc2VtYmxlcjo6RXF1YWwsIEFzc2VtYmxlcjo6QmFzZUluZGV4KHNw
YWNlU3BsaXRTdHJpbmdEYXRhLCBpbmRleFJlZ2lzdGVyLCBBc3NlbWJsZXI6OnRpbWVzUHRyKCks
IFNwYWNlU3BsaXRTdHJpbmdEYXRhOjp0b2tlbnNNZW1vcnlPZmZzZXQoKSksIGNsYXNzTmFtZVRv
TWF0Y2gpOworICAgICAgICBBc3NlbWJsZXI6Okp1bXAgY2xhc3NGb3VuZCA9IG1fYXNzZW1ibGVy
LmJyYW5jaFB0cihBc3NlbWJsZXI6OkVxdWFsLCBBc3NlbWJsZXI6OkJhc2VJbmRleChzcGFjZVNw
bGl0U3RyaW5nRGF0YSwgaW5kZXhSZWdpc3RlciwgQXNzZW1ibGVyOjpTY2FsZVB0ciwgU3BhY2VT
cGxpdFN0cmluZ0RhdGE6OnRva2Vuc01lbW9yeU9mZnNldCgpKSwgY2xhc3NOYW1lVG9NYXRjaCk7
CiAKICAgICAgICAgLy8gSW5jcmVtZW50IHRoZSBpbmRleC4KICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkMzIoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSksIGluZGV4UmVnaXN0ZXIpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAzYzRmNmE5
Y2MxYmEzMzFmNDExMTAxMTljOGEzYWU3MTk2ZTJkYjIxLi5jZGY0YmZkYTY0OTEyNzFlNzZiOWNk
MTZhMjVjNjU1ZWQ4NzE4NzcwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9K
U1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA2LTEyICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIEpJVCB0aHVua3Mgc2hvdWxk
IHdvcmsgb24gYXJtNjRfMzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMzEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIHNraXAgdGVzdCBvbiBtZW1vcnkgbGltaXRlZCBzaW5jZSBpdCBicmVha3Mgb24g
d2F0Y2ggd2l0aCBKSVQuCisKKyAgICAgICAgKiBzdHJlc3MvYXJyYXktYnVmZmVyLXZpZXctd2F0
Y2hwb2ludC1jYW4tYmUtZmlyZWQtaW4tcmVhbGx5LWFkZC1pbi1kZmcuanM6CisKIDIwMjAtMDYt
MDggIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtJ
bnRsXSBVcGRhdGUgdGVzdHMgdG8gc3VwcG9ydCBJQ1UgNjcKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2FycmF5LWJ1ZmZlci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxs
eS1hZGQtaW4tZGZnLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hw
b2ludC1jYW4tYmUtZmlyZWQtaW4tcmVhbGx5LWFkZC1pbi1kZmcuanMKaW5kZXggNzVhZWJlNjli
YWNiYTc1MDkzZTkxMjUzODE1OGVlMjkwMDY2YWZjOS4uYjlkZDkzZjc2NTc2MzExNzhhYzhmMzg3
YzFjZjQxNTZiZWRmOTNhZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVy
LXZpZXctd2F0Y2hwb2ludC1jYW4tYmUtZmlyZWQtaW4tcmVhbGx5LWFkZC1pbi1kZmcuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hwb2ludC1jYW4tYmUtZmly
ZWQtaW4tcmVhbGx5LWFkZC1pbi1kZmcuanMKQEAgLTEsMyArMSw0IEBACisvL0Agc2tpcCBpZiAk
bWVtb3J5TGltaXRlZAogLy9AIHNraXAgaWYgWyJhcm0iLCAicG93ZXJwYyIsICJwb3dlcnBjNjQi
LCAiczM5MCJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpIGFuZCAkaG9zdE9TID09ICJsaW51eCIK
IC8vQCByZXF1aXJlT3B0aW9ucygiLWUiLCAibGV0IGl0ZXJhdGlvbnM9NDAwMDAiKSBpZiBbIm1p
cHMiXS5pbmNsdWRlPygkYXJjaGl0ZWN0dXJlKQogLy9AIHJ1bkRlZmF1bHQoIi0taml0UG9saWN5
U2NhbGU9MCIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401768</attachid>
            <date>2020-06-12 13:08:36 -0700</date>
            <delta_ts>2020-06-15 11:21:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213103-20200612130835.patch</filename>
            <type>text/plain</type>
            <size>32330</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OGFhZTM5ODIyODFiNzhmMjc1ODNkMzkxNTFlNGNjZjhkZDA4MGE3Li4zZmZmOWFmNjViZTk0YjAw
YjBhMWFlZWFmZjY0ZTYwZGNkMzc2NWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OSBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBKSVQgdGh1bmtzIHNob3VsZCB3b3JrIG9uIGFybTY0XzMyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGZp
eGVzIHZhcmlvdXMgaXNzdWVzIHdoZW4gcnVubmluZyBKU0Mgb24gYXJtNjRfMzIgd2l0aAorICAg
ICAgICB1c2VKSVQ9MSBhbmQgdXNlQmFzZWxpbmVKSVQ9MC4gSW4gcGFydGljdWxhciB0aGlzIHBh
dGNoIG1ha2VzIHRoZQorICAgICAgICBmb2xsb3dpbmcgY2hhbmdlczoKKworICAgICAgICAxKSBT
Y2FsZVB0ciBpcyBub3cganVzdCBwYXJ0IG9mIHRoZSBTY2FsZSBlbnVtIGFuZCBpcyBzZXQgYmFz
ZWQgb24KKyAgICAgICAgdGhlIHNpemUgb2YgdGhlIGFkZHJlc3Mgc3BhY2UuCisKKyAgICAgICAg
MikgTWFjcm9Bc3NlbWJsZXI6OipQdHIgZnVuY3Rpb25zIGNhbGwgMzIvNjQgYml0IHZhcmlhbnRz
IGJhc2VkIG9uCisgICAgICAgIEFkZHJlc3Mgc3BhY2Ugc2l6ZSByYXRoZXIgdGhhbiBjcHUgYXJj
aGl0ZWN0dXJlLgorCisgICAgICAgIDMpIEFkZCBzb21lIG1pc3NpbmcgdmFyaWFudHMgb2YgZnVu
Y3Rpb25zIGZvciB3aGVuIHBvaW50ZXJzIGFyZSAzMi1iaXQuCisKKyAgICAgICAgNCkgQWRkIGEg
bG9hZC9zdG9yZVJlZyBmdW5jdGlvbiB0aGF0IHN0b3JlcyBhIGZ1bGwgcmVnaXN0ZXIgcmVnYXJk
bGVzcworICAgICAgICBvZiBwb2ludGVyIHNpemUgZm9yIHN0b3JpbmcvbG9hZGluZyBjYWxsZWUg
c2F2ZXMuCisKKyAgICAgICAgNSkgbnVtYmVyT2ZERkdDb21waWxlcyBzaG91bGQgcmVwb3J0IGEg
YmlnIG51bWJlciBmb3IgdXNlQmFzZWxpbmVKSVQ9MAorCisgICAgICAgIDYpIEFzc2VydCBCYXNl
SW5kZXggaGFzIGEgc2NhbGUgb2YgUHRyU2l6ZSBvciBUaW1lc09uZSAoZm9yIHByZS1zY2FsZWQK
KyAgICAgICAgdmFsdWVzKSB3aGVuIHBhc3NlZCB0byBhIGxvYWQvc3RvcmVQdHIgZnVuY3Rpb24u
CisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAg
ICAoSlNDOjpBYnN0cmFjdE1hY3JvQXNzZW1ibGVyOjp0aW1lc1B0cik6IERlbGV0ZWQuCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyOjpyb3RhdGVSaWdodFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjps
b2FkUHRyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OmxvYWRQdHJXaXRoQ29tcGFj
dEFkZHJlc3NPZmZzZXRQYXRjaCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpicmFu
Y2hQdHIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c3RvcmVQdHIpOgorICAgICAg
ICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c2hvdWxkQmxpbmREb3VibGUpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlcjo6bW92ZURvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyOjpzdG9yZTY0KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5o
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjphZGQzMik6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnNpZ25FeHRlbmQzMlRvUHRyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OmNhbGwpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpm
YXJKdW1wKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3Ojpyb3RhdGVSaWdodDMyKToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyTUlQUzo6cm90YXRlUmlnaHQzMik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Lmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6
CisgICAgICAgICogYjMvQjNMb3dlck1hY3Jvcy5jcHA6CisgICAgICAgICogYjMvdGVzdGIzXzYu
Y3BwOgorICAgICAgICAodGVzdEludGVycHJldGVyKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dp
dGNoSW50SnVtcCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5jcHA6CisgICAgICAg
IChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdExvYWRTdHJ1Y3R1cmUpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmVtaXRBbGxvY2F0ZVZhcmlhYmxlU2l6ZWQpOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OnJlc3RvcmVDYWxsZWVTYXZlc0Zyb21FbnRyeUZyYW1lQ2Fs
bGVlU2F2ZXNCdWZmZXIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNvcHlDYWxs
ZWVTYXZlc1RvRW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVySW1wbCk6CisgICAgICAgICogaml0
L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnN0b3Jl
UmVnKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpsb2FkUmVnKToKKyAgICAgICAg
KEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0TWF0ZXJpYWxpemVUYWdDaGVja1JlZ2lzdGVycyk6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdEdldEZyb21DYWxsRnJhbWVIZWFk
ZXJQdHIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRHZXRGcm9tQ2FsbEZy
YW1lSGVhZGVyMzIpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyNjQpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRQ
dXRUb0NhbGxGcmFtZUhlYWRlcik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9wbmFtZSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX2dlbmVyaWNfcG5hbWUpOgor
ICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpuYXRpdmVG
b3JHZW5lcmF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNwcDoKKyAg
ICAgICAgKEpTQzo6bnVtYmVyT2ZERkdDb21waWxlcyk6CisKIDIwMjAtMDYtMDkgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBTaHJpbmsgX19EQVRB
LChfX2RhdGEsX19ic3MsX19jb21tb24pIG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NGEwNGUyNGVmYzQ2
OWViZTQwNzdjMWFjOGNlM2Y5NGQ1ZmE5ZjkxLi5mMzQxZWUyYzBlNTU0ZDIwNjkyY2ZkYjA1ZmYx
YmJiN2YxZDg0MzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDYtMTIgIEtl
aXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgSklUIHRodW5r
cyBzaG91bGQgd29yayBvbiBhcm02NF8zMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgdGltZXNQdHIoKSB0byBTY2FsZVB0ci4KKworICAg
ICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50SGFz
Q2xhc3Nlcyk6CisKIDIwMjAtMDYtMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAogICAgICAgICBsYW5nPXpoIG5lZWRzIHRvIGRlZmVyIHRvIHN5c3RlbSBwcmVm
ZXJlbmNlcyB0byBrbm93IHdoZXRoZXIgaXQgc2hvdWxkIGJlIHNpbXBsaWZpZWQgb3IgdHJhZGl0
aW9uYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJh
Y3RNYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0
cmFjdE1hY3JvQXNzZW1ibGVyLmgKaW5kZXggYTcxZDA4ODNlNjJmYzhhNTIyNDZkZWIxNzJlMmQw
ODU3YjYzNjg5Ni4uMzVkYmM5NTAwOGMyYTBkMDU2YjAwNDZkMGNlNmE2NTVhNzNjNmRmYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmgKQEAgLTEyMCwxNSArMTIwLDkgQEAgcHVibGljOgogICAgICAgICBUaW1l
c1R3bywKICAgICAgICAgVGltZXNGb3VyLAogICAgICAgICBUaW1lc0VpZ2h0LAorICAgICAgICBT
Y2FsZVB0ciA9IGlzQWRkcmVzczY0Qml0KCkgPyBUaW1lc0VpZ2h0IDogVGltZXNGb3VyLAogICAg
IH07CiAgICAgCi0gICAgc3RhdGljIFNjYWxlIHRpbWVzUHRyKCkKLSAgICB7Ci0gICAgICAgIGlm
IChzaXplb2Yodm9pZCopID09IDQpCi0gICAgICAgICAgICByZXR1cm4gVGltZXNGb3VyOwotICAg
ICAgICByZXR1cm4gVGltZXNFaWdodDsKLSAgICB9Ci0gICAgCiAgICAgc3RydWN0IEJhc2VJbmRl
eDsKICAgICAKICAgICBzdGF0aWMgUmVnaXN0ZXJJRCB3aXRoU3dhcHBlZFJlZ2lzdGVyKFJlZ2lz
dGVySUQgb3JpZ2luYWwsIFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAppbmRleCBi
ZjllOTBiM2Q1YTA4ZGEzNGQzNTEwYjY3MWEwNjA2Mzk1ODlmMWIyLi4zZDZiOTA5OTUwNjRmNjlh
ZTk2MmY2MjJmZjc4NDBkOTBkYjIyMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCkBAIC05NSw2ICs5NSw3IEBAIHVzaW5nIE1hY3Jv
QXNzZW1ibGVyQmFzZSA9IFRBUkdFVF9NQUNST0FTU0VNQkxFUjsKIAogY2xhc3MgTWFjcm9Bc3Nl
bWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJCYXNlIHsKIHB1YmxpYzoKKyAgICB1c2luZyBC
YXNlID0gTWFjcm9Bc3NlbWJsZXJCYXNlOwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3Rl
cklEIG5leHRSZWdpc3RlcihSZWdpc3RlcklEIHJlZykKICAgICB7CkBAIC0xNTAsNiArMTUxLDEy
IEBAIHB1YmxpYzoKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnVyc2hpZnQzMjsKICAg
ICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnhvcjMyOwogCisjaWYgQ1BVKEFSTTY0KSB8fCBD
UFUoWDg2XzY0KQorICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6YW5kNjQ7CisgICAgdXNp
bmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpjb252ZXJ0SW50MzJUb0RvdWJsZTsKKyAgICB1c2luZyBN
YWNyb0Fzc2VtYmxlckJhc2U6OnN0b3JlNjQ7CisjZW5kaWYKKwogICAgIHN0YXRpYyBib29sIGlz
UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQocHRyZGlmZl90IHZhbHVlKQogICAgIHsKICAgICAgICAg
cmV0dXJuIHZhbHVlID09IHN0YXRpY19jYXN0PGludDMyX3Q+KHZhbHVlKTsKQEAgLTU0MSw4ICs1
NDgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBQdHIgbWV0aG9kcwogICAgIC8vIE9uIDMyLWJpdCBw
bGF0Zm9ybXMgKGkuZS4geDg2KSwgdGhlc2UgbWV0aG9kcyBkaXJlY3RseSBtYXAgb250byB0aGVp
ciAzMi1iaXQgZXF1aXZhbGVudHMuCi0gICAgLy8gRklYTUU6IHNob3VsZCB0aGlzIHVzZSBhIHRl
c3QgZm9yIDMyLWJpdG5lc3MgaW5zdGVhZCBvZiB0aGlzIHNwZWNpZmljIGV4Y2VwdGlvbj8KLSNp
ZiAhQ1BVKFg4Nl82NCkgJiYgIUNQVShBUk02NCkKKyNpZiAhQ1BVKEFERFJFU1M2NCkKICAgICB2
b2lkIGFkZFB0cihBZGRyZXNzIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAg
YWRkMzIoc3JjLCBkZXN0KTsKQEAgLTY1OCw2ICs2NjQsMTEgQEAgcHVibGljOgogICAgICAgICBv
cjMyKGltbSwgZGVzdCk7CiAgICAgfQogCisgICAgdm9pZCByb3RhdGVSaWdodFB0cihUcnVzdGVk
SW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyY0RzdCkKKyAgICB7CisgICAgICAgIHJvdGF0ZVJpZ2h0
MzIoaW1tLCBzcmNEc3QpOworICAgIH0KKwogICAgIHZvaWQgc3ViUHRyKFJlZ2lzdGVySUQgc3Jj
LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBzdWIzMihzcmMsIGRlc3QpOwpAQCAt
NzAwLDYgKzcxMSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbG9hZFB0cihCYXNlSW5kZXggYWRk
cmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKKyAgICAgICAgQVNTRVJUKGFkZHJlc3Muc2Nh
bGUgPT0gU2NhbGVQdHIgfHwgYWRkcmVzcy5zY2FsZSA9PSBUaW1lc09uZSk7CiAgICAgICAgIGxv
YWQzMihhZGRyZXNzLCBkZXN0KTsKICAgICB9CiAKQEAgLTcyOSwxMSArNzQxLDYgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgcmV0dXJuIGxvYWQzMldpdGhDb21wYWN0QWRkcmVzc09mZnNldFBh
dGNoKGFkZHJlc3MsIGRlc3QpOwogICAgIH0KLQotICAgIHZvaWQgbW92ZShJbW1QdHIgaW1tLCBS
ZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICBtb3ZlKEltbTMyKGltbS5hc1RydXN0ZWRJ
bW1QdHIoKSksIGRlc3QpOwotICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBhcmVQdHIoUmVsYXRp
b25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIFRydXN0ZWRJbW0zMiByaWdodCwg
UmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAgLTg3MCw3ICs4NzcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckJhc2U6OmJyYW5jaFRlc3Q4KGNvbmQsIEFkZHJlc3Mo
YWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCksIG1hc2spOwogICAgIH0KIAotI2Vsc2UgLy8g
IUNQVShYODZfNjQpICYmICFDUFUoQVJNNjQpCisjZWxzZSAvLyAhQ1BVKEFERFJFU1M2NCkKIAog
ICAgIHZvaWQgYWRkUHRyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpA
QCAtMTA1MCw2ICsxMDU3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBsb2FkUHRyKEJhc2VJbmRl
eCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgeworICAgICAgICBBU1NFUlQoYWRkcmVz
cy5zY2FsZSA9PSBTY2FsZVB0ciB8fCBhZGRyZXNzLnNjYWxlID09IFRpbWVzT25lKTsKICAgICAg
ICAgbG9hZDY0KGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIApAQCAtMTIxOSwxMCArMTIyNywzMCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBicmFuY2hTdWI2NChjb25kLCBzcmMxLCBzcmMyLCBk
ZXN0KTsKICAgICB9CiAKLSAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OmFuZDY0OwotICAg
IHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6Y29udmVydEludDMyVG9Eb3VibGU7Ci0gICAgdXNp
bmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpzdG9yZTY0OwotICAgIGJvb2wgc2hvdWxkQmxpbmREb3Vi
bGUoZG91YmxlIHZhbHVlKQorICAgIEp1bXAgYnJhbmNoUHRyKFJlbGF0aW9uYWxDb25kaXRpb24g
Y29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW1QdHIgcmlnaHQpCisgICAgeworICAgICAgICBpZiAo
c2hvdWxkQmxpbmQocmlnaHQpICYmIGhhdmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKSB7
CisgICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3Rl
ckZvckJsaW5kaW5nKCk7CisgICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQo
cm90YXRpb25CbGluZENvbnN0YW50KHJpZ2h0KSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAg
ICAgIHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNvbmQsIGxlZnQsIHJpZ2h0LmFzVHJ1c3Rl
ZEltbVB0cigpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUHRyKEltbVB0ciBpbW0sIEFkZHJl
c3MgZGVzdCkKKyAgICB7CisgICAgICAgIGlmIChzaG91bGRCbGluZChpbW0pICYmIGhhdmVTY3Jh
dGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKSB7CisgICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0
Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCk7CisgICAgICAgICAgICBs
b2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQocm90YXRpb25CbGluZENvbnN0YW50KGltbSksIHNj
cmF0Y2hSZWdpc3Rlcik7CisgICAgICAgICAgICBzdG9yZVB0cihzY3JhdGNoUmVnaXN0ZXIsIGRl
c3QpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0b3JlUHRyKGltbS5hc1RydXN0ZWRJ
bW1QdHIoKSwgZGVzdCk7CisgICAgfQorCisjZW5kaWYgLy8gIUNQVShBRERSRVNTNjQpCisKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBib29sIHNob3VsZEJsaW5kRG91YmxlKGRvdWJsZSB2
YWx1ZSkKICAgICB7CiAgICAgICAgIC8vIERvbid0IHRydXN0IE5hTiBvciArLy1JbmZpbml0eQog
ICAgICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUodmFsdWUpKQpAQCAtMTQxNSwxMyArMTQ0MywxMSBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBtb3ZlKGltbS5hc1RydXN0ZWRJbW02NCgpLCBkZXN0KTsK
ICAgICB9CiAKLSNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCiAgICAgdm9pZCBtb3ZlRG91
YmxlKEltbTY0IGltbSwgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBtb3ZlKGlt
bSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICBtb3ZlNjRUb0RvdWJsZShzY3JhdGNoUmVn
aXN0ZXIoKSwgZGVzdCk7CiAgICAgfQotI2VuZGlmCiAKICAgICB2b2lkIGFuZDY0KEltbTMyIGlt
bSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAgLTE0MzIsMzggKzE0NTgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgYW5kNjQoaW1tLmFzVHJ1c3RlZEltbTMyKCks
IGRlc3QpOwogICAgIH0KLQotICAgIEp1bXAgYnJhbmNoUHRyKFJlbGF0aW9uYWxDb25kaXRpb24g
Y29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW1QdHIgcmlnaHQpCi0gICAgewotICAgICAgICBpZiAo
c2hvdWxkQmxpbmQocmlnaHQpICYmIGhhdmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKSB7
Ci0gICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3Rl
ckZvckJsaW5kaW5nKCk7Ci0gICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQo
cm90YXRpb25CbGluZENvbnN0YW50KHJpZ2h0KSwgc2NyYXRjaFJlZ2lzdGVyKTsKLSAgICAgICAg
ICAgIHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNvbmQsIGxlZnQsIHJpZ2h0LmFzVHJ1c3Rl
ZEltbVB0cigpKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBzdG9yZVB0cihJbW1QdHIgaW1tLCBB
ZGRyZXNzIGRlc3QpCi0gICAgewotICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSAmJiBoYXZl
U2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKSkgewotICAgICAgICAgICAgUmVnaXN0ZXJJRCBz
Y3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOwotICAgICAgICAg
ICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChpbW0p
LCBzY3JhdGNoUmVnaXN0ZXIpOwotICAgICAgICAgICAgc3RvcmVQdHIoc2NyYXRjaFJlZ2lzdGVy
LCBkZXN0KTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBzdG9yZVB0cihpbW0uYXNUcnVz
dGVkSW1tUHRyKCksIGRlc3QpOwotICAgIH0KLQotICAgIHZvaWQgc3RvcmU2NChJbW02NCBpbW0s
IEFkZHJlc3MgZGVzdCkKLSAgICB7Ci0gICAgICAgIGlmIChzaG91bGRCbGluZChpbW0pICYmIGhh
dmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKSB7Ci0gICAgICAgICAgICBSZWdpc3RlcklE
IHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCk7Ci0gICAgICAg
ICAgICBsb2FkUm90YXRpb25CbGluZGVkQ29uc3RhbnQocm90YXRpb25CbGluZENvbnN0YW50KGlt
bSksIHNjcmF0Y2hSZWdpc3Rlcik7Ci0gICAgICAgICAgICBzdG9yZTY0KHNjcmF0Y2hSZWdpc3Rl
ciwgZGVzdCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3RvcmU2NChpbW0uYXNUcnVz
dGVkSW1tNjQoKSwgZGVzdCk7Ci0gICAgfQotCi0jZW5kaWYgLy8gIUNQVShYODZfNjQpCisjZW5k
aWYgLy8gVVNFKEpTVkFMVUU2NCkKIAogI2lmICFDUFUoWDg2KSAmJiAhQ1BVKFg4Nl82NCkgJiYg
IUNQVShBUk02NCkKICAgICAvLyBXZSBzaG91bGQgaW1wbGVtZW50IHRoaXMgdGhlIHJpZ2h0IHdh
eSBldmVudHVhbGx5LCBidXQgZm9yIG5vdywgaXQncyBmaW5lIGJlY2F1c2UgaXQgYXJpc2VzIHNv
CkBAIC0xNzE5LDcgKzE3MTQsMTggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgc3RvcmU2NCh2
YWx1ZSwgYWRkcmVzc0ZvclBva2UoaW5kZXgpKTsKICAgICB9Ci0jZW5kaWYgLy8gQ1BVKFg4Nl82
NCkKKworICAgIHZvaWQgc3RvcmU2NChJbW02NCBpbW0sIEFkZHJlc3MgZGVzdCkKKyAgICB7Cisg
ICAgICAgIGlmIChzaG91bGRCbGluZChpbW0pICYmIGhhdmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGlu
ZGluZygpKSB7CisgICAgICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2hSZWdpc3RlciA9IHNjcmF0
Y2hSZWdpc3RlckZvckJsaW5kaW5nKCk7CisgICAgICAgICAgICBsb2FkUm90YXRpb25CbGluZGVk
Q29uc3RhbnQocm90YXRpb25CbGluZENvbnN0YW50KGltbSksIHNjcmF0Y2hSZWdpc3Rlcik7Cisg
ICAgICAgICAgICBzdG9yZTY0KHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgc3RvcmU2NChpbW0uYXNUcnVzdGVkSW1tNjQoKSwgZGVzdCk7CisgICAg
fQorCisjZW5kaWYgLy8gQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgIAogICAgIHZvaWQg
c3RvcmUzMihJbW0zMiBpbW0sIEFkZHJlc3MgZGVzdCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IGUy
NzIyNjA2NDE4N2M1NWUwMDVmYTk3NDc4MDdiMTdjMjczOTk2MDEuLjNiZDJiYWNjYTQyNjdkY2Vk
MzYyYzJlMDI0NTQxOGRiM2Y4ZjAwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC04OSw4ICs4OSw2IEBAIHB1
YmxpYzoKICAgICB0ZW1wbGF0ZSA8QXNzZW1ibGVyOjpDb3B5RnVuY3Rpb24gY29weT4KICAgICBz
dGF0aWMgdm9pZCBsaW5rKExpbmtSZWNvcmQmIHJlY29yZCwgdWludDhfdCogZnJvbSwgY29uc3Qg
dWludDhfdCogZnJvbUluc3RydWN0aW9uLCB1aW50OF90KiB0bykgeyByZXR1cm4gQXNzZW1ibGVy
OjpsaW5rPGNvcHk+KHJlY29yZCwgZnJvbSwgZnJvbUluc3RydWN0aW9uLCB0byk7IH0KIAotICAg
IHN0YXRpYyBjb25zdGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1lc0VpZ2h0OwotCiAgICAgc3Rh
dGljIGJvb2wgaXNDb21wYWN0UHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQocHRyZGlmZl90IHZhbHVl
KQogICAgIHsKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgbGFyZ2VzdCAzMi1iaXQgYWNjZXNzIGFs
bG93ZWQsIGFsaWduZWQgdG8gNjQtYml0IGJvdW5kYXJ5LgpAQCAtMTUyLDEzICsxNTAsMTggQEAg
cHVibGljOgogCiAgICAgdm9pZCBhZGQzMihSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQgYiwgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKGEgIT0gQVJNNjRSZWdpc3RlcnM6
OnNwICYmIGIgIT0gQVJNNjRSZWdpc3RlcnM6OnNwKTsKKyAgICAgICAgQVNTRVJUKGEgIT0gQVJN
NjRSZWdpc3RlcnM6OnNwIHx8IGIgIT0gQVJNNjRSZWdpc3RlcnM6OnNwKTsKKyAgICAgICAgaWYg
KGIgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQorICAgICAgICAgICAgc3RkOjpzd2FwKGEsIGIpOwog
ICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRlc3QsIGEsIGIpOwogICAgIH0KIAogICAgIHZv
aWQgYWRkMzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAg
IG1fYXNzZW1ibGVyLmFkZDwzMj4oZGVzdCwgZGVzdCwgc3JjKTsKKyAgICAgICAgaWYgKHNyYyA9
PSBBUk02NFJlZ2lzdGVyczo6c3ApCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRl
c3QsIHNyYywgZGVzdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmFk
ZDwzMj4oZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKICAgICB2b2lkIGFkZDMyKFRydXN0ZWRJ
bW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTIyNCw2ICsyMjcsMTIgQEAgcHVibGljOgog
ICAgICAgICBhZGQzMihkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0KTsKICAgICB9CiAKKyAgICB2b2lk
IGFkZDMyKEFic29sdXRlQWRkcmVzcyBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAg
ICAgIGxvYWQzMihzcmMubV9wdHIsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFs
aWRhdGUoKSk7CisgICAgICAgIGFkZDMyKGRhdGFUZW1wUmVnaXN0ZXIsIGRlc3QpOworICAgIH0K
KwogICAgIHZvaWQgYWRkNjQoUmVnaXN0ZXJJRCBhLCBSZWdpc3RlcklEIGIsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIEFTU0VSVChhICE9IEFSTTY0UmVnaXN0ZXJzOjpzcCB8fCBi
ICE9IEFSTTY0UmVnaXN0ZXJzOjpzcCk7CkBAIC0yNDk3LDkgKzI1MDYsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNpZ25FeHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0
PHZvaWQqPihzdGF0aWNfY2FzdDxpbnRwdHJfdD4oaW1tLm1fdmFsdWUpKSksIGRlc3QpOworICAg
ICAgICBtb3ZlKFRydXN0ZWRJbW02NChpbW0ubV92YWx1ZSksIGRlc3QpOwogICAgIH0KLSAgICAK
KwogICAgIHZvaWQgc2lnbkV4dGVuZDMyVG9QdHIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN4dHcoZGVzdCwgc3JjKTsKQEAgLTMz
MjQsNiArMzMzMywxNyBAQCBwdWJsaWM6CiAKICAgICAvLyBKdW1wcywgY2FsbHMsIHJldHVybnMK
IAorICAgIC8vIGR1cGxpY2F0ZSBNYWNyb0Fzc2VtYmxlcidzIGxvYWRQdHIgZm9yIGxvYWRpbmcg
Y2FsbCB0YXJnZXRzLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+CisgICAgQUxXQVlT
X0lOTElORSB2b2lkIGxvYWRQdHIoQXJncy4uLiBhcmdzKQorICAgIHsKKyNpZiBDUFUoQUREUkVT
UzY0KQorICAgICAgICBsb2FkNjQoYXJncy4uLik7CisjZWxzZQorICAgICAgICBsb2FkMzIoYXJn
cy4uLik7CisjZW5kaWYKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChQdHJU
YWcpCiAgICAgewogICAgICAgICBBc3NlbWJsZXJMYWJlbCBwb2ludGVyTGFiZWwgPSBtX2Fzc2Vt
Ymxlci5sYWJlbCgpOwpAQCAtMzM0NCw3ICszMzY0LDcgQEAgcHVibGljOgogCiAgICAgQUxXQVlT
X0lOTElORSBDYWxsIGNhbGwoQWRkcmVzcyBhZGRyZXNzLCBQdHJUYWcgdGFnKQogICAgIHsKLSAg
ICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFs
aWRhdGUoKSk7CisgICAgICAgIGxvYWRQdHIoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdp
c3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKICAgICAgICAgcmV0dXJuIGNhbGwoZGF0YVRlbXBSZWdp
c3RlciwgdGFnKTsKICAgICB9CiAKQEAgLTMzNzMsMjAgKzMzOTMsMjAgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBmYXJKdW1wKEFkZHJlc3MgYWRkcmVzcywgUHRyVGFnKQogICAgIHsKLSAgICAgICAg
bG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUo
KSk7CisgICAgICAgIGxvYWRQdHIoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklE
QW5kSW52YWxpZGF0ZSgpKTsKICAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRlbXBSZWdpc3Rl
cik7CiAgICAgfQogICAgIAogICAgIHZvaWQgZmFySnVtcChCYXNlSW5kZXggYWRkcmVzcywgUHRy
VGFnKQogICAgIHsKLSAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIGxvYWRQdHIoYWRkcmVzcywgZ2V0Q2Fj
aGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKICAgICAgICAgbV9hc3NlbWJs
ZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgfQogCiAgICAgdm9pZCBmYXJKdW1wKEFic29s
dXRlQWRkcmVzcyBhZGRyZXNzLCBQdHJUYWcpCiAgICAgewogICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW1QdHIoYWRkcmVzcy5tX3B0ciksIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFs
aWRhdGUoKSk7Ci0gICAgICAgIGxvYWQ2NChBZGRyZXNzKGRhdGFUZW1wUmVnaXN0ZXIpLCBkYXRh
VGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKGRhdGFUZW1wUmVnaXN0ZXIp
LCBkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRlbXBSZWdp
c3Rlcik7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDk3NjkxMWRkZjc0ZjUwNTZkOWU0MTI3ZGM3
OGY4YTMwYmMzMjFhNzkuLjM5OWM3MGQ0NWFiYTg0OGYxZmEzODYxN2VmODdhZjYwMTQ5ODk2ZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oCkBAIC0xMDUsOCArMTA1LDYgQEAgcHVibGljOgogICAgIH07CiAgICAgCiBw
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0ciA9IFRpbWVzRm91cjsK
LQogICAgIGVudW0gUmVsYXRpb25hbENvbmRpdGlvbiB7CiAgICAgICAgIEVxdWFsID0gQVJNdjdB
c3NlbWJsZXI6OkNvbmRpdGlvbkVRLAogICAgICAgICBOb3RFcXVhbCA9IEFSTXY3QXNzZW1ibGVy
OjpDb25kaXRpb25ORSwKQEAgLTQ0MSw2ICs0MzksMTkgQEAgcHVibGljOgogICAgICAgICB9CiAg
ICAgfQogCisgICAgdm9pZCByb3RhdGVSaWdodDMyKFJlZ2lzdGVySUQgc3JjLCBUcnVzdGVkSW1t
MzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAoIWltbS5tX3ZhbHVl
KQorICAgICAgICAgICAgbW92ZShzcmMsIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5yb3IoZGVzdCwgc3JjLCBpbW0ubV92YWx1ZSAmIDB4MWYpOworICAgIH0K
KworICAgIHZvaWQgcm90YXRlUmlnaHQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNy
Y0RzdCkKKyAgICB7CisgICAgICAgIHJvdGF0ZVJpZ2h0MzIoc3JjRHN0LCBpbW0sIHNyY0RzdCk7
CisgICAgfQorCiAgICAgdm9pZCByc2hpZnQzMihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBz
aGlmdEFtb3VudCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgLy8gQ2xhbXAgdGhl
IHNoaWZ0IHRvIHRoZSByYW5nZSAwLi4zMQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggM2YxOTk2MGM3MzQzZDFlN2Ji
YmE0YmY5Y2I1MjA0MjU4MDBiZmE3My4uMmRjZjcyYmFjNTFmNzZjYmE5OTM3MGEzZTg3ZTA0ZDY2
N2U5ZDBhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyTUlQUy5oCkBAIC02MSw4ICs2MSw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGdldExTQlNldCh2KTsKICAgICB9CiAKLSAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNj
YWxlUHRyID0gVGltZXNGb3VyOwotCiAgICAgLy8gRm9yIHN0b3JpbmcgaW1tZWRpYXRlIG51bWJl
cgogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBpbW1UZW1wUmVnaXN0ZXIgPSBNSVBT
UmVnaXN0ZXJzOjp0MDsKICAgICAvLyBGb3Igc3RvcmluZyBkYXRhIGxvYWRlZCBmcm9tIHRoZSBt
ZW1vcnkKQEAgLTYyMCw2ICs2MTgsMTIgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisg
ICAgLy8gVGhpcyBpcyBvbmx5IHJlZmVyZW5jZWQgYnkgY29kZSBpbnRlbnRlZCBmb3IgQVJNNjRf
MzIuCisgICAgdm9pZCByb3RhdGVSaWdodDMyKFRydXN0ZWRJbW0zMiwgUmVnaXN0ZXJJRCkKKyAg
ICB7CisgICAgICAgIFVOUkVBQ0hBQkxFX0ZPUl9QTEFURk9STSgpOworICAgIH0KKwogICAgIHZv
aWQgcnNoaWZ0MzIoUmVnaXN0ZXJJRCBzaGlmdEFtb3VudCwgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3JhdihkZXN0LCBkZXN0LCBzaGlmdEFtb3VudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
LmgKaW5kZXggYjgxYzIyYmY4MzcyMzgzMGE3ZTM4ZDhkYTNlZGM5MjgzZWU0ZDYwMC4uOGQwMjJl
M2I4MjVmNThkMmVmNDg4MjFiMWMyYTk0MjU2OTFkMWI0OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaApAQCAtMzYsOCArMzYs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1HUFJzID0gODsK
ICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bUZQUnMgPSA4OwogICAgIAotICAgIHN0
YXRpYyBjb25zdGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1lc0ZvdXI7Ci0KICAgICB1c2luZyBN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YWRkMzI7CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb246OmFuZDMyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpicmFu
Y2hBZGQzMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCAwM2VjNDQwMDUwMzFmZGY1MTljZTU4YWEyMmY3OTE1
NzVlMDU0OTIyLi41NmE2ZmQxNmFkZjc1NTBjMjJmN2Y5NTNkY2ExODI2MDM2ZDZiYTc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oCkBAIC00MCw4ICs0MCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG51bUdQUnMgPSAxNjsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51
bUZQUnMgPSAxNjsKICAgICAKLSAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0g
VGltZXNFaWdodDsKLQogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBJbnZhbGlkR1BS
UmVnID0gWDg2UmVnaXN0ZXJzOjpJbnZhbGlkR1BSUmVnOwogCiAgICAgdXNpbmcgTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OmFkZDMyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTG93ZXJNYWNyb3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJN
YWNyb3MuY3BwCmluZGV4IGNlZWJlMDc1YTYyZjM3NzI3ZTdlNzY5NDdjYzM4MWM2YTA5YzVhOTQu
LjNhNDZiMzUwMTg0ZTQzNGQyY2QzNjVjZWYzODllMDkzZTkyNDA1MGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKQEAgLTUzOSw3ICs1MzksNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BT
Y3JhdGNoKDApOwogCiAgICAgICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhYmxlKSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gsIGluZGV4
LCBDQ2FsbEhlbHBlcnM6OnRpbWVzUHRyKCkpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5sb2FkNjQoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgaW5kZXgs
IENDYWxsSGVscGVyczo6U2NhbGVQdHIpLCBzY3JhdGNoKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGppdC5mYXJKdW1wKHNjcmF0Y2gsIEpTU3dpdGNoUHRyVGFnKTsKIAogICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gVGhlc2UgbGFiZWxzIGFyZSBndWFyYW50ZWVkIHRvIGJlIHBvcHVsYXRl
ZCBiZWZvcmUgZWl0aGVyIGxhdGUgcGF0aHMgb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
XzYuY3BwCmluZGV4IDEyNDBlYjQ1YjYwNWUwNWYzMDEzYzc2ZTA2M2U3NDk4OTZmYjllYTQuLmI2
YzZlMmNhMWZlYzBmODgxNzM3NzljYWZhNjU4YmU0NzdhOWU5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiM182LmNwcApAQCAtMTY3OSw3ICsxNjc5LDcgQEAgdm9pZCB0ZXN0SW50ZXJw
cmV0ZXIoKQogICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BTY3JhdGNoKDAp
OwogCiAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVt
cFRhYmxlKSwgc2NyYXRjaCk7Ci0gICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6
QmFzZUluZGV4KHNjcmF0Y2gsIHBhcmFtc1swXS5ncHIoKSwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0
cigpKSwgc2NyYXRjaCk7CisgICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6QmFz
ZUluZGV4KHNjcmF0Y2gsIHBhcmFtc1swXS5ncHIoKSwgQ0NhbGxIZWxwZXJzOjpTY2FsZVB0ciks
IHNjcmF0Y2gpOwogICAgICAgICAgICAgaml0LmZhckp1bXAoc2NyYXRjaCwgQjNDb21waWxhdGlv
blB0clRhZyk7CiAKICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggODhhYmUwZTNiODYw
MzNjNWFlMzdlMjE0Mzg1ZTdhMDMzMWIyNzA0MS4uNjg4YjY0Y2MyM2Y0YjQ4MTQ1MGE2OWVmOGEw
NWE4MTM0Y2I4YTFjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAKQEAgLTExMjQzLDcgKzExMjQzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6ZW1pdFN3aXRjaEludEp1bXAoCiAgICAgICAgIG1faml0LmJyYW5jaDMyKEpJVENvbXBpbGVy
OjpBYm92ZU9yRXF1YWwsIHZhbHVlLCBJbW0zMih0YWJsZS5jdGlPZmZzZXRzLnNpemUoKSkpLAog
ICAgICAgICBkYXRhLT5mYWxsVGhyb3VnaC5ibG9jayk7CiAgICAgbV9qaXQubW92ZShUcnVzdGVk
SW1tUHRyKHRhYmxlLmN0aU9mZnNldHMuYmVnaW4oKSksIHNjcmF0Y2gpOwotICAgIG1faml0Lmxv
YWRQdHIoSklUQ29tcGlsZXI6OkJhc2VJbmRleChzY3JhdGNoLCB2YWx1ZSwgSklUQ29tcGlsZXI6
OnRpbWVzUHRyKCkpLCBzY3JhdGNoKTsKKyAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpC
YXNlSW5kZXgoc2NyYXRjaCwgdmFsdWUsIEpJVENvbXBpbGVyOjpTY2FsZVB0ciksIHNjcmF0Y2gp
OwogICAgIAogICAgIG1faml0LmZhckp1bXAoc2NyYXRjaCwgSlNTd2l0Y2hQdHJUYWcpOwogICAg
IGRhdGEtPmRpZFVzZUp1bXBUYWJsZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5jcHAKaW5kZXggN2E3Y2Q1ODk0MWM5MzhlYWMzYjMzZjAyMDky
NTc2ZDIyOTlmZTY1Yy4uYmEyMWVjMTc2N2VmNmQ4ZTRjNjU5NjA1ZTk3NDZiYmY1ZmNiNDk2OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcApAQCAt
MzgyLDcgKzM4Miw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0TG9hZFN0cnVjdHVyZShW
TSYgdm0sIFJlZ2lzdGVySUQgc291cmNlLCBSZWdpc3RlcklEIGRlCiAgICAgbG9hZDMyKE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHNvdXJjZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwg
c2NyYXRjaDIpOwogICAgIGxvYWRQdHIodm0uaGVhcC5zdHJ1Y3R1cmVJRFRhYmxlKCkuYmFzZSgp
LCBzY3JhdGNoKTsKICAgICByc2hpZnQzMihzY3JhdGNoMiwgVHJ1c3RlZEltbTMyKFN0cnVjdHVy
ZUlEVGFibGU6OnNfbnVtYmVyT2ZFbnRyb3B5Qml0cyksIGRlc3QpOwotICAgIGxvYWRQdHIoTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzY3JhdGNoLCBkZXN0LCBNYWNyb0Fzc2VtYmxlcjo6VGlt
ZXNFaWdodCksIGRlc3QpOworICAgIGxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
Y3JhdGNoLCBkZXN0LCBNYWNyb0Fzc2VtYmxlcjo6U2NhbGVQdHIpLCBkZXN0KTsKICAgICBsc2hp
ZnRQdHIoVHJ1c3RlZEltbTMyKFN0cnVjdHVyZUlEVGFibGU6OnNfZW50cm9weUJpdHNTaGlmdEZv
clN0cnVjdHVyZVBvaW50ZXIpLCBzY3JhdGNoMik7CiAgICAgeG9yUHRyKHNjcmF0Y2gyLCBkZXN0
KTsKICNlbHNlIC8vIG5vdCBVU0UoSlNWQUxVRTY0KQpAQCAtNTcyLDcgKzU3Miw3IEBAIHZvaWQg
QXNzZW1ibHlIZWxwZXJzOjplbWl0QWxsb2NhdGVWYXJpYWJsZVNpemVkKEdQUlJlZyByZXN1bHRH
UFIsIENvbXBsZXRlU3Vic3BhCiAgICAgdXJzaGlmdDMyKFRydXN0ZWRJbW0zMihzdGVwU2hpZnQp
LCBzY3JhdGNoR1BSMSk7CiAgICAgc2xvd1BhdGguYXBwZW5kKGJyYW5jaDMyKEFib3ZlLCBzY3Jh
dGNoR1BSMSwgVHJ1c3RlZEltbTMyKE1hcmtlZFNwYWNlOjpsYXJnZUN1dG9mZiA+PiBzdGVwU2hp
ZnQpKSk7CiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKHN1YnNwYWNlLmFsbG9jYXRvckZvclNpemVT
dGVwKCkpLCBzY3JhdGNoR1BSMik7Ci0gICAgbG9hZFB0cihCYXNlSW5kZXgoc2NyYXRjaEdQUjIs
IHNjcmF0Y2hHUFIxLCB0aW1lc1B0cigpKSwgc2NyYXRjaEdQUjEpOworICAgIGxvYWRQdHIoQmFz
ZUluZGV4KHNjcmF0Y2hHUFIyLCBzY3JhdGNoR1BSMSwgU2NhbGVQdHIpLCBzY3JhdGNoR1BSMSk7
CiAgICAgCiAgICAgZW1pdEFsbG9jYXRlKHJlc3VsdEdQUiwgSklUQWxsb2NhdG9yOjp2YXJpYWJs
ZSgpLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIHNsb3dQYXRoKTsKIH0KQEAgLTYwOCwxMSAr
NjA4LDkgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OnJlc3RvcmVDYWxsZWVTYXZlc0Zyb21FbnRy
eUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIoRW50cnlGcmEKICAgICAgICAgUmVnaXN0ZXJBdE9mZnNl
dCBlbnRyeSA9IGFsbENhbGxlZVNhdmVzLT5hdChpKTsKICAgICAgICAgaWYgKGRvbnRSZXN0b3Jl
UmVnaXN0ZXJzLmdldChlbnRyeS5yZWcoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgaWYgKGVudHJ5LnJlZygpLmlzR1BSKCkpIHsKLSAgICAgICAgICAgIGlmIChpICE9IHNjcmF0
Y2hHUFJFbnRyeUluZGV4KQotICAgICAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhzY3JhdGNo
LCBlbnRyeS5vZmZzZXQoKSksIGVudHJ5LnJlZygpLmdwcigpKTsKLSAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICBsb2FkRG91YmxlKEFkZHJlc3Moc2NyYXRjaCwgZW50cnkub2Zmc2V0KCkpLCBl
bnRyeS5yZWcoKS5mcHIoKSk7CisgICAgICAgIGlmIChpID09IHNjcmF0Y2hHUFJFbnRyeUluZGV4
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGxvYWRSZWcoQWRkcmVzcyhzY3JhdGNo
LCBlbnRyeS5vZmZzZXQoKSksIGVudHJ5LnJlZygpKTsKICAgICB9CiAKICAgICAvLyBSZXN0b3Jl
IHRoZSBjYWxsZWUgc2F2ZSB2YWx1ZSBvZiB0aGUgc2NyYXRjaC4KQEAgLTYyMCw3ICs2MTgsNyBA
QCB2b2lkIEFzc2VtYmx5SGVscGVyczo6cmVzdG9yZUNhbGxlZVNhdmVzRnJvbUVudHJ5RnJhbWVD
YWxsZWVTYXZlc0J1ZmZlcihFbnRyeUZyYQogICAgIEFTU0VSVCghZG9udFJlc3RvcmVSZWdpc3Rl
cnMuZ2V0KGVudHJ5LnJlZygpKSk7CiAgICAgQVNTRVJUKGVudHJ5LnJlZygpLmlzR1BSKCkpOwog
ICAgIEFTU0VSVChzY3JhdGNoID09IGVudHJ5LnJlZygpLmdwcigpKTsKLSAgICBsb2FkUHRyKEFk
ZHJlc3Moc2NyYXRjaCwgZW50cnkub2Zmc2V0KCkpLCBzY3JhdGNoKTsKKyAgICBsb2FkUmVnKEFk
ZHJlc3Moc2NyYXRjaCwgZW50cnkub2Zmc2V0KCkpLCBzY3JhdGNoKTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKHRvcEVudHJ5RnJhbWUpOwogI2VuZGlmCkBAIC05ODgsMTAgKzk4Niw3IEBAIHZv
aWQgQXNzZW1ibHlIZWxwZXJzOjpjb3B5Q2FsbGVlU2F2ZXNUb0VudHJ5RnJhbWVDYWxsZWVTYXZl
c0J1ZmZlckltcGwoR1BSUmVnIGNhCiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBh
bGxDYWxsZWVTYXZlcy0+YXQoaSk7CiAgICAgICAgIGlmIChkb250Q29weVJlZ2lzdGVycy5nZXQo
ZW50cnkucmVnKCkpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChlbnRyeS5y
ZWcoKS5pc0dQUigpKQotICAgICAgICAgICAgc3RvcmVQdHIoZW50cnkucmVnKCkuZ3ByKCksIEFk
ZHJlc3MoY2FsbGVlU2F2ZXNCdWZmZXIsIGVudHJ5Lm9mZnNldCgpKSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIHN0b3JlRG91YmxlKGVudHJ5LnJlZygpLmZwcigpLCBBZGRyZXNzKGNhbGxl
ZVNhdmVzQnVmZmVyLCBlbnRyeS5vZmZzZXQoKSkpOworICAgICAgICBzdG9yZVJlZyhlbnRyeS5y
ZWcoKSwgQWRkcmVzcyhjYWxsZWVTYXZlc0J1ZmZlciwgZW50cnkub2Zmc2V0KCkpKTsKICAgICB9
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShjYWxsZWVTYXZlc0J1ZmZlcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCAwNjNiOGJmNjQ0YWMyNTkw
ZGE1NDZiNjQ5YTgyN2I3NWUxMDc4MTVkLi4wM2YzOGEzNDZkNTE2ZTc4NDQ3ZjFkZTQ2YWRmYWU4
NDNlYjc4Y2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKQEAgLTEwMiw2ICsxMDIsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgc3RvcmUzMihzcmMu
Z3ByKCksIGRzdCk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVJlZyhSZWcgc3JjLCBBZGRyZXNz
IGRzdCkKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgc3RvcmU2NEZyb21SZWco
c3JjLCBkc3QpOworI2Vsc2UKKyAgICAgICAgc3RvcmUzMkZyb21SZWcoc3JjLCBkc3QpOworI2Vu
ZGlmCisgICAgfQorCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICB2b2lkIGxvYWQ2NFRvUmVnKEFk
ZHJlc3Mgc3JjLCBSZWcgZHN0KQogICAgIHsKQEAgLTEyMCw2ICsxMjksMTUgQEAgcHVibGljOgog
ICAgICAgICAgICAgbG9hZDMyKHNyYywgZHN0LmdwcigpKTsKICAgICB9CiAKKyAgICB2b2lkIGxv
YWRSZWcoQWRkcmVzcyBzcmMsIFJlZyBkc3QpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgICAgIGxvYWQ2NFRvUmVnKHNyYywgZHN0KTsKKyNlbHNlCisgICAgICAgIGxvYWQzMlRvUmVn
KHNyYywgZHN0KTsKKyNlbmRpZgorICAgIH0KKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAg
ICAgdm9pZCBzdG9yZUNlbGwoVCBjZWxsLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewpAQCAtNDk4
LDcgKzUxNiw3IEBAIHB1YmxpYzoKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok51bWJlclRhZyksIEdQ
UkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKTsKLSAgICAgICAgb3JQdHIoTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpPdGhlclRhZyksIEdQUkluZm86Om51bWJlclRhZ1JlZ2lz
dGVyLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgb3I2NChNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Ok90aGVyVGFnKSwgR1BSSW5mbzo6bnVtYmVy
VGFnUmVnaXN0ZXIsIEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwogI2VuZGlmCiAgICAg
fQogCkBAIC02MjUsMjUgKzY0MywzMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGVtaXRHZXRGcm9t
Q2FsbEZyYW1lSGVhZGVyUHRyKFZpcnR1YWxSZWdpc3RlciBlbnRyeSwgR1BSUmVnIHRvLCBHUFJS
ZWcgZnJvbSA9IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKQogICAgIHsKKyAgICAgICAgQVNT
RVJUKGVudHJ5LmlzSGVhZGVyKCkpOwogICAgICAgICBsb2FkUHRyKEFkZHJlc3MoZnJvbSwgZW50
cnkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgdG8pOwogICAgIH0KICAgICB2b2lkIGVt
aXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyMzIoVmlydHVhbFJlZ2lzdGVyIGVudHJ5LCBHUFJSZWcg
dG8sIEdQUlJlZyBmcm9tID0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIpCiAgICAgeworICAg
ICAgICBBU1NFUlQoZW50cnkuaXNIZWFkZXIoKSk7CiAgICAgICAgIGxvYWQzMihBZGRyZXNzKGZy
b20sIGVudHJ5Lm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIHRvKTsKICAgICB9CiAjaWYg
VVNFKEpTVkFMVUU2NCkKICAgICB2b2lkIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyNjQoVmly
dHVhbFJlZ2lzdGVyIGVudHJ5LCBHUFJSZWcgdG8sIEdQUlJlZyBmcm9tID0gR1BSSW5mbzo6Y2Fs
bEZyYW1lUmVnaXN0ZXIpCiAgICAgeworICAgICAgICBBU1NFUlQoZW50cnkuaXNIZWFkZXIoKSk7
CiAgICAgICAgIGxvYWQ2NChBZGRyZXNzKGZyb20sIGVudHJ5Lm9mZnNldCgpICogc2l6ZW9mKFJl
Z2lzdGVyKSksIHRvKTsKICAgICB9CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKICAgICB2b2lk
IGVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcihHUFJSZWcgZnJvbSwgVmlydHVhbFJlZ2lzdGVyIGVu
dHJ5KQogICAgIHsKKyAgICAgICAgQVNTRVJUKGVudHJ5LmlzSGVhZGVyKCkpOwogICAgICAgICBz
dG9yZVB0cihmcm9tLCBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBlbnRyeS5v
ZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpKTsKICAgICB9CiAKICAgICB2b2lkIGVtaXRQdXRU
b0NhbGxGcmFtZUhlYWRlcih2b2lkKiB2YWx1ZSwgVmlydHVhbFJlZ2lzdGVyIGVudHJ5KQogICAg
IHsKKyAgICAgICAgQVNTRVJUKGVudHJ5LmlzSGVhZGVyKCkpOwogICAgICAgICBzdG9yZVB0cihU
cnVzdGVkSW1tUHRyKHZhbHVlKSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
ZW50cnkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggNzFjZjk5ZTk5MDQ4
YmE2NGZiOTUxNGNlNmJhNWE5MTA2YzBkYTY3My4uZTZmMjM1MTU5Nzg3MTBlZWJjNTYxYWM5ODA0
NDE5OGZlMTlmNzQzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcApAQCAtMTMyMCw3ICsxMzIwLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW51bWVy
YXRvcl9zdHJ1Y3R1cmVfcG5hbWUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGkK
ICAgICBpbkJvdW5kcy5saW5rKHRoaXMpOwogCiAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNhY2hlZFByb3BlcnR5TmFtZXNWZWN0b3JPZmZzZXQo
KSksIHJlZ1QxKTsKLSAgICBsb2FkUHRyKEJhc2VJbmRleChyZWdUMSwgcmVnVDAsIHRpbWVzUHRy
KCkpLCByZWdUMCk7CisgICAgbG9hZFB0cihCYXNlSW5kZXgocmVnVDEsIHJlZ1QwLCBTY2FsZVB0
ciksIHJlZ1QwKTsKICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVn
VDIpOwogCiAgICAgZG9uZS5saW5rKHRoaXMpOwpAQCAtMTM0NSw3ICsxMzQ1LDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9nZW5lcmljX3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24KICAgICBpbkJvdW5kcy5saW5rKHRoaXMpOwogCiAgICAgbG9hZFB0
cihBZGRyZXNzKHJlZ1QxLCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNhY2hlZFByb3BlcnR5
TmFtZXNWZWN0b3JPZmZzZXQoKSksIHJlZ1QxKTsKLSAgICBsb2FkUHRyKEJhc2VJbmRleChyZWdU
MSwgcmVnVDAsIHRpbWVzUHRyKCkpLCByZWdUMCk7CisgICAgbG9hZFB0cihCYXNlSW5kZXgocmVn
VDEsIHJlZ1QwLCBTY2FsZVB0ciksIHJlZ1QwKTsKICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSwgcmVnVDIpOwogICAgIAogICAgIGRvbmUubGluayh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAppbmRleCA2OWZiN2Ni
MmQyMzQyYTA1NmE3ZjZlZjhlZTk5NzRiOWZjYzliNTZmLi42MjYxZDA0ZDkxYzZjNTQ5ZjJkZDBm
NjkzMGY0YmE5Y2E2ZTUyZTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVu
a0dlbmVyYXRvcnMuY3BwCkBAIC0zMDIsOCArMzAyLDggQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxKSVRUaHVua1B0clRhZz4gbmF0aXZlRm9yR2VuZXJhdG9yKFZNJiB2bSwgVGh1bmtG
dW4KIAogICAgIC8vIENoZWNrIGZvciBhbiBleGNlcHRpb24KICNpZiBVU0UoSlNWQUxVRTY0KQot
ICAgIGppdC5sb2FkNjQodm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEpTSW50ZXJmYWNlSklUOjpy
ZWdUMik7Ci0gICAgSlNJbnRlcmZhY2VKSVQ6Okp1bXAgZXhjZXB0aW9uSGFuZGxlciA9IGppdC5i
cmFuY2hUZXN0NjQoSlNJbnRlcmZhY2VKSVQ6Ok5vblplcm8sIEpTSW50ZXJmYWNlSklUOjpyZWdU
Mik7CisgICAgaml0LmxvYWRQdHIodm0uYWRkcmVzc09mRXhjZXB0aW9uKCksIEpTSW50ZXJmYWNl
SklUOjpyZWdUMik7CisgICAgSlNJbnRlcmZhY2VKSVQ6Okp1bXAgZXhjZXB0aW9uSGFuZGxlciA9
IGppdC5icmFuY2hUZXN0UHRyKEpTSW50ZXJmYWNlSklUOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDIpOwogI2Vsc2UKICAgICBKU0ludGVyZmFjZUpJVDo6SnVtcCBleGNlcHRpb25IYW5k
bGVyID0gaml0LmJyYW5jaDMyKAogICAgICAgICBKU0ludGVyZmFjZUpJVDo6Tm90RXF1YWwsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UZXN0UnVubmVyVXRpbHMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNwcApp
bmRleCBkYzgxYjkyODYxZTI5MDk3ODRlYjg4MGZlZWViYWViNWI5NmIxYzY1Li5hYzdiNjFkZGQw
YTE0YTI1N2RiN2IyYjgwMTQ5MzZiNjMwZWZjYzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9UZXN0UnVubmVyVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgSlNW
YWx1ZSBudW1iZXJPZkRGR0NvbXBpbGVzKEpTVmFsdWUgdGhlRnVuY3Rpb25WYWx1ZSkKIHsKICAg
ICBib29sIHByZXRlbmRUb0hhdmVNYW55Q29tcGlsZXMgPSBmYWxzZTsKICNpZiBFTkFCTEUoREZH
X0pJVCkKLSAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVCgpIHx8ICFPcHRpb25zOjp1c2VERkdKSVQo
KSkKKyAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVCgpIHx8ICFPcHRpb25zOjp1c2VCYXNlbGluZUpJ
VCgpIHx8ICFPcHRpb25zOjp1c2VERkdKSVQoKSkKICAgICAgICAgcHJldGVuZFRvSGF2ZU1hbnlD
b21waWxlcyA9IHRydWU7CiAjZWxzZQogICAgIHByZXRlbmRUb0hhdmVNYW55Q29tcGlsZXMgPSB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCmluZGV4IDEw
NjU1NjZiOTU2NzAzZWQ5OGRkNDdlM2Y4MzlhYWNjZDMwZWI1ZjQuLjZiYmI2MjFlODU3MjI1NTZl
YWQyYzJhNWQ5YjcxNGFhMmIzYmVlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2pp
dC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0
b3JDb21waWxlci5jcHAKQEAgLTM1MDEsNyArMzUwMSw3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUVsZW1lbnRIYXNDbGFzc2VzKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZh
aWx1CiAgICAgICAgIEFzc2VtYmxlcjo6TGFiZWwgbG9vcFN0YXJ0KG1fYXNzZW1ibGVyLmxhYmVs
KCkpOwogCiAgICAgICAgIC8vIElmIHRoZSBwb2ludGVycyBtYXRjaCwgcHJvY2VlZCB0byB0aGUg
bmV4dCBtYXRjaGVyLgotICAgICAgICBBc3NlbWJsZXI6Okp1bXAgY2xhc3NGb3VuZCA9IG1fYXNz
ZW1ibGVyLmJyYW5jaFB0cihBc3NlbWJsZXI6OkVxdWFsLCBBc3NlbWJsZXI6OkJhc2VJbmRleChz
cGFjZVNwbGl0U3RyaW5nRGF0YSwgaW5kZXhSZWdpc3RlciwgQXNzZW1ibGVyOjp0aW1lc1B0cigp
LCBTcGFjZVNwbGl0U3RyaW5nRGF0YTo6dG9rZW5zTWVtb3J5T2Zmc2V0KCkpLCBjbGFzc05hbWVU
b01hdGNoKTsKKyAgICAgICAgQXNzZW1ibGVyOjpKdW1wIGNsYXNzRm91bmQgPSBtX2Fzc2VtYmxl
ci5icmFuY2hQdHIoQXNzZW1ibGVyOjpFcXVhbCwgQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3BhY2VT
cGxpdFN0cmluZ0RhdGEsIGluZGV4UmVnaXN0ZXIsIEFzc2VtYmxlcjo6U2NhbGVQdHIsIFNwYWNl
U3BsaXRTdHJpbmdEYXRhOjp0b2tlbnNNZW1vcnlPZmZzZXQoKSksIGNsYXNzTmFtZVRvTWF0Y2gp
OwogCiAgICAgICAgIC8vIEluY3JlbWVudCB0aGUgaW5kZXguCiAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZDMyKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEpLCBpbmRleFJlZ2lzdGVyKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2M0ZjZh
OWNjMWJhMzMxZjQxMTEwMTE5YzhhM2FlNzE5NmUyZGIyMS4uY2RmNGJmZGE2NDkxMjcxZTc2Yjlj
ZDE2YTI1YzY1NWVkODcxODc3MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWls
bGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBKSVQgdGh1bmtzIHNob3Vs
ZCB3b3JrIG9uIGFybTY0XzMyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTMxMDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBza2lwIHRlc3Qgb24gbWVtb3J5IGxpbWl0ZWQgc2luY2UgaXQgYnJlYWtzIG9u
IHdhdGNoIHdpdGggSklULgorCisgICAgICAgICogc3RyZXNzL2FycmF5LWJ1ZmZlci12aWV3LXdh
dGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxseS1hZGQtaW4tZGZnLmpzOgorCiAyMDIwLTA2
LTA4ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBb
SW50bF0gVXBkYXRlIHRlc3RzIHRvIHN1cHBvcnQgSUNVIDY3CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9hcnJheS1idWZmZXItdmlldy13YXRjaHBvaW50LWNhbi1iZS1maXJlZC1pbi1yZWFs
bHktYWRkLWluLWRmZy5qcyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZlci12aWV3LXdhdGNo
cG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxseS1hZGQtaW4tZGZnLmpzCmluZGV4IDc1YWViZTY5
YmFjYmE3NTA5M2U5MTI1MzgxNThlZTI5MDA2NmFmYzkuLmI5ZGQ5M2Y3NjU3NjMxMTc4YWM4ZjM4
N2MxY2Y0MTU2YmVkZjkzYWQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZl
ci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLWluLXJlYWxseS1hZGQtaW4tZGZnLmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LWJ1ZmZlci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZp
cmVkLWluLXJlYWxseS1hZGQtaW4tZGZnLmpzCkBAIC0xLDMgKzEsNCBAQAorLy9AIHNraXAgaWYg
JG1lbW9yeUxpbWl0ZWQKIC8vQCBza2lwIGlmIFsiYXJtIiwgInBvd2VycGMiLCAicG93ZXJwYzY0
IiwgInMzOTAiXS5pbmNsdWRlPygkYXJjaGl0ZWN0dXJlKSBhbmQgJGhvc3RPUyA9PSAibGludXgi
CiAvL0AgcmVxdWlyZU9wdGlvbnMoIi1lIiwgImxldCBpdGVyYXRpb25zPTQwMDAwIikgaWYgWyJt
aXBzIl0uaW5jbHVkZT8oJGFyY2hpdGVjdHVyZSkKIC8vQCBydW5EZWZhdWx0KCItLWppdFBvbGlj
eVNjYWxlPTAiKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401912</attachid>
            <date>2020-06-15 11:21:32 -0700</date>
            <delta_ts>2020-06-15 11:56:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213103-20200615112131.patch</filename>
            <type>text/plain</type>
            <size>32445</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OGFhZTM5ODIyODFiNzhmMjc1ODNkMzkxNTFlNGNjZjhkZDA4MGE3Li40MGMwMTcxMjllOGM1NTUw
Yjg2ODJjOTFkMDg0MzhlZjQwZWE0NTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MyBAQAorMjAyMC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBKSVQgdGh1bmtzIHNob3VsZCB3b3JrIG9uIGFybTY0XzMyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVz
IHZhcmlvdXMgaXNzdWVzIHdoZW4gcnVubmluZyBKU0Mgb24gYXJtNjRfMzIgd2l0aAorICAgICAg
ICB1c2VKSVQ9MSBhbmQgdXNlQmFzZWxpbmVKSVQ9MC4gSW4gcGFydGljdWxhciB0aGlzIHBhdGNo
IG1ha2VzIHRoZQorICAgICAgICBmb2xsb3dpbmcgY2hhbmdlczoKKworICAgICAgICAxKSBTY2Fs
ZVB0ciBpcyBub3cganVzdCBwYXJ0IG9mIHRoZSBTY2FsZSBlbnVtIGFuZCBpcyBzZXQgYmFzZWQg
b24KKyAgICAgICAgdGhlIHNpemUgb2YgdGhlIGFkZHJlc3Mgc3BhY2UuCisKKyAgICAgICAgMikg
TWFjcm9Bc3NlbWJsZXI6OipQdHIgZnVuY3Rpb25zIGNhbGwgMzIvNjQgYml0IHZhcmlhbnRzIGJh
c2VkIG9uCisgICAgICAgIEFkZHJlc3Mgc3BhY2Ugc2l6ZSByYXRoZXIgdGhhbiBjcHUgYXJjaGl0
ZWN0dXJlLiBWZXR0aW5nIG9mIGNhbGxzaXRlcworICAgICAgICB1c2luZyBQdHIgYXMgNjQgd2ls
bCBoYXBwZW4gaW4gZnV0dXJlIHBhdGNoZXMgc2luY2UgaXQncyBoYXJkIHRvCisgICAgICAgIGNv
bXByZWhlbnNpdmVseSB2ZXQuCisKKyAgICAgICAgMykgQWRkIHNvbWUgbWlzc2luZyB2YXJpYW50
cyBvZiBmdW5jdGlvbnMgZm9yIHdoZW4gcG9pbnRlcnMgYXJlIDMyLWJpdC4KKworICAgICAgICA0
KSBBZGQgYSBsb2FkL3N0b3JlUmVnIGZ1bmN0aW9uIHRoYXQgc3RvcmVzIGEgZnVsbCByZWdpc3Rl
ciByZWdhcmRsZXNzCisgICAgICAgIG9mIHBvaW50ZXIgc2l6ZSBmb3Igc3RvcmluZy9sb2FkaW5n
IGNhbGxlZSBzYXZlcy4KKworICAgICAgICA1KSBudW1iZXJPZkRGR0NvbXBpbGVzIHNob3VsZCBy
ZXBvcnQgYSBiaWcgbnVtYmVyIGZvcgorICAgICAgICB1c2VCYXNlbGluZUpJVD0wIGFzIHNvbWUg
dGVzdHMgZmFpbCBieSBkZWZhdWx0IGlmIHVzZUJhc2VsaW5lSklUPTAKKyAgICAgICAgYnV0IHVz
ZUpJVD0xLgorCisgICAgICAgIDYpIEFzc2VydCBCYXNlSW5kZXggaGFzIGEgc2NhbGUgb2YgUHRy
U2l6ZSBvciBUaW1lc09uZSAoZm9yIHByZS1zY2FsZWQKKyAgICAgICAgdmFsdWVzKSB3aGVuIHBh
c3NlZCB0byBhIGxvYWQvc3RvcmVQdHIgZnVuY3Rpb24uCisKKyAgICAgICAgKiBhc3NlbWJsZXIv
QWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyOjp0aW1lc1B0cik6IERlbGV0ZWQuCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpyb3RhdGVSaWdodFB0cik6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpsb2FkUHRyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXI6OmxvYWRQdHJXaXRoQ29tcGFjdEFkZHJlc3NPZmZzZXRQYXRjaCk6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpicmFuY2hQdHIpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6c3RvcmVQdHIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6
c2hvdWxkQmxpbmREb3VibGUpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6bW92ZURv
dWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpzdG9yZTY0KToKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTTY0OjphZGQzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OnNpZ25FeHRlbmQzMlRvUHRyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6
bG9hZFB0cik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmNhbGwpOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpmYXJKdW1wKToKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTXY3Ojpyb3RhdGVSaWdodDMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6cm90YXRlUmlnaHQz
Mik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Lmg6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6CisgICAgICAgICogYjMvQjNMb3dlck1h
Y3Jvcy5jcHA6CisgICAgICAgICogYjMvdGVzdGIzXzYuY3BwOgorICAgICAgICAodGVzdEludGVy
cHJldGVyKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjplbWl0U3dpdGNoSW50SnVtcCk6CisgICAgICAgICog
aml0L0Fzc2VtYmx5SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6
ZW1pdExvYWRTdHJ1Y3R1cmUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRB
bGxvY2F0ZVZhcmlhYmxlU2l6ZWQpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnJl
c3RvcmVDYWxsZWVTYXZlc0Zyb21FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIpOgorICAgICAg
ICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNvcHlDYWxsZWVTYXZlc1RvRW50cnlGcmFtZUNhbGxl
ZVNhdmVzQnVmZmVySW1wbCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnN0b3JlUmVnKToKKyAgICAgICAgKEpTQzo6QXNz
ZW1ibHlIZWxwZXJzOjpsb2FkUmVnKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpl
bWl0TWF0ZXJpYWxpemVUYWdDaGVja1JlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5
SGVscGVyczo6ZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIpOgorICAgICAgICAoSlNDOjpB
c3NlbWJseUhlbHBlcnM6OmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyMzIpOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyNjQpOgorICAg
ICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcik6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9wbmFtZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9lbnVtZXJhdG9yX2dlbmVyaWNfcG5hbWUpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVy
YXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpuYXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAq
IHJ1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNwcDoKKyAgICAgICAgKEpTQzo6bnVtYmVyT2ZERkdD
b21waWxlcyk6CisKIDIwMjAtMDYtMDkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbSlNDXSBTaHJpbmsgX19EQVRBLChfX2RhdGEsX19ic3MsX19jb21tb24p
IG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA5NGEwNGUyNGVmYzQ2OWViZTQwNzdjMWFjOGNlM2Y5NGQ1ZmE5
ZjkxLi43YjUzZjEzZjllM2VmYWY2NTBiNzU4ZWY5ODFhZjNhMjJlNzJjYTlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDYtMTIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgSklUIHRodW5rcyBzaG91bGQgd29yayBvbiBhcm02NF8z
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTAz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgUmVmYWN0b3Ig
dGltZXNQdHIoKSB0byBTY2FsZVB0ci4KKworICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBp
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29k
ZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50SGFzQ2xhc3Nlcyk6CisKIDIwMjAtMDYtMDkgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBsYW5nPXpo
IG5lZWRzIHRvIGRlZmVyIHRvIHN5c3RlbSBwcmVmZXJlbmNlcyB0byBrbm93IHdoZXRoZXIgaXQg
c2hvdWxkIGJlIHNpbXBsaWZpZWQgb3IgdHJhZGl0aW9uYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKaW5kZXgg
YTcxZDA4ODNlNjJmYzhhNTIyNDZkZWIxNzJlMmQwODU3YjYzNjg5Ni4uMzVkYmM5NTAwOGMyYTBk
MDU2YjAwNDZkMGNlNmE2NTVhNzNjNmRmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKQEAgLTEyMCwxNSAr
MTIwLDkgQEAgcHVibGljOgogICAgICAgICBUaW1lc1R3bywKICAgICAgICAgVGltZXNGb3VyLAog
ICAgICAgICBUaW1lc0VpZ2h0LAorICAgICAgICBTY2FsZVB0ciA9IGlzQWRkcmVzczY0Qml0KCkg
PyBUaW1lc0VpZ2h0IDogVGltZXNGb3VyLAogICAgIH07CiAgICAgCi0gICAgc3RhdGljIFNjYWxl
IHRpbWVzUHRyKCkKLSAgICB7Ci0gICAgICAgIGlmIChzaXplb2Yodm9pZCopID09IDQpCi0gICAg
ICAgICAgICByZXR1cm4gVGltZXNGb3VyOwotICAgICAgICByZXR1cm4gVGltZXNFaWdodDsKLSAg
ICB9Ci0gICAgCiAgICAgc3RydWN0IEJhc2VJbmRleDsKICAgICAKICAgICBzdGF0aWMgUmVnaXN0
ZXJJRCB3aXRoU3dhcHBlZFJlZ2lzdGVyKFJlZ2lzdGVySUQgb3JpZ2luYWwsIFJlZ2lzdGVySUQg
bGVmdCwgUmVnaXN0ZXJJRCByaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAppbmRleCBiZjllOTBiM2Q1YTA4ZGEzNGQzNTEwYjY3MWEw
NjA2Mzk1ODlmMWIyLi4zY2VhZjdiNWEzY2RjNWE1ZTJkNzZhYzM1ODBmZGM3NzNjYWM4MTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5o
CkBAIC05NSw2ICs5NSw3IEBAIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZSA9IFRBUkdFVF9NQUNS
T0FTU0VNQkxFUjsKIAogY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJs
ZXJCYXNlIHsKIHB1YmxpYzoKKyAgICB1c2luZyBCYXNlID0gTWFjcm9Bc3NlbWJsZXJCYXNlOwog
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIG5leHRSZWdpc3RlcihSZWdpc3RlcklE
IHJlZykKICAgICB7CkBAIC0xNTAsNiArMTUxLDEyIEBAIHB1YmxpYzoKICAgICB1c2luZyBNYWNy
b0Fzc2VtYmxlckJhc2U6OnVyc2hpZnQzMjsKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6
OnhvcjMyOwogCisjaWYgQ1BVKEFSTTY0KSB8fCBDUFUoWDg2XzY0KQorICAgIHVzaW5nIE1hY3Jv
QXNzZW1ibGVyQmFzZTo6YW5kNjQ7CisgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpjb252
ZXJ0SW50MzJUb0RvdWJsZTsKKyAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnN0b3JlNjQ7
CisjZW5kaWYKKwogICAgIHN0YXRpYyBib29sIGlzUHRyQWxpZ25lZEFkZHJlc3NPZmZzZXQocHRy
ZGlmZl90IHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIHZhbHVlID09IHN0YXRpY19jYXN0
PGludDMyX3Q+KHZhbHVlKTsKQEAgLTU0MSw4ICs1NDgsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBQ
dHIgbWV0aG9kcwogICAgIC8vIE9uIDMyLWJpdCBwbGF0Zm9ybXMgKGkuZS4geDg2KSwgdGhlc2Ug
bWV0aG9kcyBkaXJlY3RseSBtYXAgb250byB0aGVpciAzMi1iaXQgZXF1aXZhbGVudHMuCi0gICAg
Ly8gRklYTUU6IHNob3VsZCB0aGlzIHVzZSBhIHRlc3QgZm9yIDMyLWJpdG5lc3MgaW5zdGVhZCBv
ZiB0aGlzIHNwZWNpZmljIGV4Y2VwdGlvbj8KLSNpZiAhQ1BVKFg4Nl82NCkgJiYgIUNQVShBUk02
NCkKKyNpZiAhQ1BVKEFERFJFU1M2NCkKICAgICB2b2lkIGFkZFB0cihBZGRyZXNzIHNyYywgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgYWRkMzIoc3JjLCBkZXN0KTsKQEAgLTY1OCw2
ICs2NjQsMTEgQEAgcHVibGljOgogICAgICAgICBvcjMyKGltbSwgZGVzdCk7CiAgICAgfQogCisg
ICAgdm9pZCByb3RhdGVSaWdodFB0cihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyY0Rz
dCkKKyAgICB7CisgICAgICAgIHJvdGF0ZVJpZ2h0MzIoaW1tLCBzcmNEc3QpOworICAgIH0KKwog
ICAgIHZvaWQgc3ViUHRyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewog
ICAgICAgICBzdWIzMihzcmMsIGRlc3QpOwpAQCAtNzAwLDYgKzcxMSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgbG9hZFB0cihCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKKyAgICAgICAgQVNTRVJUKGFkZHJlc3Muc2NhbGUgPT0gU2NhbGVQdHIgfHwgYWRkcmVzcy5z
Y2FsZSA9PSBUaW1lc09uZSk7CiAgICAgICAgIGxvYWQzMihhZGRyZXNzLCBkZXN0KTsKICAgICB9
CiAKQEAgLTcyOSwxMSArNzQxLDYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGxv
YWQzMldpdGhDb21wYWN0QWRkcmVzc09mZnNldFBhdGNoKGFkZHJlc3MsIGRlc3QpOwogICAgIH0K
LQotICAgIHZvaWQgbW92ZShJbW1QdHIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAg
ICAgICBtb3ZlKEltbTMyKGltbS5hc1RydXN0ZWRJbW1QdHIoKSksIGRlc3QpOwotICAgIH0KICAg
ICAKICAgICB2b2lkIGNvbXBhcmVQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3Rl
cklEIGxlZnQsIFRydXN0ZWRJbW0zMiByaWdodCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKQEAg
LTg3MCw3ICs4NzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlckJh
c2U6OmJyYW5jaFRlc3Q4KGNvbmQsIEFkZHJlc3MoYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNl
dCksIG1hc2spOwogICAgIH0KIAotI2Vsc2UgLy8gIUNQVShYODZfNjQpICYmICFDUFUoQVJNNjQp
CisjZWxzZSAvLyAhQ1BVKEFERFJFU1M2NCkKIAogICAgIHZvaWQgYWRkUHRyKFJlZ2lzdGVySUQg
c3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewpAQCAtMTA1MCw2ICsxMDU3LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBsb2FkUHRyKEJhc2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgeworICAgICAgICBBU1NFUlQoYWRkcmVzcy5zY2FsZSA9PSBTY2FsZVB0ciB8fCBhZGRy
ZXNzLnNjYWxlID09IFRpbWVzT25lKTsKICAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGRlc3QpOwog
ICAgIH0KIApAQCAtMTIxOSw5ICsxMjI3LDI5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJy
YW5jaFN1YjY0KGNvbmQsIHNyYzEsIHNyYzIsIGRlc3QpOwogICAgIH0KIAotICAgIHVzaW5nIE1h
Y3JvQXNzZW1ibGVyQmFzZTo6YW5kNjQ7Ci0gICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpj
b252ZXJ0SW50MzJUb0RvdWJsZTsKLSAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OnN0b3Jl
NjQ7CisgICAgSnVtcCBicmFuY2hQdHIoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBSZWdpc3Rl
cklEIGxlZnQsIEltbVB0ciByaWdodCkKKyAgICB7CisgICAgICAgIGlmIChzaG91bGRCbGluZChy
aWdodCkgJiYgaGF2ZVNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCkpIHsKKyAgICAgICAgICAg
IFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gc2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmco
KTsKKyAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRDb25zdGFudChyb3RhdGlvbkJsaW5k
Q29uc3RhbnQocmlnaHQpLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICAgICAgcmV0dXJuIGJy
YW5jaFB0cihjb25kLCBsZWZ0LCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBicmFuY2hQdHIoY29uZCwgbGVmdCwgcmlnaHQuYXNUcnVzdGVkSW1tUHRyKCkpOwor
ICAgIH0KKworICAgIHZvaWQgc3RvcmVQdHIoSW1tUHRyIGltbSwgQWRkcmVzcyBkZXN0KQorICAg
IHsKKyAgICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkgJiYgaGF2ZVNjcmF0Y2hSZWdpc3RlckZv
ckJsaW5kaW5nKCkpIHsKKyAgICAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0g
c2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKKyAgICAgICAgICAgIGxvYWRSb3RhdGlvbkJs
aW5kZWRDb25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQoaW1tKSwgc2NyYXRjaFJlZ2lzdGVy
KTsKKyAgICAgICAgICAgIHN0b3JlUHRyKHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgc3RvcmVQdHIoaW1tLmFzVHJ1c3RlZEltbVB0cigpLCBkZXN0
KTsKKyAgICB9CisKKyNlbmRpZiAvLyAhQ1BVKEFERFJFU1M2NCkKKworI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgYm9vbCBzaG91bGRCbGluZERvdWJsZShkb3VibGUgdmFsdWUpCiAgICAgewogICAg
ICAgICAvLyBEb24ndCB0cnVzdCBOYU4gb3IgKy8tSW5maW5pdHkKQEAgLTE0MTUsMTMgKzE0NDMs
MTEgQEAgcHVibGljOgogICAgICAgICAgICAgbW92ZShpbW0uYXNUcnVzdGVkSW1tNjQoKSwgZGVz
dCk7CiAgICAgfQogCi0jaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgIHZvaWQgbW92
ZURvdWJsZShJbW02NCBpbW0sIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgbW92
ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsKICAgICAgICAgbW92ZTY0VG9Eb3VibGUoc2NyYXRj
aFJlZ2lzdGVyKCksIGRlc3QpOwogICAgIH0KLSNlbmRpZgogCiAgICAgdm9pZCBhbmQ2NChJbW0z
MiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CkBAIC0xNDMyLDM4ICsxNDU4LDcgQEAgcHVi
bGljOgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGFuZDY0KGltbS5hc1RydXN0ZWRJbW0z
MigpLCBkZXN0KTsKICAgICB9Ci0KLSAgICBKdW1wIGJyYW5jaFB0cihSZWxhdGlvbmFsQ29uZGl0
aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgSW1tUHRyIHJpZ2h0KQotICAgIHsKLSAgICAgICAg
aWYgKHNob3VsZEJsaW5kKHJpZ2h0KSAmJiBoYXZlU2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmco
KSkgewotICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVn
aXN0ZXJGb3JCbGluZGluZygpOwotICAgICAgICAgICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0
YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChyaWdodCksIHNjcmF0Y2hSZWdpc3Rlcik7Ci0gICAg
ICAgICAgICByZXR1cm4gYnJhbmNoUHRyKGNvbmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3Rlcik7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGJyYW5jaFB0cihjb25kLCBsZWZ0LCByaWdodC5hc1Ry
dXN0ZWRJbW1QdHIoKSk7Ci0gICAgfQotICAgIAotICAgIHZvaWQgc3RvcmVQdHIoSW1tUHRyIGlt
bSwgQWRkcmVzcyBkZXN0KQotICAgIHsKLSAgICAgICAgaWYgKHNob3VsZEJsaW5kKGltbSkgJiYg
aGF2ZVNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCkpIHsKLSAgICAgICAgICAgIFJlZ2lzdGVy
SUQgc2NyYXRjaFJlZ2lzdGVyID0gc2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKLSAgICAg
ICAgICAgIGxvYWRSb3RhdGlvbkJsaW5kZWRDb25zdGFudChyb3RhdGlvbkJsaW5kQ29uc3RhbnQo
aW1tKSwgc2NyYXRjaFJlZ2lzdGVyKTsKLSAgICAgICAgICAgIHN0b3JlUHRyKHNjcmF0Y2hSZWdp
c3RlciwgZGVzdCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3RvcmVQdHIoaW1tLmFz
VHJ1c3RlZEltbVB0cigpLCBkZXN0KTsKLSAgICB9Ci0KLSAgICB2b2lkIHN0b3JlNjQoSW1tNjQg
aW1tLCBBZGRyZXNzIGRlc3QpCi0gICAgewotICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSAm
JiBoYXZlU2NyYXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKSkgewotICAgICAgICAgICAgUmVnaXN0
ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOwotICAg
ICAgICAgICAgbG9hZFJvdGF0aW9uQmxpbmRlZENvbnN0YW50KHJvdGF0aW9uQmxpbmRDb25zdGFu
dChpbW0pLCBzY3JhdGNoUmVnaXN0ZXIpOwotICAgICAgICAgICAgc3RvcmU2NChzY3JhdGNoUmVn
aXN0ZXIsIGRlc3QpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHN0b3JlNjQoaW1tLmFz
VHJ1c3RlZEltbTY0KCksIGRlc3QpOwotICAgIH0KLQotI2VuZGlmIC8vICFDUFUoWDg2XzY0KQor
I2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKICNpZiAhQ1BVKFg4NikgJiYgIUNQVShYODZfNjQp
ICYmICFDUFUoQVJNNjQpCiAgICAgLy8gV2Ugc2hvdWxkIGltcGxlbWVudCB0aGlzIHRoZSByaWdo
dCB3YXkgZXZlbnR1YWxseSwgYnV0IGZvciBub3csIGl0J3MgZmluZSBiZWNhdXNlIGl0IGFyaXNl
cyBzbwpAQCAtMTcxOSw3ICsxNzE0LDE4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN0b3Jl
NjQodmFsdWUsIGFkZHJlc3NGb3JQb2tlKGluZGV4KSk7CiAgICAgfQotI2VuZGlmIC8vIENQVShY
ODZfNjQpCisKKyAgICB2b2lkIHN0b3JlNjQoSW1tNjQgaW1tLCBBZGRyZXNzIGRlc3QpCisgICAg
eworICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSAmJiBoYXZlU2NyYXRjaFJlZ2lzdGVyRm9y
QmxpbmRpbmcoKSkgeworICAgICAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBz
Y3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOworICAgICAgICAgICAgbG9hZFJvdGF0aW9uQmxp
bmRlZENvbnN0YW50KHJvdGF0aW9uQmxpbmRDb25zdGFudChpbW0pLCBzY3JhdGNoUmVnaXN0ZXIp
OworICAgICAgICAgICAgc3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIsIGRlc3QpOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIHN0b3JlNjQoaW1tLmFzVHJ1c3RlZEltbTY0KCksIGRlc3QpOwor
ICAgIH0KKworI2VuZGlmIC8vIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKICAgICAKICAgICB2
b2lkIHN0b3JlMzIoSW1tMzIgaW1tLCBBZGRyZXNzIGRlc3QpCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRl
eCBlMjcyMjYwNjQxODdjNTVlMDA1ZmE5NzQ3ODA3YjE3YzI3Mzk5NjAxLi4zYmQyYmFjY2E0MjY3
ZGNlZDM2MmMyZTAyNDU0MThkYjNmOGYwMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtODksOCArODksNiBA
QCBwdWJsaWM6CiAgICAgdGVtcGxhdGUgPEFzc2VtYmxlcjo6Q29weUZ1bmN0aW9uIGNvcHk+CiAg
ICAgc3RhdGljIHZvaWQgbGluayhMaW5rUmVjb3JkJiByZWNvcmQsIHVpbnQ4X3QqIGZyb20sIGNv
bnN0IHVpbnQ4X3QqIGZyb21JbnN0cnVjdGlvbiwgdWludDhfdCogdG8pIHsgcmV0dXJuIEFzc2Vt
Ymxlcjo6bGluazxjb3B5PihyZWNvcmQsIGZyb20sIGZyb21JbnN0cnVjdGlvbiwgdG8pOyB9CiAK
LSAgICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0gVGltZXNFaWdodDsKLQogICAg
IHN0YXRpYyBib29sIGlzQ29tcGFjdFB0ckFsaWduZWRBZGRyZXNzT2Zmc2V0KHB0cmRpZmZfdCB2
YWx1ZSkKICAgICB7CiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIGxhcmdlc3QgMzItYml0IGFjY2Vz
cyBhbGxvd2VkLCBhbGlnbmVkIHRvIDY0LWJpdCBib3VuZGFyeS4KQEAgLTE1MiwxMyArMTUwLDE4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkMzIoUmVnaXN0ZXJJRCBhLCBSZWdpc3RlcklEIGIs
IFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChhICE9IEFSTTY0UmVnaXN0
ZXJzOjpzcCAmJiBiICE9IEFSTTY0UmVnaXN0ZXJzOjpzcCk7CisgICAgICAgIEFTU0VSVChhICE9
IEFSTTY0UmVnaXN0ZXJzOjpzcCB8fCBiICE9IEFSTTY0UmVnaXN0ZXJzOjpzcCk7CisgICAgICAg
IGlmIChiID09IEFSTTY0UmVnaXN0ZXJzOjpzcCkKKyAgICAgICAgICAgIHN0ZDo6c3dhcChhLCBi
KTsKICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDMyPihkZXN0LCBhLCBiKTsKICAgICB9CiAKICAg
ICB2b2lkIGFkZDMyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAg
ICAgICBtX2Fzc2VtYmxlci5hZGQ8MzI+KGRlc3QsIGRlc3QsIHNyYyk7CisgICAgICAgIGlmIChz
cmMgPT0gQVJNNjRSZWdpc3RlcnM6OnNwKQorICAgICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDMy
PihkZXN0LCBzcmMsIGRlc3QpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5hZGQ8MzI+KGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCiAgICAgdm9pZCBhZGQzMihUcnVz
dGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0yMjQsNiArMjI3LDEyIEBAIHB1Ymxp
YzoKICAgICAgICAgYWRkMzIoZGF0YVRlbXBSZWdpc3RlciwgZGVzdCk7CiAgICAgfQogCisgICAg
dm9pZCBhZGQzMihBYnNvbHV0ZUFkZHJlc3Mgc3JjLCBSZWdpc3RlcklEIGRlc3QpCisgICAgewor
ICAgICAgICBsb2FkMzIoc3JjLm1fcHRyLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJ
bnZhbGlkYXRlKCkpOworICAgICAgICBhZGQzMihkYXRhVGVtcFJlZ2lzdGVyLCBkZXN0KTsKKyAg
ICB9CisKICAgICB2b2lkIGFkZDY0KFJlZ2lzdGVySUQgYSwgUmVnaXN0ZXJJRCBiLCBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBBU1NFUlQoYSAhPSBBUk02NFJlZ2lzdGVyczo6c3Ag
fHwgYiAhPSBBUk02NFJlZ2lzdGVyczo6c3ApOwpAQCAtMjQ5Nyw5ICsyNTA2LDkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzaWduRXh0ZW5kMzJUb1B0cihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KGltbS5tX3ZhbHVlKSkpLCBkZXN0KTsK
KyAgICAgICAgbW92ZShUcnVzdGVkSW1tNjQoaW1tLm1fdmFsdWUpLCBkZXN0KTsKICAgICB9Ci0g
ICAgCisKICAgICB2b2lkIHNpZ25FeHRlbmQzMlRvUHRyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5zeHR3KGRlc3QsIHNyYyk7CkBA
IC0zMzI0LDYgKzMzMzMsMTcgQEAgcHVibGljOgogCiAgICAgLy8gSnVtcHMsIGNhbGxzLCByZXR1
cm5zCiAKKyAgICAvLyBkdXBsaWNhdGUgTWFjcm9Bc3NlbWJsZXIncyBsb2FkUHRyIGZvciBsb2Fk
aW5nIGNhbGwgdGFyZ2V0cy4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPgorICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBsb2FkUHRyKEFyZ3MuLi4gYXJncykKKyAgICB7CisjaWYgQ1BVKEFE
RFJFU1M2NCkKKyAgICAgICAgbG9hZDY0KGFyZ3MuLi4pOworI2Vsc2UKKyAgICAgICAgbG9hZDMy
KGFyZ3MuLi4pOworI2VuZGlmCisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwo
UHRyVGFnKQogICAgIHsKICAgICAgICAgQXNzZW1ibGVyTGFiZWwgcG9pbnRlckxhYmVsID0gbV9h
c3NlbWJsZXIubGFiZWwoKTsKQEAgLTMzNDQsNyArMzM2NCw3IEBAIHB1YmxpYzoKIAogICAgIEFM
V0FZU19JTkxJTkUgQ2FsbCBjYWxsKEFkZHJlc3MgYWRkcmVzcywgUHRyVGFnIHRhZykKICAgICB7
Ci0gICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJ
bnZhbGlkYXRlKCkpOworICAgICAgICBsb2FkUHRyKGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1w
UmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CiAgICAgICAgIHJldHVybiBjYWxsKGRhdGFUZW1w
UmVnaXN0ZXIsIHRhZyk7CiAgICAgfQogCkBAIC0zMzczLDIwICszMzkzLDIwIEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZmFySnVtcChBZGRyZXNzIGFkZHJlc3MsIFB0clRhZykKICAgICB7Ci0gICAg
ICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlk
YXRlKCkpOworICAgICAgICBsb2FkUHRyKGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0
ZXJJREFuZEludmFsaWRhdGUoKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVn
aXN0ZXIpOwogICAgIH0KICAgICAKICAgICB2b2lkIGZhckp1bXAoQmFzZUluZGV4IGFkZHJlc3Ms
IFB0clRhZykKICAgICB7Ci0gICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBsb2FkUHRyKGFkZHJlc3MsIGdl
dENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHZvaWQgZmFySnVtcChB
YnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgUHRyVGFnKQogICAgIHsKICAgICAgICAgbW92ZShUcnVz
dGVkSW1tUHRyKGFkZHJlc3MubV9wdHIpLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJ
bnZhbGlkYXRlKCkpOwotICAgICAgICBsb2FkNjQoQWRkcmVzcyhkYXRhVGVtcFJlZ2lzdGVyKSwg
ZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhkYXRhVGVtcFJlZ2lz
dGVyKSwgZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1w
UmVnaXN0ZXIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCA5NzY5MTFkZGY3NGY1MDU2ZDllNDEy
N2RjNzhmOGEzMGJjMzIxYTc5Li4zOTljNzBkNDVhYmE4NDhmMWZhMzg2MTdlZjg3YWY2MDE0OTg5
NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNdjcuaApAQCAtMTA1LDggKzEwNSw2IEBAIHB1YmxpYzoKICAgICB9OwogICAg
IAogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgU2NhbGUgU2NhbGVQdHIgPSBUaW1lc0Zv
dXI7Ci0KICAgICBlbnVtIFJlbGF0aW9uYWxDb25kaXRpb24gewogICAgICAgICBFcXVhbCA9IEFS
TXY3QXNzZW1ibGVyOjpDb25kaXRpb25FUSwKICAgICAgICAgTm90RXF1YWwgPSBBUk12N0Fzc2Vt
Ymxlcjo6Q29uZGl0aW9uTkUsCkBAIC00NDEsNiArNDM5LDE5IEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAorICAgIHZvaWQgcm90YXRlUmlnaHQzMihSZWdpc3RlcklEIHNyYywgVHJ1c3Rl
ZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKCFpbW0ubV92
YWx1ZSkKKyAgICAgICAgICAgIG1vdmUoc3JjLCBkZXN0KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgbV9hc3NlbWJsZXIucm9yKGRlc3QsIHNyYywgaW1tLm1fdmFsdWUgJiAweDFmKTsKKyAg
ICB9CisKKyAgICB2b2lkIHJvdGF0ZVJpZ2h0MzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJ
RCBzcmNEc3QpCisgICAgeworICAgICAgICByb3RhdGVSaWdodDMyKHNyY0RzdCwgaW1tLCBzcmNE
c3QpOworICAgIH0KKwogICAgIHZvaWQgcnNoaWZ0MzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVy
SUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIC8vIENsYW1w
IHRoZSBzaGlmdCB0byB0aGUgcmFuZ2UgMC4uMzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IDNmMTk5NjBjNzM0M2Qx
ZTdiYmJhNGJmOWNiNTIwNDI1ODAwYmZhNzMuLjJkY2Y3MmJhYzUxZjc2Y2JhOTkzNzBhM2U4N2Uw
NGQ2NjdlOWQwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtNjEsOCArNjEsNiBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBnZXRMU0JTZXQodik7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBTY2Fs
ZSBTY2FsZVB0ciA9IFRpbWVzRm91cjsKLQogICAgIC8vIEZvciBzdG9yaW5nIGltbWVkaWF0ZSBu
dW1iZXIKICAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgaW1tVGVtcFJlZ2lzdGVyID0g
TUlQU1JlZ2lzdGVyczo6dDA7CiAgICAgLy8gRm9yIHN0b3JpbmcgZGF0YSBsb2FkZWQgZnJvbSB0
aGUgbWVtb3J5CkBAIC02MjAsNiArNjE4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0K
IAorICAgIC8vIFRoaXMgaXMgb25seSByZWZlcmVuY2VkIGJ5IGNvZGUgaW50ZW50ZWQgZm9yIEFS
TTY0XzMyLgorICAgIHZvaWQgcm90YXRlUmlnaHQzMihUcnVzdGVkSW1tMzIsIFJlZ2lzdGVySUQp
CisgICAgeworICAgICAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKKyAgICB9CisKICAg
ICB2b2lkIHJzaGlmdDMyKFJlZ2lzdGVySUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnNyYXYoZGVzdCwgZGVzdCwgc2hpZnRBbW91bnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4Ni5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Ni5oCmluZGV4IGI4MWMyMmJmODM3MjM4MzBhN2UzOGQ4ZGEzZWRjOTI4M2VlNGQ2MDAuLjhk
MDIyZTNiODI1ZjU4ZDJlZjQ4ODIxYjFjMmE5NDI1NjkxZDFiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2LmgKQEAgLTM2LDgg
KzM2LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtR1BScyA9
IDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1GUFJzID0gODsKICAgICAKLSAg
ICBzdGF0aWMgY29uc3RleHByIFNjYWxlIFNjYWxlUHRyID0gVGltZXNGb3VyOwotCiAgICAgdXNp
bmcgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmFkZDMyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1i
bGVyWDg2Q29tbW9uOjphbmQzMjsKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6
YnJhbmNoQWRkMzI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggMDNlYzQ0MDA1MDMxZmRmNTE5Y2U1OGFhMjJm
NzkxNTc1ZTA1NDkyMi4uNTZhNmZkMTZhZGY3NTUwYzIyZjdmOTUzZGNhMTgyNjAzNmQ2YmE3OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZfNjQuaApAQCAtNDAsOCArNDAsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBudW1HUFJzID0gMTY7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBudW1GUFJzID0gMTY7CiAgICAgCi0gICAgc3RhdGljIGNvbnN0ZXhwciBTY2FsZSBTY2FsZVB0
ciA9IFRpbWVzRWlnaHQ7Ci0KICAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lzdGVySUQgSW52YWxp
ZEdQUlJlZyA9IFg4NlJlZ2lzdGVyczo6SW52YWxpZEdQUlJlZzsKIAogICAgIHVzaW5nIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjphZGQzMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyTWFjcm9zLmNwcAppbmRleCBjZWViZTA3NWE2MmYzNzcyN2U3ZTc2OTQ3Y2MzODFjNmEwOWM1
YTk0Li4zYTQ2YjM1MDE4NGU0MzRkMmNkMzY1Y2VmMzg5ZTA5M2U5MjQwNTBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCkBAIC01MzksNyArNTM5LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gcGFyYW1z
LmdwU2NyYXRjaCgwKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGp1bXBUYWJsZSksIHNjcmF0Y2gpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBp
bmRleCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0KENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gsIGlu
ZGV4LCBDQ2FsbEhlbHBlcnM6OlNjYWxlUHRyKSwgc2NyYXRjaCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBqaXQuZmFySnVtcChzY3JhdGNoLCBKU1N3aXRjaFB0clRhZyk7CiAKICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFRoZXNlIGxhYmVscyBhcmUgZ3VhcmFudGVlZCB0byBiZSBwb3B1
bGF0ZWQgYmVmb3JlIGVpdGhlciBsYXRlIHBhdGhzIG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiM182LmNwcAppbmRleCAxMjQwZWI0NWI2MDVlMDVmMzAxM2M3NmUwNjNlNzQ5ODk2ZmI5ZWE0
Li5iNmM2ZTJjYTFmZWMwZjg4MTczNzc5Y2FmYTY1OGJlNDc3YTllOTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzXzYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjNfNi5jcHAKQEAgLTE2NzksNyArMTY3OSw3IEBAIHZvaWQgdGVzdElu
dGVycHJldGVyKCkKICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gcGFyYW1zLmdwU2NyYXRj
aCgwKTsKIAogICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KGp1bXBUYWJsZSksIHNjcmF0Y2gpOwotICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBl
cnM6OkJhc2VJbmRleChzY3JhdGNoLCBwYXJhbXNbMF0uZ3ByKCksIENDYWxsSGVscGVyczo6dGlt
ZXNQdHIoKSksIHNjcmF0Y2gpOworICAgICAgICAgICAgaml0LmxvYWQ2NChDQ2FsbEhlbHBlcnM6
OkJhc2VJbmRleChzY3JhdGNoLCBwYXJhbXNbMF0uZ3ByKCksIENDYWxsSGVscGVyczo6U2NhbGVQ
dHIpLCBzY3JhdGNoKTsKICAgICAgICAgICAgIGppdC5mYXJKdW1wKHNjcmF0Y2gsIEIzQ29tcGls
YXRpb25QdHJUYWcpOwogCiAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDg4YWJlMGUz
Yjg2MDMzYzVhZTM3ZTIxNDM4NWU3YTAzMzFiMjcwNDEuLjY4OGI2NGNjMjNmNGI0ODE0NTBhNjll
ZjhhMDVhODEzNGNiOGExYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMTI0Myw3ICsxMTI0Myw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmVtaXRTd2l0Y2hJbnRKdW1wKAogICAgICAgICBtX2ppdC5icmFuY2gzMihKSVRDb21w
aWxlcjo6QWJvdmVPckVxdWFsLCB2YWx1ZSwgSW1tMzIodGFibGUuY3RpT2Zmc2V0cy5zaXplKCkp
KSwKICAgICAgICAgZGF0YS0+ZmFsbFRocm91Z2guYmxvY2spOwogICAgIG1faml0Lm1vdmUoVHJ1
c3RlZEltbVB0cih0YWJsZS5jdGlPZmZzZXRzLmJlZ2luKCkpLCBzY3JhdGNoKTsKLSAgICBtX2pp
dC5sb2FkUHRyKEpJVENvbXBpbGVyOjpCYXNlSW5kZXgoc2NyYXRjaCwgdmFsdWUsIEpJVENvbXBp
bGVyOjp0aW1lc1B0cigpKSwgc2NyYXRjaCk7CisgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxl
cjo6QmFzZUluZGV4KHNjcmF0Y2gsIHZhbHVlLCBKSVRDb21waWxlcjo6U2NhbGVQdHIpLCBzY3Jh
dGNoKTsKICAgICAKICAgICBtX2ppdC5mYXJKdW1wKHNjcmF0Y2gsIEpTU3dpdGNoUHRyVGFnKTsK
ICAgICBkYXRhLT5kaWRVc2VKdW1wVGFibGUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDdhN2NkNTg5NDFjOTM4ZWFjM2IzM2Yw
MjA5MjU3NmQyMjk5ZmU2NWMuLmJhMjFlYzE3NjdlZjZkOGU0YzY1OTYwNWU5NzQ2YmJmNWZjYjQ5
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAK
QEAgLTM4Miw3ICszODIsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6ZW1pdExvYWRTdHJ1Y3R1
cmUoVk0mIHZtLCBSZWdpc3RlcklEIHNvdXJjZSwgUmVnaXN0ZXJJRCBkZQogICAgIGxvYWQzMihN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzb3VyY2UsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQo
KSksIHNjcmF0Y2gyKTsKICAgICBsb2FkUHRyKHZtLmhlYXAuc3RydWN0dXJlSURUYWJsZSgpLmJh
c2UoKSwgc2NyYXRjaCk7CiAgICAgcnNoaWZ0MzIoc2NyYXRjaDIsIFRydXN0ZWRJbW0zMihTdHJ1
Y3R1cmVJRFRhYmxlOjpzX251bWJlck9mRW50cm9weUJpdHMpLCBkZXN0KTsKLSAgICBsb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc2NyYXRjaCwgZGVzdCwgTWFjcm9Bc3NlbWJsZXI6
OlRpbWVzRWlnaHQpLCBkZXN0KTsKKyAgICBsb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc2NyYXRjaCwgZGVzdCwgTWFjcm9Bc3NlbWJsZXI6OlNjYWxlUHRyKSwgZGVzdCk7CiAgICAg
bHNoaWZ0UHRyKFRydXN0ZWRJbW0zMihTdHJ1Y3R1cmVJRFRhYmxlOjpzX2VudHJvcHlCaXRzU2hp
ZnRGb3JTdHJ1Y3R1cmVQb2ludGVyKSwgc2NyYXRjaDIpOwogICAgIHhvclB0cihzY3JhdGNoMiwg
ZGVzdCk7CiAjZWxzZSAvLyBub3QgVVNFKEpTVkFMVUU2NCkKQEAgLTU3Miw3ICs1NzIsNyBAQCB2
b2lkIEFzc2VtYmx5SGVscGVyczo6ZW1pdEFsbG9jYXRlVmFyaWFibGVTaXplZChHUFJSZWcgcmVz
dWx0R1BSLCBDb21wbGV0ZVN1YnNwYQogICAgIHVyc2hpZnQzMihUcnVzdGVkSW1tMzIoc3RlcFNo
aWZ0KSwgc2NyYXRjaEdQUjEpOwogICAgIHNsb3dQYXRoLmFwcGVuZChicmFuY2gzMihBYm92ZSwg
c2NyYXRjaEdQUjEsIFRydXN0ZWRJbW0zMihNYXJrZWRTcGFjZTo6bGFyZ2VDdXRvZmYgPj4gc3Rl
cFNoaWZ0KSkpOwogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihzdWJzcGFjZS5hbGxvY2F0b3JGb3JT
aXplU3RlcCgpKSwgc2NyYXRjaEdQUjIpOwotICAgIGxvYWRQdHIoQmFzZUluZGV4KHNjcmF0Y2hH
UFIyLCBzY3JhdGNoR1BSMSwgdGltZXNQdHIoKSksIHNjcmF0Y2hHUFIxKTsKKyAgICBsb2FkUHRy
KEJhc2VJbmRleChzY3JhdGNoR1BSMiwgc2NyYXRjaEdQUjEsIFNjYWxlUHRyKSwgc2NyYXRjaEdQ
UjEpOwogICAgIAogICAgIGVtaXRBbGxvY2F0ZShyZXN1bHRHUFIsIEpJVEFsbG9jYXRvcjo6dmFy
aWFibGUoKSwgc2NyYXRjaEdQUjEsIHNjcmF0Y2hHUFIyLCBzbG93UGF0aCk7CiB9CkBAIC02MDgs
MTEgKzYwOCw5IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpyZXN0b3JlQ2FsbGVlU2F2ZXNGcm9t
RW50cnlGcmFtZUNhbGxlZVNhdmVzQnVmZmVyKEVudHJ5RnJhCiAgICAgICAgIFJlZ2lzdGVyQXRP
ZmZzZXQgZW50cnkgPSBhbGxDYWxsZWVTYXZlcy0+YXQoaSk7CiAgICAgICAgIGlmIChkb250UmVz
dG9yZVJlZ2lzdGVycy5nZXQoZW50cnkucmVnKCkpKQogICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIGlmIChlbnRyeS5yZWcoKS5pc0dQUigpKSB7Ci0gICAgICAgICAgICBpZiAoaSAhPSBz
Y3JhdGNoR1BSRW50cnlJbmRleCkKLSAgICAgICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3Moc2Ny
YXRjaCwgZW50cnkub2Zmc2V0KCkpLCBlbnRyeS5yZWcoKS5ncHIoKSk7Ci0gICAgICAgIH0gZWxz
ZQotICAgICAgICAgICAgbG9hZERvdWJsZShBZGRyZXNzKHNjcmF0Y2gsIGVudHJ5Lm9mZnNldCgp
KSwgZW50cnkucmVnKCkuZnByKCkpOworICAgICAgICBpZiAoaSA9PSBzY3JhdGNoR1BSRW50cnlJ
bmRleCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBsb2FkUmVnKEFkZHJlc3Moc2Ny
YXRjaCwgZW50cnkub2Zmc2V0KCkpLCBlbnRyeS5yZWcoKSk7CiAgICAgfQogCiAgICAgLy8gUmVz
dG9yZSB0aGUgY2FsbGVlIHNhdmUgdmFsdWUgb2YgdGhlIHNjcmF0Y2guCkBAIC02MjAsNyArNjE4
LDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OnJlc3RvcmVDYWxsZWVTYXZlc0Zyb21FbnRyeUZy
YW1lQ2FsbGVlU2F2ZXNCdWZmZXIoRW50cnlGcmEKICAgICBBU1NFUlQoIWRvbnRSZXN0b3JlUmVn
aXN0ZXJzLmdldChlbnRyeS5yZWcoKSkpOwogICAgIEFTU0VSVChlbnRyeS5yZWcoKS5pc0dQUigp
KTsKICAgICBBU1NFUlQoc2NyYXRjaCA9PSBlbnRyeS5yZWcoKS5ncHIoKSk7Ci0gICAgbG9hZFB0
cihBZGRyZXNzKHNjcmF0Y2gsIGVudHJ5Lm9mZnNldCgpKSwgc2NyYXRjaCk7CisgICAgbG9hZFJl
ZyhBZGRyZXNzKHNjcmF0Y2gsIGVudHJ5Lm9mZnNldCgpKSwgc2NyYXRjaCk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTSh0b3BFbnRyeUZyYW1lKTsKICNlbmRpZgpAQCAtOTg4LDEwICs5ODYsNyBA
QCB2b2lkIEFzc2VtYmx5SGVscGVyczo6Y29weUNhbGxlZVNhdmVzVG9FbnRyeUZyYW1lQ2FsbGVl
U2F2ZXNCdWZmZXJJbXBsKEdQUlJlZyBjYQogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5
ID0gYWxsQ2FsbGVlU2F2ZXMtPmF0KGkpOwogICAgICAgICBpZiAoZG9udENvcHlSZWdpc3RlcnMu
Z2V0KGVudHJ5LnJlZygpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoZW50
cnkucmVnKCkuaXNHUFIoKSkKLSAgICAgICAgICAgIHN0b3JlUHRyKGVudHJ5LnJlZygpLmdwcigp
LCBBZGRyZXNzKGNhbGxlZVNhdmVzQnVmZmVyLCBlbnRyeS5vZmZzZXQoKSkpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBzdG9yZURvdWJsZShlbnRyeS5yZWcoKS5mcHIoKSwgQWRkcmVzcyhj
YWxsZWVTYXZlc0J1ZmZlciwgZW50cnkub2Zmc2V0KCkpKTsKKyAgICAgICAgc3RvcmVSZWcoZW50
cnkucmVnKCksIEFkZHJlc3MoY2FsbGVlU2F2ZXNCdWZmZXIsIGVudHJ5Lm9mZnNldCgpKSk7CiAg
ICAgfQogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY2FsbGVlU2F2ZXNCdWZmZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggMDYzYjhiZjY0NGFj
MjU5MGRhNTQ2YjY0OWE4MjdiNzVlMTA3ODE1ZC4uMDNmMzhhMzQ2ZDUxNmU3ODQ0N2YxZGU0NmFk
ZmFlODQzZWI3OGNiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCkBAIC0xMDIsNiArMTAyLDE1IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHN0b3JlMzIo
c3JjLmdwcigpLCBkc3QpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVSZWcoUmVnIHNyYywgQWRk
cmVzcyBkc3QpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHN0b3JlNjRGcm9t
UmVnKHNyYywgZHN0KTsKKyNlbHNlCisgICAgICAgIHN0b3JlMzJGcm9tUmVnKHNyYywgZHN0KTsK
KyNlbmRpZgorICAgIH0KKwogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgdm9pZCBsb2FkNjRUb1Jl
ZyhBZGRyZXNzIHNyYywgUmVnIGRzdCkKICAgICB7CkBAIC0xMjAsNiArMTI5LDE1IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIGxvYWQzMihzcmMsIGRzdC5ncHIoKSk7CiAgICAgfQogCisgICAgdm9p
ZCBsb2FkUmVnKEFkZHJlc3Mgc3JjLCBSZWcgZHN0KQorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgICAgICBsb2FkNjRUb1JlZyhzcmMsIGRzdCk7CisjZWxzZQorICAgICAgICBsb2FkMzJU
b1JlZyhzcmMsIGRzdCk7CisjZW5kaWYKKyAgICB9CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogICAgIHZvaWQgc3RvcmVDZWxsKFQgY2VsbCwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKQEAg
LTQ5OCw3ICs1MTYsNyBAQCBwdWJsaWM6CiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgIG1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjpOdW1iZXJUYWcp
LCBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3Rlcik7Ci0gICAgICAgIG9yUHRyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6T3RoZXJUYWcpLCBHUFJJbmZvOjpudW1iZXJUYWdS
ZWdpc3RlciwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CisgICAgICAgIG9yNjQoTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpPdGhlclRhZyksIEdQUkluZm86Om51
bWJlclRhZ1JlZ2lzdGVyLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKICNlbmRpZgog
ICAgIH0KIApAQCAtNjI1LDI1ICs2NDMsMzAgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbWl0R2V0
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihWaXJ0dWFsUmVnaXN0ZXIgZW50cnksIEdQUlJlZyB0bywg
R1BSUmVnIGZyb20gPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcikKICAgICB7CisgICAgICAg
IEFTU0VSVChlbnRyeS5pc0hlYWRlcigpKTsKICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGZyb20s
IGVudHJ5Lm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIHRvKTsKICAgICB9CiAgICAgdm9p
ZCBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjMyKFZpcnR1YWxSZWdpc3RlciBlbnRyeSwgR1BS
UmVnIHRvLCBHUFJSZWcgZnJvbSA9IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyKQogICAgIHsK
KyAgICAgICAgQVNTRVJUKGVudHJ5LmlzSGVhZGVyKCkpOwogICAgICAgICBsb2FkMzIoQWRkcmVz
cyhmcm9tLCBlbnRyeS5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikpLCB0byk7CiAgICAgfQog
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgdm9pZCBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlcjY0
KFZpcnR1YWxSZWdpc3RlciBlbnRyeSwgR1BSUmVnIHRvLCBHUFJSZWcgZnJvbSA9IEdQUkluZm86
OmNhbGxGcmFtZVJlZ2lzdGVyKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGVudHJ5LmlzSGVhZGVy
KCkpOwogICAgICAgICBsb2FkNjQoQWRkcmVzcyhmcm9tLCBlbnRyeS5vZmZzZXQoKSAqIHNpemVv
ZihSZWdpc3RlcikpLCB0byk7CiAgICAgfQogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAgICAg
dm9pZCBlbWl0UHV0VG9DYWxsRnJhbWVIZWFkZXIoR1BSUmVnIGZyb20sIFZpcnR1YWxSZWdpc3Rl
ciBlbnRyeSkKICAgICB7CisgICAgICAgIEFTU0VSVChlbnRyeS5pc0hlYWRlcigpKTsKICAgICAg
ICAgc3RvcmVQdHIoZnJvbSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgZW50
cnkub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSk7CiAgICAgfQogCiAgICAgdm9pZCBlbWl0
UHV0VG9DYWxsRnJhbWVIZWFkZXIodm9pZCogdmFsdWUsIFZpcnR1YWxSZWdpc3RlciBlbnRyeSkK
ICAgICB7CisgICAgICAgIEFTU0VSVChlbnRyeS5pc0hlYWRlcigpKTsKICAgICAgICAgc3RvcmVQ
dHIoVHJ1c3RlZEltbVB0cih2YWx1ZSksIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIGVudHJ5Lm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSkpOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDcxY2Y5OWU5
OTA0OGJhNjRmYjk1MTRjZTZiYTVhOTEwNmMwZGE2NzMuLmU2ZjIzNTE1OTc4NzEwZWViYzU2MWFj
OTgwNDQxOThmZTE5Zjc0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMzMl82NC5jcHAKQEAgLTEzMjAsNyArMTMyMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2Vu
dW1lcmF0b3Jfc3RydWN0dXJlX3BuYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3RpCiAgICAgaW5Cb3VuZHMubGluayh0aGlzKTsKIAogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdU
MSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjYWNoZWRQcm9wZXJ0eU5hbWVzVmVjdG9yT2Zm
c2V0KCkpLCByZWdUMSk7Ci0gICAgbG9hZFB0cihCYXNlSW5kZXgocmVnVDEsIHJlZ1QwLCB0aW1l
c1B0cigpKSwgcmVnVDApOworICAgIGxvYWRQdHIoQmFzZUluZGV4KHJlZ1QxLCByZWdUMCwgU2Nh
bGVQdHIpLCByZWdUMCk7CiAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyks
IHJlZ1QyKTsKIAogICAgIGRvbmUubGluayh0aGlzKTsKQEAgLTEzNDUsNyArMTM0NSw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2VuZXJpY19wbmFtZShjb25zdCBJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uCiAgICAgaW5Cb3VuZHMubGluayh0aGlzKTsKIAogICAgIGxv
YWRQdHIoQWRkcmVzcyhyZWdUMSwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjYWNoZWRQcm9w
ZXJ0eU5hbWVzVmVjdG9yT2Zmc2V0KCkpLCByZWdUMSk7Ci0gICAgbG9hZFB0cihCYXNlSW5kZXgo
cmVnVDEsIHJlZ1QwLCB0aW1lc1B0cigpKSwgcmVnVDApOworICAgIGxvYWRQdHIoQmFzZUluZGV4
KHJlZ1QxLCByZWdUMCwgU2NhbGVQdHIpLCByZWdUMCk7CiAgICAgbW92ZShUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1QyKTsKICAgICAKICAgICBkb25lLmxpbmsodGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKaW5kZXggNjlm
YjdjYjJkMjM0MmEwNTZhN2Y2ZWY4ZWU5OTc0YjlmY2M5YjU2Zi4uNjI2MWQwNGQ5MWM2YzU0OWYy
ZGQwZjY5MzBmNGJhOWNhNmU1MmU3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
VGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtMzAyLDggKzMwMiw4IEBAIHN0YXRpYyBNYWNyb0Fzc2Vt
YmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IG5hdGl2ZUZvckdlbmVyYXRvcihWTSYgdm0sIFRo
dW5rRnVuCiAKICAgICAvLyBDaGVjayBmb3IgYW4gZXhjZXB0aW9uCiAjaWYgVVNFKEpTVkFMVUU2
NCkKLSAgICBqaXQubG9hZDY0KHZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBKU0ludGVyZmFjZUpJ
VDo6cmVnVDIpOwotICAgIEpTSW50ZXJmYWNlSklUOjpKdW1wIGV4Y2VwdGlvbkhhbmRsZXIgPSBq
aXQuYnJhbmNoVGVzdDY0KEpTSW50ZXJmYWNlSklUOjpOb25aZXJvLCBKU0ludGVyZmFjZUpJVDo6
cmVnVDIpOworICAgIGppdC5sb2FkUHRyKHZtLmFkZHJlc3NPZkV4Y2VwdGlvbigpLCBKU0ludGVy
ZmFjZUpJVDo6cmVnVDIpOworICAgIEpTSW50ZXJmYWNlSklUOjpKdW1wIGV4Y2VwdGlvbkhhbmRs
ZXIgPSBqaXQuYnJhbmNoVGVzdFB0cihKU0ludGVyZmFjZUpJVDo6Tm9uWmVybywgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QyKTsKICNlbHNlCiAgICAgSlNJbnRlcmZhY2VKSVQ6Okp1bXAgZXhjZXB0aW9u
SGFuZGxlciA9IGppdC5icmFuY2gzMigKICAgICAgICAgSlNJbnRlcmZhY2VKSVQ6Ok5vdEVxdWFs
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVzdFJ1bm5lclV0
aWxzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Rlc3RSdW5uZXJVdGlscy5j
cHAKaW5kZXggZGM4MWI5Mjg2MWUyOTA5Nzg0ZWI4ODBmZWVlYmFlYjViOTZiMWM2NS4uYWM3YjYx
ZGRkMGExNGEyNTdkYjdiMmI4MDE0OTM2YjYzMGVmY2MwMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVGVzdFJ1bm5lclV0aWxzLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9UZXN0UnVubmVyVXRpbHMuY3BwCkBAIC02NSw3ICs2NSw3IEBA
IEpTVmFsdWUgbnVtYmVyT2ZERkdDb21waWxlcyhKU1ZhbHVlIHRoZUZ1bmN0aW9uVmFsdWUpCiB7
CiAgICAgYm9vbCBwcmV0ZW5kVG9IYXZlTWFueUNvbXBpbGVzID0gZmFsc2U7CiAjaWYgRU5BQkxF
KERGR19KSVQpCi0gICAgaWYgKCFPcHRpb25zOjp1c2VKSVQoKSB8fCAhT3B0aW9uczo6dXNlREZH
SklUKCkpCisgICAgaWYgKCFPcHRpb25zOjp1c2VKSVQoKSB8fCAhT3B0aW9uczo6dXNlQmFzZWxp
bmVKSVQoKSB8fCAhT3B0aW9uczo6dXNlREZHSklUKCkpCiAgICAgICAgIHByZXRlbmRUb0hhdmVN
YW55Q29tcGlsZXMgPSB0cnVlOwogI2Vsc2UKICAgICBwcmV0ZW5kVG9IYXZlTWFueUNvbXBpbGVz
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBp
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRl
eCAxMDY1NTY2Yjk1NjcwM2VkOThkZDQ3ZTNmODM5YWFjY2QzMGViNWY0Li42YmJiNjIxZTg1NzIy
NTU2ZWFkMmMyYTVkOWI3MTRhYTJiM2JlZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1Nl
bGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0zNTAxLDcgKzM1MDEsNyBAQCB2b2lkIFNlbGVjdG9yQ29k
ZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50SGFzQ2xhc3NlcyhBc3NlbWJsZXI6Okp1bXBMaXN0
JiBmYWlsdQogICAgICAgICBBc3NlbWJsZXI6OkxhYmVsIGxvb3BTdGFydChtX2Fzc2VtYmxlci5s
YWJlbCgpKTsKIAogICAgICAgICAvLyBJZiB0aGUgcG9pbnRlcnMgbWF0Y2gsIHByb2NlZWQgdG8g
dGhlIG5leHQgbWF0Y2hlci4KLSAgICAgICAgQXNzZW1ibGVyOjpKdW1wIGNsYXNzRm91bmQgPSBt
X2Fzc2VtYmxlci5icmFuY2hQdHIoQXNzZW1ibGVyOjpFcXVhbCwgQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3BhY2VTcGxpdFN0cmluZ0RhdGEsIGluZGV4UmVnaXN0ZXIsIEFzc2VtYmxlcjo6dGltZXNQ
dHIoKSwgU3BhY2VTcGxpdFN0cmluZ0RhdGE6OnRva2Vuc01lbW9yeU9mZnNldCgpKSwgY2xhc3NO
YW1lVG9NYXRjaCk7CisgICAgICAgIEFzc2VtYmxlcjo6SnVtcCBjbGFzc0ZvdW5kID0gbV9hc3Nl
bWJsZXIuYnJhbmNoUHRyKEFzc2VtYmxlcjo6RXF1YWwsIEFzc2VtYmxlcjo6QmFzZUluZGV4KHNw
YWNlU3BsaXRTdHJpbmdEYXRhLCBpbmRleFJlZ2lzdGVyLCBBc3NlbWJsZXI6OlNjYWxlUHRyLCBT
cGFjZVNwbGl0U3RyaW5nRGF0YTo6dG9rZW5zTWVtb3J5T2Zmc2V0KCkpLCBjbGFzc05hbWVUb01h
dGNoKTsKIAogICAgICAgICAvLyBJbmNyZW1lbnQgdGhlIGluZGV4LgogICAgICAgICBtX2Fzc2Vt
Ymxlci5hZGQzMihBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxKSwgaW5kZXhSZWdpc3Rlcik7CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNj
NGY2YTljYzFiYTMzMWY0MTExMDExOWM4YTNhZTcxOTZlMmRiMjEuLjg1MGMyZDVkYTBmNjUzMzMz
MWU3YjIwZmM3NDQ1OTc4Y2JlYWM0YzkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDYtMTIgIEtlaXRo
IE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgSklUIHRodW5rcyBz
aG91bGQgd29yayBvbiBhcm02NF8zMgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEzMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGku
CisKKyAgICAgICAgc2tpcCB0ZXN0IG9uIG1lbW9yeSBsaW1pdGVkIHNpbmNlIGl0IGJyZWFrcyBv
biB3YXRjaCB3aXRoIEpJVC4KKworICAgICAgICAqIHN0cmVzcy9hcnJheS1idWZmZXItdmlldy13
YXRjaHBvaW50LWNhbi1iZS1maXJlZC1pbi1yZWFsbHktYWRkLWluLWRmZy5qczoKKwogMjAyMC0w
Ni0wOCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAg
W0ludGxdIFVwZGF0ZSB0ZXN0cyB0byBzdXBwb3J0IElDVSA2NwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hwb2ludC1jYW4tYmUtZmlyZWQtaW4tcmVh
bGx5LWFkZC1pbi1kZmcuanMgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS1idWZmZXItdmlldy13YXRj
aHBvaW50LWNhbi1iZS1maXJlZC1pbi1yZWFsbHktYWRkLWluLWRmZy5qcwppbmRleCA3NWFlYmU2
OWJhY2JhNzUwOTNlOTEyNTM4MTU4ZWUyOTAwNjZhZmM5Li5iOWRkOTNmNzY1NzYzMTE3OGFjOGYz
ODdjMWNmNDE1NmJlZGY5M2FkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hcnJheS1idWZm
ZXItdmlldy13YXRjaHBvaW50LWNhbi1iZS1maXJlZC1pbi1yZWFsbHktYWRkLWluLWRmZy5qcwor
KysgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS1idWZmZXItdmlldy13YXRjaHBvaW50LWNhbi1iZS1m
aXJlZC1pbi1yZWFsbHktYWRkLWluLWRmZy5qcwpAQCAtMSwzICsxLDQgQEAKKy8vQCBza2lwIGlm
ICRtZW1vcnlMaW1pdGVkCiAvL0Agc2tpcCBpZiBbImFybSIsICJwb3dlcnBjIiwgInBvd2VycGM2
NCIsICJzMzkwIl0uaW5jbHVkZT8oJGFyY2hpdGVjdHVyZSkgYW5kICRob3N0T1MgPT0gImxpbnV4
IgogLy9AIHJlcXVpcmVPcHRpb25zKCItZSIsICJsZXQgaXRlcmF0aW9ucz00MDAwMCIpIGlmIFsi
bWlwcyJdLmluY2x1ZGU/KCRhcmNoaXRlY3R1cmUpCiAvL0AgcnVuRGVmYXVsdCgiLS1qaXRQb2xp
Y3lTY2FsZT0wIikK
</data>

          </attachment>
      

    </bug>

</bugzilla>