<?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>219201</bug_id>
          
          <creation_ts>2020-11-20 05:45:13 -0800</creation_ts>
          <short_desc>Poor resampling quality when using AudioContext sampleRate parameter</short_desc>
          <delta_ts>2020-12-11 04:13:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>Safari Technology Preview</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="Ashley Gullen">ashley</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1709456</commentid>
    <comment_count>0</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2020-11-20 05:45:13 -0800</bug_when>
    <thetext>Testing Safari TP116 with the new unprefixed Web Audio API. When using the AudioContext constructor&apos;s sampleRate parameter to set a different sampleRate to the default, the playback quality is poor with clear audible glitches. Presumably it&apos;s not correctly resampling the audio output.

Demo URL: https://downloads.scirra.com/labs/bugs/audio-samplerate/

Steps to reproduce:
1. Observe the default sample rate, and select a different sample rate in the dropdown box.
Testing on a 2015 MacBook Pro, the default sample rate is 44100, so in this case I select 48000 as the sample rate to create.

2. Click &quot;Create&quot; to create an AudioContext at the chosen sample rate

3. Click &quot;Play&quot; a few times

Expected result:
Good playback quality regardless of the AudioContext sample rate

Observed result:
Poor playback quality when the AudioContext sample rate is not the default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709457</commentid>
    <comment_count>1</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2020-11-20 05:47:25 -0800</bug_when>
    <thetext>Note this bug also prevents us working around Bug 218261 by changing the AudioContext sample rate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709536</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-20 10:21:08 -0800</bug_when>
    <thetext>I will investigate.

On my machine the default sample rate is 48000. If I select 44100 as sample rate when I create, I don&apos;t have an audio quality problem. I will try and use a higher sample rate than 48000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709538</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-20 10:22:49 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; I will investigate.
&gt; 
&gt; On my machine the default sample rate is 48000. If I select 44100 as sample
&gt; rate when I create, I don&apos;t have an audio quality problem. I will try and
&gt; use a higher sample rate than 48000.

Ok. If I tweak your test case to let me set 80000 as sample rate, I can reproduce the bad audio quality. I will work on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709674</commentid>
    <comment_count>4</comment_count>
      <attachid>414734</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-20 15:00:01 -0800</bug_when>
    <thetext>Created attachment 414734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709679</commentid>
    <comment_count>5</comment_count>
      <attachid>414734</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-20 15:27:02 -0800</bug_when>
    <thetext>Comment on attachment 414734
Patch

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

r=me

&gt; Source/WebCore/ChangeLog:14
&gt; +        called than once per channel and this resulted in very poor resampling quality.

called than =&gt; called more than

&gt; Source/WebCore/platform/audio/MultiChannelResampler.cpp:65
&gt;      void provideInput(AudioBus* bus, size_t framesToProcess) override

I feel like setCurrentChannel() and m_currentChannel should just go away; and instead we should pass currentChannel as an argument to this function.

Keeping m_currentChannel as state on the side is a bit of extra mental load, and it invites our caller to call the two functions out of sync.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709683</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-20 15:36:53 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #5)
&gt; Comment on attachment 414734 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=414734&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        called than once per channel and this resulted in very poor resampling quality.
&gt; 
&gt; called than =&gt; called more than
&gt; 
&gt; &gt; Source/WebCore/platform/audio/MultiChannelResampler.cpp:65
&gt; &gt;      void provideInput(AudioBus* bus, size_t framesToProcess) override
&gt; 
&gt; I feel like setCurrentChannel() and m_currentChannel should just go away;
&gt; and instead we should pass currentChannel as an argument to this function.
&gt; 
&gt; Keeping m_currentChannel as state on the side is a bit of extra mental load,
&gt; and it invites our caller to call the two functions out of sync.

I agree. The thing is that provideInput() is part of a generic interface that is used for many things so I cannot easily change its parameters. I will see if I can add an overload to SincResampler that takes in a lambda instead of a client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709695</commentid>
    <comment_count>7</comment_count>
      <attachid>414743</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-20 16:15:31 -0800</bug_when>
    <thetext>Created attachment 414743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709717</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-20 17:46:19 -0800</bug_when>
    <thetext>Committed r270141: &lt;https://trac.webkit.org/changeset/270141&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414743.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709718</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-20 17:47:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/71648006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709808</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-21 19:04:13 -0800</bug_when>
    <thetext>Reverted r270141 for reason:

Caused assertions on bots

Committed r270155: &lt;https://trac.webkit.org/changeset/270155&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709809</commentid>
    <comment_count>11</comment_count>
      <attachid>414780</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-21 19:37:58 -0800</bug_when>
    <thetext>Created attachment 414780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709816</commentid>
    <comment_count>12</comment_count>
      <attachid>414780</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-21 20:51:38 -0800</bug_when>
    <thetext>Comment on attachment 414780
Patch

Clearing flags on attachment: 414780

Committed r270157: &lt;https://trac.webkit.org/changeset/270157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709817</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-21 20:51:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713879</commentid>
    <comment_count>14</comment_count>
    <who name="Ashley Gullen">ashley</who>
    <bug_when>2020-12-11 04:13:23 -0800</bug_when>
    <thetext>Can confirm it works well now in TP117. Thanks for the fix! This also gives us a workaround to make use of ConvolverNode when using a WebAssembly Opus decoder outputting 48KHz buffers.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414734</attachid>
            <date>2020-11-20 15:00:01 -0800</date>
            <delta_ts>2020-11-20 16:15:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219201-20201120150000.patch</filename>
            <type>text/plain</type>
            <size>13734</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJlZGVjZmZmOTY4ZjNh
ZGExM2FiZjBiYmEzNjk0NDM3OTUxYjgwYS4uZmVlMTc4MDRhZmJiOWYyZDM1MzIzYmUxYmE0ZjAw
MjM3MjkyOTU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTExLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9vciByZXNhbXBsaW5nIHF1
YWxpdHkgd2hlbiB1c2luZyBBdWRpb0NvbnRleHQgc2FtcGxlUmF0ZSBwYXJhbWV0ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTIwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE11bHRpQ2hhbm5lbFJl
c2FtcGxlciB1c2VzIGEgU2luY1Jlc2FtcGxlciBwZXIgYXVkaW8gY2hhbm5lbC4gSW4gTXVsdGlD
aGFubmVsUmVzYW1wbGVyOjpwcm9jZXNzKCksCisgICAgICAgIGl0IHdhcyBjYWxsaW5nIFNpbmNS
ZXNhbXBsZXI6OnByb2Nlc3MoKSBmb3IgZWFjaCBjaGFubmVsLCB3aGljaCB3b3VsZCBwb3RlbnRp
YWxseSBlbmQgdXAgY2FsbGluZworICAgICAgICBNdWx0aUNoYW5uZWxSZXNhbXBsZXI6OkNoYW5u
ZWxQcm92aWRlcjo6cHJvdmlkZUlucHV0KCkgdG8gcHJvdmlkZSBjaGFubmVsIGRhdGEgdXNlZCBm
b3IgcmVzYW1wbGluZy4KKyAgICAgICAgVGhlIGlzc3VlIHdhcyB0aGF0IE11bHRpQ2hhbm5lbFJl
c2FtcGxlcjo6Q2hhbm5lbFByb3ZpZGVyOjpwcm92aWRlSW5wdXQoKSBpcyBpbXBsZW1lbnRlZCBp
biBzdWNoCisgICAgICAgIGEgd2F5IHRoYXQgdGhpbmdzIHdpbGwgYnJlYWsgaWYgcHJvdmlkZUlu
cHV0KCkgZ2V0cyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UgcGVyIGNoYW5uZWwuIFdoZW4gdXNpbmcK
KyAgICAgICAgYW4gQXVkaW9Db250ZXh0J3Mgc2FtcGxlIHJhdGUgbGFyZ2VyIHRoYW4gdGhlIGhh
cmR3YXJlIHNhbXBsZSByYXRlLCBwcm92aWRlSW5wdXQoKSB3YXMgZ2V0dGluZworICAgICAgICBj
YWxsZWQgdGhhbiBvbmNlIHBlciBjaGFubmVsIGFuZCB0aGlzIHJlc3VsdGVkIGluIHZlcnkgcG9v
ciByZXNhbXBsaW5nIHF1YWxpdHkuCisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGUgaXNzdWUsIE11
bHRpQ2hhbm5lbFJlc2FtcGxlcjo6cHJvY2VzcygpIG5vdyBwcm9jZXNzZXMgdGhlIGRhdGEgaW4g
Y2h1bmtzIHRoYXQKKyAgICAgICAgYXJlIHNtYWxsIGVub3VnaCB0byBndWFyYW50ZWUgdGhhdCBN
dWx0aUNoYW5uZWxSZXNhbXBsZXI6OkNoYW5uZWxQcm92aWRlcjo6cHJvdmlkZUlucHV0KCkgd2ls
bAorICAgICAgICBuZXZlciBnZXQgY2FsbGVkIG1vcmUgdGhhbiBvbmNlIHBlciBhdWRpbyBjaGFu
bmVsLgorCisgICAgICAgIFRoZSBmaXggaXMgYmFzZWQgb24gdGhlIGNvcnJlc3BvbmRpbmcgTXVs
dGlDaGFubmVsUmVzYW1wbGVyIC8gU2luY1Jlc2FtcGxlciBpbXBsZW1lbnRhdGlvbiBpbgorICAg
ICAgICBDaHJvbWU6CisgICAgICAgIC0gaHR0cHM6Ly9naXRodWIuY29tL2Nocm9taXVtL2Nocm9t
aXVtL2Jsb2IvbWFzdGVyL21lZGlhL2Jhc2UvbXVsdGlfY2hhbm5lbF9yZXNhbXBsZXIuY2MKKyAg
ICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vY2hyb21pdW0vY2hyb21pdW0vYmxvYi9tYXN0ZXIv
bWVkaWEvYmFzZS9zaW5jX3Jlc2FtcGxlci5jYworCisgICAgICAgIFRlc3RzOiB3ZWJhdWRpby9h
dWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxlcmF0ZS5odG1sCisgICAgICAgICAgICAgICB3ZWJhdWRp
by9hdWRpb2NvbnRleHQtbG93LXNhbXBsZXJhdGUuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11bHRp
Q2hhbm5lbFJlc2FtcGxlcjo6Q2hhbm5lbFByb3ZpZGVyOjpzZXRQcm92aWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpNdWx0aUNoYW5uZWxSZXNhbXBsZXI6OkNoYW5uZWxQcm92aWRlcjo6c2V0Q3Vy
cmVudENoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6TXVsdGlDaGFubmVsUmVzYW1wbGVyOjpw
cm9jZXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNhbGN1bGF0ZUNodW5rU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW5jUmVz
YW1wbGVyOjp1cGRhdGVSZWdpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9TaW5jUmVz
YW1wbGVyLmg6CisKIDIwMjAtMTEtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoKSBtYXkgZ2V0IGNhbGxl
ZCBvbiBub24tYXVkaW8gd29ya2xldCB0aHJlYWQgYW5kIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcAppbmRl
eCA4NGVmYWIxNjMxYjFhNjZjZjY1MTljMWEyYjYzZTk2OWMyNmRlZjAzLi4yMjhkNzJjOTViOWRm
YzI1ZmQwMDU1MmQ1ODg1ZWY2ZDEzZGNkNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAKQEAgLTQ4LDE1ICs0
OCwyOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFByb3ZpZGVyKEF1ZGlvU291cmNlUHJvdmlk
ZXIqIG11bHRpQ2hhbm5lbFByb3ZpZGVyKQogICAgIHsKLSAgICAgICAgbV9jdXJyZW50Q2hhbm5l
bCA9IDA7CiAgICAgICAgIG1fZnJhbWVzVG9Qcm9jZXNzID0gMDsKICAgICAgICAgbV9tdWx0aUNo
YW5uZWxQcm92aWRlciA9IG11bHRpQ2hhbm5lbFByb3ZpZGVyOwogICAgIH0KIAorICAgIHZvaWQg
c2V0Q3VycmVudENoYW5uZWwodW5zaWduZWQgY3VycmVudENoYW5uZWwpCisgICAgeworICAgICAg
ICBtX2N1cnJlbnRDaGFubmVsID0gY3VycmVudENoYW5uZWw7CisjaWYgQVNTRVJUX0VOQUJMRUQK
KyAgICAgICAgbV93YXNQcm92aWRlSW5wdXRDYWxsZWRGb3JDaGFubmVsID0gZmFsc2U7CisjZW5k
aWYKKyAgICB9CisKICAgICAvLyBwcm92aWRlSW5wdXQoKSB3aWxsIGJlIGNhbGxlZCBvbmNlIGZv
ciBlYWNoIGNoYW5uZWwsIHN0YXJ0aW5nIHdpdGggdGhlIGZpcnN0IGNoYW5uZWwuCiAgICAgLy8g
RWFjaCB0aW1lIGl0J3MgY2FsbGVkLCBpdCB3aWxsIHByb3ZpZGUgdGhlIG5leHQgY2hhbm5lbCBv
ZiBkYXRhLgogICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCiAgICAgeworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgICAg
IC8vIHByb3ZpZGVJbnB1dCgpIHNob3VsZCBvbmx5IGdldCBjYWxsZWQgb25jZSBwZXIgY2hhbm5l
bC4KKyAgICAgICAgQVNTRVJUKCFtX3dhc1Byb3ZpZGVJbnB1dENhbGxlZEZvckNoYW5uZWwpOwor
ICAgICAgICBtX3dhc1Byb3ZpZGVJbnB1dENhbGxlZEZvckNoYW5uZWwgPSB0cnVlOworI2VuZGlm
CisKICAgICAgICAgYm9vbCBpc0J1c0dvb2QgPSBidXMgJiYgYnVzLT5udW1iZXJPZkNoYW5uZWxz
KCkgPT0gMTsKICAgICAgICAgQVNTRVJUKGlzQnVzR29vZCk7CiAgICAgICAgIGlmICghaXNCdXNH
b29kKQpAQCAtNzcsMTEgKzkwLDggQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIC8vIENvcHkgdGhlIGNoYW5uZWwgZGF0YSBmcm9tIHdoYXQgd2UgcmVjZWl2ZWQgZnJv
bSBtX211bHRpQ2hhbm5lbFByb3ZpZGVyLgotICAgICAgICBBU1NFUlQobV9jdXJyZW50Q2hhbm5l
bCA8PSBtX251bWJlck9mQ2hhbm5lbHMpOwotICAgICAgICBpZiAobV9jdXJyZW50Q2hhbm5lbCA8
IG1fbnVtYmVyT2ZDaGFubmVscykgewotICAgICAgICAgICAgbWVtY3B5KGJ1cy0+Y2hhbm5lbCgw
KS0+bXV0YWJsZURhdGEoKSwgbV9tdWx0aUNoYW5uZWxCdXMtPmNoYW5uZWwobV9jdXJyZW50Q2hh
bm5lbCktPmRhdGEoKSwgc2l6ZW9mKGZsb2F0KSAqIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgICAg
ICAgICArK21fY3VycmVudENoYW5uZWw7Ci0gICAgICAgIH0KKyAgICAgICAgQVNTRVJUKG1fY3Vy
cmVudENoYW5uZWwgPCBtX251bWJlck9mQ2hhbm5lbHMpOworICAgICAgICBtZW1jcHkoYnVzLT5j
aGFubmVsKDApLT5tdXRhYmxlRGF0YSgpLCBtX211bHRpQ2hhbm5lbEJ1cy0+Y2hhbm5lbChtX2N1
cnJlbnRDaGFubmVsKS0+ZGF0YSgpLCBzaXplb2YoZmxvYXQpICogZnJhbWVzVG9Qcm9jZXNzKTsK
ICAgICB9CiAKIHByaXZhdGU6CkBAIC05MCw2ICsxMDAsOSBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fbnVtYmVyT2ZDaGFubmVscyB7IDAgfTsKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRDaGFu
bmVsIHsgMCB9OwogICAgIHNpemVfdCBtX2ZyYW1lc1RvUHJvY2VzcyB7IDAgfTsgLy8gVXNlZCB0
byB2ZXJpZnkgdGhhdCBhbGwgY2hhbm5lbHMgYXNrIGZvciB0aGUgc2FtZSBhbW91bnQuCisjaWYg
QVNTRVJUX0VOQUJMRUQKKyAgICBib29sIG1fd2FzUHJvdmlkZUlucHV0Q2FsbGVkRm9yQ2hhbm5l
bCB7IGZhbHNlIH07IC8vIFVzZWQgdG8gdmVyaWZ5IHRoYXQgcHJvdmlkZUlucHV0KCkgaXMgb25s
eSBjYWxsZWQgb25jZSBwZXIgY2hhbm5lbC4KKyNlbmRpZgogfTsKIAogTXVsdGlDaGFubmVsUmVz
YW1wbGVyOjpNdWx0aUNoYW5uZWxSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFjdG9yLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBPcHRpb25hbDx1bnNpZ25lZD4gcmVxdWVzdEZyYW1lcykKQEAg
LTExMiwxNCArMTI1LDIxIEBAIHZvaWQgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm9jZXNzKEF1
ZGlvU291cmNlUHJvdmlkZXIqIHByb3ZpZGVyLCBBdWRpb0J1cyogZGVzCiAgICAgLy8gY2hhbm5l
bFByb3ZpZGVyIHdyYXBzIHRoZSBvcmlnaW5hbCBtdWx0aS1jaGFubmVsIHByb3ZpZGVyIGFuZCBk
aXNoZXMgb3V0IG9uZSBjaGFubmVsIGF0IGEgdGltZS4KICAgICBtX2NoYW5uZWxQcm92aWRlci0+
c2V0UHJvdmlkZXIocHJvdmlkZXIpOwogCi0gICAgZm9yICh1bnNpZ25lZCBjaGFubmVsSW5kZXgg
PSAwOyBjaGFubmVsSW5kZXggPCBtX251bWJlck9mQ2hhbm5lbHM7ICsrY2hhbm5lbEluZGV4KSB7
Ci0gICAgICAgIC8vIERlcGVuZGluZyBvbiB0aGUgc2FtcGxlLXJhdGUgc2NhbGUgZmFjdG9yLCBh
bmQgdGhlIGludGVybmFsIGJ1ZmZlcmluZyB1c2VkIGluIGEgU2luY1Jlc2FtcGxlcgotICAgICAg
ICAvLyBrZXJuZWwsIHRoaXMgY2FsbCB0byBwcm9jZXNzKCkgd2lsbCBvbmx5IHNvbWV0aW1lcyBj
YWxsIHByb3ZpZGVJbnB1dCgpIG9uIHRoZSBjaGFubmVsUHJvdmlkZXIuCi0gICAgICAgIC8vIEhv
d2V2ZXIsIGlmIGl0IGNhbGxzIHByb3ZpZGVJbnB1dCgpIGZvciB0aGUgZmlyc3QgY2hhbm5lbCwg
dGhlbiBpdCB3aWxsIGNhbGwgaXQgZm9yIHRoZSByZW1haW5pbmcKLSAgICAgICAgLy8gY2hhbm5l
bHMsIHNpbmNlIHRoZXkgYWxsIGJ1ZmZlciBpbiB0aGUgc2FtZSB3YXkgYW5kIGFyZSBwcm9jZXNz
aW5nIHRoZSBzYW1lIG51bWJlciBvZiBmcmFtZXMuCi0gICAgICAgIG1fa2VybmVsc1tjaGFubmVs
SW5kZXhdLT5wcm9jZXNzKG1fY2hhbm5lbFByb3ZpZGVyLmdldCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi0+Y2hhbm5lbChjaGFubmVsSW5k
ZXgpLT5tdXRhYmxlRGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmcmFtZXNUb1Byb2Nlc3MpOworICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgU2lu
Y1Jlc2FtcGxlciBvbmx5IGNhbGxzIHByb3ZpZGVJbnB1dCgpIG9uY2UgZm9yIGVhY2ggY2hhbm5l
bCBvciBpdCB3aWxsIGNvbmZ1c2UgdGhlIGxvZ2ljCisgICAgLy8gaW5zaWRlIENoYW5uZWxQcm92
aWRlci4gVG8gZW5zdXJlIHRoaXMsIHdlIGNodW5rIHRoZSBudW1iZXIgb2YgcmVxdWVzdGVkIGZy
YW1lcyBpbnRvIFNpbmNSZXNhbXBsZXI6OmNodW5rU2l6ZSgpCisgICAgLy8gc2l6ZWQgY2h1bmtz
LiBTaW5jUmVzYW1wbGVyIGd1YXJhbnRlZXMgaXQgd2lsbCBvbmx5IGNhbGwgcHJvdmlkZUlucHV0
KCkgb25jZSBvbmNlIHdlIHJlc2FtcGxlIHRoaXMgd2F5LgorICAgIG1fb3V0cHV0RnJhbWVzUmVh
ZHkgPSAwOworICAgIHdoaWxlIChtX291dHB1dEZyYW1lc1JlYWR5IDwgZnJhbWVzVG9Qcm9jZXNz
KSB7CisgICAgICAgIHNpemVfdCBjaHVua1NpemUgPSBtX2tlcm5lbHNbMF0tPmNodW5rU2l6ZSgp
OworICAgICAgICBzaXplX3QgZnJhbWVzVGhpc1RpbWUgPSBzdGQ6Om1pbihmcmFtZXNUb1Byb2Nl
c3MgLSBtX291dHB1dEZyYW1lc1JlYWR5LCBjaHVua1NpemUpOworCisgICAgICAgIGZvciAodW5z
aWduZWQgY2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbEluZGV4IDwgbV9udW1iZXJPZkNoYW5uZWxz
OyArK2NoYW5uZWxJbmRleCkgeworICAgICAgICAgICAgQVNTRVJUKGNodW5rU2l6ZSA9PSBtX2tl
cm5lbHNbY2hhbm5lbEluZGV4XS0+Y2h1bmtTaXplKCkpOworICAgICAgICAgICAgbV9jaGFubmVs
UHJvdmlkZXItPnNldEN1cnJlbnRDaGFubmVsKGNoYW5uZWxJbmRleCk7CisgICAgICAgICAgICBt
X2tlcm5lbHNbY2hhbm5lbEluZGV4XS0+cHJvY2VzcyhtX2NoYW5uZWxQcm92aWRlci5nZXQoKSwg
ZGVzdGluYXRpb24tPmNoYW5uZWwoY2hhbm5lbEluZGV4KS0+bXV0YWJsZURhdGEoKSArIG1fb3V0
cHV0RnJhbWVzUmVhZHksIGZyYW1lc1RoaXNUaW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIG1f
b3V0cHV0RnJhbWVzUmVhZHkgKz0gZnJhbWVzVGhpc1RpbWU7CiAgICAgfQogCiAgICAgbV9jaGFu
bmVsUHJvdmlkZXItPnNldFByb3ZpZGVyKG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuaAppbmRleCA3MTZiYzYw
MWU4NzhlM2Y3NGY3NGVhMzRkY2JkMWM3OThjNGRkY2E4Li44YWI4YmIzZGE0NTAyNWIzZmM0ZmY1
YWYxMjc2NTE1N2FmOTg5MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuaApAQCAtNTksNiArNTksNyBAQCBwcml2YXRl
OgogCiAgICAgY2xhc3MgQ2hhbm5lbFByb3ZpZGVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDaGFu
bmVsUHJvdmlkZXI+IG1fY2hhbm5lbFByb3ZpZGVyOworICAgIHNpemVfdCBtX291dHB1dEZyYW1l
c1JlYWR5IHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcAppbmRleCAyNjUxYzQ4NzA5
NTc0ZDk4MjNjZmRmZTY5ZTg1ZDcwNjgyZWQwMzkxLi43N2Q3YzY3ZjRjZTUxNmQ3MTBhMDZmMmNj
YjQyNjAwYzUzZTFlOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9TaW5jUmVzYW1wbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9T
aW5jUmVzYW1wbGVyLmNwcApAQCAtMTE1LDYgKzExNSwxMSBAQCBjb25zdGV4cHIgdW5zaWduZWQg
ZGVmYXVsdFJlcXVlc3RGcmFtZXMgeyA1MTIgfTsKIGNvbnN0ZXhwciB1bnNpZ25lZCBrZXJuZWxT
aXplIHsgMzIgfTsKIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZktlcm5lbE9mZnNldHMgeyAz
MiB9OwogCitzdGF0aWMgc2l6ZV90IGNhbGN1bGF0ZUNodW5rU2l6ZSh1bnNpZ25lZCBibG9ja1Np
emUsIGRvdWJsZSBzY2FsZUZhY3RvcikKK3sKKyAgICByZXR1cm4gYmxvY2tTaXplIC8gc2NhbGVG
YWN0b3I7Cit9CisKIFNpbmNSZXNhbXBsZXI6OlNpbmNSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFj
dG9yLCBPcHRpb25hbDx1bnNpZ25lZD4gcmVxdWVzdEZyYW1lcykKICAgICA6IG1fc2NhbGVGYWN0
b3Ioc2NhbGVGYWN0b3IpCiAgICAgLCBtX2tlcm5lbFN0b3JhZ2Uoa2VybmVsU2l6ZSAqIChudW1i
ZXJPZktlcm5lbE9mZnNldHMgKyAxKSkKQEAgLTEzNyw2ICsxNDIsNyBAQCB2b2lkIFNpbmNSZXNh
bXBsZXI6OnVwZGF0ZVJlZ2lvbnMoYm9vbCBpc1NlY29uZExvYWQpCiAgICAgbV9yMyA9IG1fcjAg
KyBtX3JlcXVlc3RGcmFtZXMgLSBrZXJuZWxTaXplOwogICAgIG1fcjQgPSBtX3IwICsgbV9yZXF1
ZXN0RnJhbWVzIC0ga2VybmVsU2l6ZSAvIDI7CiAgICAgbV9ibG9ja1NpemUgPSBtX3I0IC0gbV9y
MjsKKyAgICBtX2NodW5rU2l6ZSA9IGNhbGN1bGF0ZUNodW5rU2l6ZShtX2Jsb2NrU2l6ZSwgbV9z
Y2FsZUZhY3Rvcik7CiAKICAgICAvLyBtX3IxIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJ1ZmZl
ci4KICAgICBBU1NFUlQobV9yMSA9PSBtX2lucHV0QnVmZmVyLmRhdGEoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmgKaW5kZXggOWEyZWRkNmE3Mjhi
MjBiMTI4MzA5YjE2ZGEyNjZmNzUwOTZlOGVjOC4uYWZlMWRkMDVkODg3OGIyZjMxZjlhODlmMTY1
NmVhYWJjODQ4MGMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
U2luY1Jlc2FtcGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNS
ZXNhbXBsZXIuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgLy8gcmVxdWVzdEZyYW1l
cyBjb250cm9scyB0aGUgc2l6ZSBpbiBmcmFtZXMgb2YgdGhlIGJ1ZmZlciByZXF1ZXN0ZWQgYnkg
ZWFjaCBwcm92aWRlSW5wdXQoKSBjYWxsLgogICAgIFNpbmNSZXNhbXBsZXIoZG91YmxlIHNjYWxl
RmFjdG9yLCBPcHRpb25hbDx1bnNpZ25lZD4gcmVxdWVzdEZyYW1lcyA9IFdURjo6bnVsbG9wdCk7
CiAgICAgCisgICAgc2l6ZV90IGNodW5rU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2h1bmtTaXpl
OyB9CisKICAgICAvLyBQcm9jZXNzZXMgbnVtYmVyT2ZTb3VyY2VGcmFtZXMgZnJvbSBzb3VyY2Ug
dG8gcHJvZHVjZSBudW1iZXJPZlNvdXJjZUZyYW1lcyAvIHNjYWxlRmFjdG9yIGZyYW1lcyBpbiBk
ZXN0aW5hdGlvbi4KICAgICB2b2lkIHByb2Nlc3MoY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBudW1iZXJPZlNvdXJjZUZyYW1lcyk7CiAKQEAgLTcyLDYg
Kzc0LDggQEAgcHJvdGVjdGVkOgogICAgIC8vIFRoZSBudW1iZXIgb2Ygc291cmNlIGZyYW1lcyBw
cm9jZXNzZWQgcGVyIHBhc3MuCiAgICAgdW5zaWduZWQgbV9ibG9ja1NpemUgeyAwIH07CiAKKyAg
ICBzaXplX3QgbV9jaHVua1NpemUgeyAwIH07CisKICAgICAvLyBTb3VyY2UgaXMgY29waWVkIGlu
dG8gdGhpcyBidWZmZXIgZm9yIGVhY2ggcHJvY2Vzc2luZyBwYXNzLgogICAgIEF1ZGlvRmxvYXRB
cnJheSBtX2lucHV0QnVmZmVyOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzQ0YThiNjJmYzcyNjY4YWJmZDNmMDU3YzU1
Y2QwZDM2YzFhMTFiMy4uYzRlNjllMjcwODQ1YzUzZjM0ZmExYmY1ZWY4YWQ3ZGY0MmFlNDYyMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTExLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgUG9vciByZXNhbXBsaW5nIHF1YWxpdHkgd2hlbiB1c2luZyBB
dWRpb0NvbnRleHQgc2FtcGxlUmF0ZSBwYXJhbWV0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTIwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZSB0aGF0IHdv
dWxkIGhpdCBhc3NlcnRpb25zIGluIGRlYnVnLgorCisgICAgICAgICogd2ViYXVkaW8vYXVkaW9j
b250ZXh0LWxhcmdlLXNhbXBsZXJhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxlcmF0ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNhbXBsZXJhdGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNhbXBsZXJhdGUuaHRt
bDogQWRkZWQuCisKIDIwMjAtMTEtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoKSBtYXkgZ2V0IGNhbGxl
ZCBvbiBub24tYXVkaW8gd29ya2xldCB0aHJlYWQgYW5kIGNyYXNoCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxlcmF0ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxlcmF0ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VkMTY2NTliYzUyMTZkZWE4MmM5N2YwNDI0MTk1YTM2
MjQ0N2NmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29u
dGV4dC1sYXJnZS1zYW1wbGVyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0
cyB0aGF0IHdlIGRvIG5vdCBjcmFzaCB3aGVuIHVzaW5nIGEgdmVyeSBsYXJnZSBzYW1wbGUgcmF0
ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjb250ZXh0LnNhbXBsZVJh
dGUgaXMgMzg0MDAwCitQQVNTIGNvbnRleHQuc3RhdGUgaXMgInJ1bm5pbmciCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LWxhcmdlLXNhbXBsZXJhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1sYXJnZS1zYW1wbGVyYXRlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTRkMDBhZTdmOGIyMjg4OTlkNmQ2MDJkNmU2NDJhYWMwNDlhMzcwNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1sYXJnZS1zYW1w
bGVyYXRlLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3ZSBkbyBub3QgY3Jhc2ggd2hlbiB1c2lu
ZyBhIHZlcnkgbGFyZ2Ugc2FtcGxlIHJhdGUiKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitj
b250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCh7IHNhbXBsZVJhdGU6IDM4NDAwMCB9KTsKK3Nob3Vs
ZEJlKCJjb250ZXh0LnNhbXBsZVJhdGUiLCAiMzg0MDAwIik7CisKK25vZGUgPSBuZXcgQ29uc3Rh
bnRTb3VyY2VOb2RlKGNvbnRleHQsIHsgb2Zmc2V0OiAwLjUgfSk7Citub2RlLmNvbm5lY3QoY29u
dGV4dC5kZXN0aW5hdGlvbik7Citub2RlLnN0YXJ0KCk7CisKK3NldFRpbWVvdXQoKCkgPT4gewor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY29udGV4dC5zdGF0ZSIsICJydW5uaW5nIik7Cisg
ICAgZmluaXNoSlNUZXN0KCk7Cit9LCAxMDApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNhbXBs
ZXJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LWxv
dy1zYW1wbGVyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTQwMTQyMGJjYzg0YzVlOGEy
ZjUwZjNiMTI2N2JhM2I5NTZjYmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9jb250ZXh0LWxvdy1zYW1wbGVyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0cyB0aGF0IHdlIGRvIG5vdCBjcmFzaCB3aGVuIHVzaW5nIGEgdmVyeSBsb3cg
c2FtcGxlIHJhdGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGV4
dC5zYW1wbGVSYXRlIGlzIDMwMDAKK1BBU1MgY29udGV4dC5zdGF0ZSBpcyAicnVubmluZyIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNhbXBsZXJhdGUuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1sb3ctc2FtcGxlcmF0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFjMTlkMmQzNjZlMzM4MjBiMjlkY2U0YzFiMmNjNWQxZmQwMmI1MjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNh
bXBsZXJhdGUuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdlIGRvIG5vdCBjcmFzaCB3aGVuIHVz
aW5nIGEgdmVyeSBsb3cgc2FtcGxlIHJhdGUiKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitj
b250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCh7IHNhbXBsZVJhdGU6IDMwMDAgfSk7CitzaG91bGRC
ZSgiY29udGV4dC5zYW1wbGVSYXRlIiwgIjMwMDAiKTsKKworbm9kZSA9IG5ldyBDb25zdGFudFNv
dXJjZU5vZGUoY29udGV4dCwgeyBvZmZzZXQ6IDAuNSB9KTsKK25vZGUuY29ubmVjdChjb250ZXh0
LmRlc3RpbmF0aW9uKTsKK25vZGUuc3RhcnQoKTsKKworc2V0VGltZW91dCgoKSA9PiB7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjb250ZXh0LnN0YXRlIiwgInJ1bm5pbmciKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30sIDEwMCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414743</attachid>
            <date>2020-11-20 16:15:31 -0800</date>
            <delta_ts>2020-11-21 19:37:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219201-20201120161531.patch</filename>
            <type>text/plain</type>
            <size>19497</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJlZGVjZmZmOTY4ZjNh
ZGExM2FiZjBiYmEzNjk0NDM3OTUxYjgwYS4uYzI3NmNjNDc2MzdlODFmNGEwY2Q2NzgyMTE2N2M0
MGM3ZTlmZGE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTExLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9vciByZXNhbXBsaW5nIHF1
YWxpdHkgd2hlbiB1c2luZyBBdWRpb0NvbnRleHQgc2FtcGxlUmF0ZSBwYXJhbWV0ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTIwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIE11bHRpQ2hhbm5lbFJlc2Ft
cGxlciB1c2VzIGEgU2luY1Jlc2FtcGxlciBwZXIgYXVkaW8gY2hhbm5lbC4gSW4gTXVsdGlDaGFu
bmVsUmVzYW1wbGVyOjpwcm9jZXNzKCksCisgICAgICAgIGl0IHdhcyBjYWxsaW5nIFNpbmNSZXNh
bXBsZXI6OnByb2Nlc3MoKSBmb3IgZWFjaCBjaGFubmVsLCB3aGljaCB3b3VsZCBwb3RlbnRpYWxs
eSBlbmQgdXAgY2FsbGluZworICAgICAgICBNdWx0aUNoYW5uZWxSZXNhbXBsZXI6OkNoYW5uZWxQ
cm92aWRlcjo6cHJvdmlkZUlucHV0KCkgdG8gcHJvdmlkZSBjaGFubmVsIGRhdGEgdXNlZCBmb3Ig
cmVzYW1wbGluZy4KKyAgICAgICAgVGhlIGlzc3VlIHdhcyB0aGF0IE11bHRpQ2hhbm5lbFJlc2Ft
cGxlcjo6Q2hhbm5lbFByb3ZpZGVyOjpwcm92aWRlSW5wdXQoKSBpcyBpbXBsZW1lbnRlZCBpbiBz
dWNoCisgICAgICAgIGEgd2F5IHRoYXQgdGhpbmdzIHdpbGwgYnJlYWsgaWYgcHJvdmlkZUlucHV0
KCkgZ2V0cyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UgcGVyIGNoYW5uZWwuIFdoZW4gdXNpbmcKKyAg
ICAgICAgYW4gQXVkaW9Db250ZXh0J3Mgc2FtcGxlIHJhdGUgbGFyZ2VyIHRoYW4gdGhlIGhhcmR3
YXJlIHNhbXBsZSByYXRlLCBwcm92aWRlSW5wdXQoKSB3YXMgZ2V0dGluZworICAgICAgICBjYWxs
ZWQgbW9yZSB0aGFuIG9uY2UgcGVyIGNoYW5uZWwgYW5kIHRoaXMgcmVzdWx0ZWQgaW4gdmVyeSBw
b29yIHJlc2FtcGxpbmcgcXVhbGl0eS4KKworICAgICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwg
TXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm9jZXNzKCkgbm93IHByb2Nlc3NlcyB0aGUgZGF0YSBp
biBjaHVua3MgdGhhdAorICAgICAgICBhcmUgc21hbGwgZW5vdWdoIHRvIGd1YXJhbnRlZSB0aGF0
IE11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6Q2hhbm5lbFByb3ZpZGVyOjpwcm92aWRlSW5wdXQoKSB3
aWxsCisgICAgICAgIG5ldmVyIGdldCBjYWxsZWQgbW9yZSB0aGFuIG9uY2UgcGVyIGF1ZGlvIGNo
YW5uZWwuCisKKyAgICAgICAgVGhlIGZpeCBpcyBiYXNlZCBvbiB0aGUgY29ycmVzcG9uZGluZyBN
dWx0aUNoYW5uZWxSZXNhbXBsZXIgLyBTaW5jUmVzYW1wbGVyIGltcGxlbWVudGF0aW9uIGluCisg
ICAgICAgIENocm9tZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vY2hyb21pdW0vY2hy
b21pdW0vYmxvYi9tYXN0ZXIvbWVkaWEvYmFzZS9tdWx0aV9jaGFubmVsX3Jlc2FtcGxlci5jYwor
ICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9iL21hc3Rl
ci9tZWRpYS9iYXNlL3NpbmNfcmVzYW1wbGVyLmNjCisKKyAgICAgICAgVGVzdHM6IHdlYmF1ZGlv
L2F1ZGlvY29udGV4dC1sYXJnZS1zYW1wbGVyYXRlLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmF1
ZGlvL2F1ZGlvY29udGV4dC1sb3ctc2FtcGxlcmF0ZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXVs
dGlDaGFubmVsUmVzYW1wbGVyOjpDaGFubmVsUHJvdmlkZXI6OnNldFByb3ZpZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6Q2hhbm5lbFByb3ZpZGVyOjpzZXRD
dXJyZW50Q2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNdWx0aUNoYW5uZWxSZXNhbXBsZXI6
OnByb2Nlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y2FsY3VsYXRlQ2h1bmtTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbmNS
ZXNhbXBsZXI6OnVwZGF0ZVJlZ2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1NpbmNS
ZXNhbXBsZXIuaDoKKwogMjAyMC0xMS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIEF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6cHJvY2VzcygpIG1heSBnZXQgY2Fs
bGVkIG9uIG5vbi1hdWRpbyB3b3JrbGV0IHRocmVhZCBhbmQgY3Jhc2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwCmlu
ZGV4IDg0ZWZhYjE2MzFiMWE2NmNmNjUxOWMxYTJiNjNlOTY5YzI2ZGVmMDMuLjBkNzMxZWQ1ZmE4
YTQ4YWNhYmI4Yjg1ZjI2Nzg4MzI4NDkxZmU2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcApAQCAtMzMsMzAg
KzMzLDM0IEBACiAjaW5jbHVkZSAiTXVsdGlDaGFubmVsUmVzYW1wbGVyLmgiCiAKICNpbmNsdWRl
ICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0aWVzLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogLy8gQ2hhbm5lbFByb3ZpZGVyIHByb3ZpZGVzIGEgc2luZ2xlIGNoYW5uZWwg
b2YgYXVkaW8gZGF0YSAob25lIGNoYW5uZWwgYXQgYSB0aW1lKSBmb3IgZWFjaCBjaGFubmVsCiAv
LyBvZiBkYXRhIHByb3ZpZGVkIHRvIHVzIGluIGEgbXVsdGktY2hhbm5lbCBwcm92aWRlci4KLWNs
YXNzIE11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6Q2hhbm5lbFByb3ZpZGVyIDogcHVibGljIEF1ZGlv
U291cmNlUHJvdmlkZXIgeworY2xhc3MgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpDaGFubmVsUHJv
dmlkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxp
Y2l0IENoYW5uZWxQcm92aWRlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKQotICAgICAgICA6
IG1fbnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKQorICAgICAgICA6IG1fbXVsdGlD
aGFubmVsQnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgQXVkaW9VdGlsaXRp
ZXM6OnJlbmRlclF1YW50dW1TaXplKSkKICAgICB7CiAgICAgfQogCiAgICAgdm9pZCBzZXRQcm92
aWRlcihBdWRpb1NvdXJjZVByb3ZpZGVyKiBtdWx0aUNoYW5uZWxQcm92aWRlcikKICAgICB7Ci0g
ICAgICAgIG1fY3VycmVudENoYW5uZWwgPSAwOwotICAgICAgICBtX2ZyYW1lc1RvUHJvY2VzcyA9
IDA7CiAgICAgICAgIG1fbXVsdGlDaGFubmVsUHJvdmlkZXIgPSBtdWx0aUNoYW5uZWxQcm92aWRl
cjsKICAgICB9CiAKICAgICAvLyBwcm92aWRlSW5wdXQoKSB3aWxsIGJlIGNhbGxlZCBvbmNlIGZv
ciBlYWNoIGNoYW5uZWwsIHN0YXJ0aW5nIHdpdGggdGhlIGZpcnN0IGNoYW5uZWwuCiAgICAgLy8g
RWFjaCB0aW1lIGl0J3MgY2FsbGVkLCBpdCB3aWxsIHByb3ZpZGUgdGhlIG5leHQgY2hhbm5lbCBv
ZiBkYXRhLgotICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgdm9pZCBwcm92aWRlSW5wdXRGb3JDaGFubmVsKEF1
ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIHVuc2lnbmVkIGNoYW5uZWxJbmRl
eCkKICAgICB7CisgICAgICAgIEFTU0VSVChjaGFubmVsSW5kZXggPCBtX211bHRpQ2hhbm5lbEJ1
cy0+bnVtYmVyT2ZDaGFubmVscygpKTsKKyAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8
PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOworICAgICAgICBpZiAoZnJhbWVz
VG9Qcm9jZXNzID4gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKQorICAgICAgICAg
ICAgcmV0dXJuOworCiAgICAgICAgIGJvb2wgaXNCdXNHb29kID0gYnVzICYmIGJ1cy0+bnVtYmVy
T2ZDaGFubmVscygpID09IDE7CiAgICAgICAgIEFTU0VSVChpc0J1c0dvb2QpOwogICAgICAgICBp
ZiAoIWlzQnVzR29vZCkKQEAgLTY0LDMxICs2OCwyNCBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8g
R2V0IHRoZSBkYXRhIGZyb20gdGhlIG11bHRpLWNoYW5uZWwgcHJvdmlkZXIgd2hlbiB0aGUgZmly
c3QgY2hhbm5lbCBhc2tzIGZvciBpdC4KICAgICAgICAgLy8gRm9yIHN1YnNlcXVlbnQgY2hhbm5l
bHMsIHdlIGNhbiBqdXN0IGRpc2ggb3V0IHRoZSBjaGFubmVsIGRhdGEgZnJvbSB0aGF0IChzdG9y
ZWQgaW4gbV9tdWx0aUNoYW5uZWxCdXMpLgotICAgICAgICBpZiAoIW1fY3VycmVudENoYW5uZWwp
IHsKKyAgICAgICAgaWYgKCFjaGFubmVsSW5kZXgpIHsKICAgICAgICAgICAgIG1fZnJhbWVzVG9Q
cm9jZXNzID0gZnJhbWVzVG9Qcm9jZXNzOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxCdXMg
PSBBdWRpb0J1czo6Y3JlYXRlKG1fbnVtYmVyT2ZDaGFubmVscywgZnJhbWVzVG9Qcm9jZXNzKTsK
ICAgICAgICAgICAgIG1fbXVsdGlDaGFubmVsUHJvdmlkZXItPnByb3ZpZGVJbnB1dChtX211bHRp
Q2hhbm5lbEJ1cy5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzKTsKICAgICAgICAgfQogCiAgICAgICAg
IC8vIEFsbCBjaGFubmVscyBtdXN0IGFzayBmb3IgdGhlIHNhbWUgYW1vdW50LiBUaGlzIHNob3Vs
ZCBhbHdheXMgYmUgdGhlIGNhc2UsIGJ1dCBsZXQncyBqdXN0IG1ha2Ugc3VyZS4KLSAgICAgICAg
Ym9vbCBpc0dvb2QgPSBtX211bHRpQ2hhbm5lbEJ1cy5nZXQoKSAmJiBmcmFtZXNUb1Byb2Nlc3Mg
PT0gbV9mcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGJvb2wgaXNHb29kID0gZnJhbWVzVG9Qcm9j
ZXNzID09IG1fZnJhbWVzVG9Qcm9jZXNzOwogICAgICAgICBBU1NFUlQoaXNHb29kKTsKICAgICAg
ICAgaWYgKCFpc0dvb2QpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gQ29weSB0
aGUgY2hhbm5lbCBkYXRhIGZyb20gd2hhdCB3ZSByZWNlaXZlZCBmcm9tIG1fbXVsdGlDaGFubmVs
UHJvdmlkZXIuCi0gICAgICAgIEFTU0VSVChtX2N1cnJlbnRDaGFubmVsIDw9IG1fbnVtYmVyT2ZD
aGFubmVscyk7Ci0gICAgICAgIGlmIChtX2N1cnJlbnRDaGFubmVsIDwgbV9udW1iZXJPZkNoYW5u
ZWxzKSB7Ci0gICAgICAgICAgICBtZW1jcHkoYnVzLT5jaGFubmVsKDApLT5tdXRhYmxlRGF0YSgp
LCBtX211bHRpQ2hhbm5lbEJ1cy0+Y2hhbm5lbChtX2N1cnJlbnRDaGFubmVsKS0+ZGF0YSgpLCBz
aXplb2YoZmxvYXQpICogZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICAgICAgICAgICsrbV9jdXJyZW50
Q2hhbm5lbDsKLSAgICAgICAgfQorICAgICAgICBtZW1jcHkoYnVzLT5jaGFubmVsKDApLT5tdXRh
YmxlRGF0YSgpLCBtX211bHRpQ2hhbm5lbEJ1cy0+Y2hhbm5lbChjaGFubmVsSW5kZXgpLT5kYXRh
KCksIHNpemVvZihmbG9hdCkgKiBmcmFtZXNUb1Byb2Nlc3MpOwogICAgIH0KIAogcHJpdmF0ZToK
ICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBtX211bHRpQ2hhbm5lbFByb3ZpZGVyIHsgbnVsbHB0
ciB9OwogICAgIFJlZlB0cjxBdWRpb0J1cz4gbV9tdWx0aUNoYW5uZWxCdXM7Ci0gICAgdW5zaWdu
ZWQgbV9udW1iZXJPZkNoYW5uZWxzIHsgMCB9OwotICAgIHVuc2lnbmVkIG1fY3VycmVudENoYW5u
ZWwgeyAwIH07CiAgICAgc2l6ZV90IG1fZnJhbWVzVG9Qcm9jZXNzIHsgMCB9OyAvLyBVc2VkIHRv
IHZlcmlmeSB0aGF0IGFsbCBjaGFubmVscyBhc2sgZm9yIHRoZSBzYW1lIGFtb3VudC4KIH07CiAK
QEAgLTExMiwxNCArMTA5LDI1IEBAIHZvaWQgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm9jZXNz
KEF1ZGlvU291cmNlUHJvdmlkZXIqIHByb3ZpZGVyLCBBdWRpb0J1cyogZGVzCiAgICAgLy8gY2hh
bm5lbFByb3ZpZGVyIHdyYXBzIHRoZSBvcmlnaW5hbCBtdWx0aS1jaGFubmVsIHByb3ZpZGVyIGFu
ZCBkaXNoZXMgb3V0IG9uZSBjaGFubmVsIGF0IGEgdGltZS4KICAgICBtX2NoYW5uZWxQcm92aWRl
ci0+c2V0UHJvdmlkZXIocHJvdmlkZXIpOwogCi0gICAgZm9yICh1bnNpZ25lZCBjaGFubmVsSW5k
ZXggPSAwOyBjaGFubmVsSW5kZXggPCBtX251bWJlck9mQ2hhbm5lbHM7ICsrY2hhbm5lbEluZGV4
KSB7Ci0gICAgICAgIC8vIERlcGVuZGluZyBvbiB0aGUgc2FtcGxlLXJhdGUgc2NhbGUgZmFjdG9y
LCBhbmQgdGhlIGludGVybmFsIGJ1ZmZlcmluZyB1c2VkIGluIGEgU2luY1Jlc2FtcGxlcgotICAg
ICAgICAvLyBrZXJuZWwsIHRoaXMgY2FsbCB0byBwcm9jZXNzKCkgd2lsbCBvbmx5IHNvbWV0aW1l
cyBjYWxsIHByb3ZpZGVJbnB1dCgpIG9uIHRoZSBjaGFubmVsUHJvdmlkZXIuCi0gICAgICAgIC8v
IEhvd2V2ZXIsIGlmIGl0IGNhbGxzIHByb3ZpZGVJbnB1dCgpIGZvciB0aGUgZmlyc3QgY2hhbm5l
bCwgdGhlbiBpdCB3aWxsIGNhbGwgaXQgZm9yIHRoZSByZW1haW5pbmcKLSAgICAgICAgLy8gY2hh
bm5lbHMsIHNpbmNlIHRoZXkgYWxsIGJ1ZmZlciBpbiB0aGUgc2FtZSB3YXkgYW5kIGFyZSBwcm9j
ZXNzaW5nIHRoZSBzYW1lIG51bWJlciBvZiBmcmFtZXMuCi0gICAgICAgIG1fa2VybmVsc1tjaGFu
bmVsSW5kZXhdLT5wcm9jZXNzKG1fY2hhbm5lbFByb3ZpZGVyLmdldCgpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi0+Y2hhbm5lbChjaGFubmVs
SW5kZXgpLT5tdXRhYmxlRGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmFtZXNUb1Byb2Nlc3MpOworICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQg
U2luY1Jlc2FtcGxlciBvbmx5IGNhbGxzIHByb3ZpZGVJbnB1dCgpIG9uY2UgZm9yIGVhY2ggY2hh
bm5lbCBvciBpdCB3aWxsIGNvbmZ1c2UgdGhlIGxvZ2ljCisgICAgLy8gaW5zaWRlIENoYW5uZWxQ
cm92aWRlci4gVG8gZW5zdXJlIHRoaXMsIHdlIGNodW5rIHRoZSBudW1iZXIgb2YgcmVxdWVzdGVk
IGZyYW1lcyBpbnRvIFNpbmNSZXNhbXBsZXI6OmNodW5rU2l6ZSgpCisgICAgLy8gc2l6ZWQgY2h1
bmtzLiBTaW5jUmVzYW1wbGVyIGd1YXJhbnRlZXMgaXQgd2lsbCBvbmx5IGNhbGwgcHJvdmlkZUlu
cHV0KCkgb25jZSBvbmNlIHdlIHJlc2FtcGxlIHRoaXMgd2F5LgorICAgIG1fb3V0cHV0RnJhbWVz
UmVhZHkgPSAwOworICAgIHdoaWxlIChtX291dHB1dEZyYW1lc1JlYWR5IDwgZnJhbWVzVG9Qcm9j
ZXNzKSB7CisgICAgICAgIHNpemVfdCBjaHVua1NpemUgPSBtX2tlcm5lbHNbMF0tPmNodW5rU2l6
ZSgpOworICAgICAgICBzaXplX3QgZnJhbWVzVGhpc1RpbWUgPSBzdGQ6Om1pbihmcmFtZXNUb1By
b2Nlc3MgLSBtX291dHB1dEZyYW1lc1JlYWR5LCBjaHVua1NpemUpOworCisgICAgICAgIGZvciAo
dW5zaWduZWQgY2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbEluZGV4IDwgbV9udW1iZXJPZkNoYW5u
ZWxzOyArK2NoYW5uZWxJbmRleCkgeworICAgICAgICAgICAgQVNTRVJUKGNodW5rU2l6ZSA9PSBt
X2tlcm5lbHNbY2hhbm5lbEluZGV4XS0+Y2h1bmtTaXplKCkpOworICAgICAgICAgICAgYm9vbCB3
YXNQcm92aWRlSW5wdXRDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIG1fa2VybmVsc1tjaGFu
bmVsSW5kZXhdLT5wcm9jZXNzKGRlc3RpbmF0aW9uLT5jaGFubmVsKGNoYW5uZWxJbmRleCktPm11
dGFibGVEYXRhKCkgKyBtX291dHB1dEZyYW1lc1JlYWR5LCBmcmFtZXNUaGlzVGltZSwgW3RoaXMs
IGNoYW5uZWxJbmRleCwgJndhc1Byb3ZpZGVJbnB1dENhbGxlZF0oQXVkaW9CdXMqIGJ1cywgc2l6
ZV90IGZyYW1lc1RvUHJvY2VzcykgeworICAgICAgICAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoIXdhc1Byb3ZpZGVJbnB1dENhbGxlZCwgInByb3ZpZGVJbnB1dEZvckNoYW5uZWwgc2hvdWxk
IG9ubHkgYmUgY2FsbGVkIG9uY2UiKTsKKyAgICAgICAgICAgICAgICB3YXNQcm92aWRlSW5wdXRD
YWxsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIG1fY2hhbm5lbFByb3ZpZGVyLT5wcm92aWRl
SW5wdXRGb3JDaGFubmVsKGJ1cywgZnJhbWVzVG9Qcm9jZXNzLCBjaGFubmVsSW5kZXgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBtX291dHB1dEZyYW1lc1JlYWR5ICs9
IGZyYW1lc1RoaXNUaW1lOwogICAgIH0KIAogICAgIG1fY2hhbm5lbFByb3ZpZGVyLT5zZXRQcm92
aWRlcihudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L011bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
TXVsdGlDaGFubmVsUmVzYW1wbGVyLmgKaW5kZXggNzE2YmM2MDFlODc4ZTNmNzRmNzRlYTM0ZGNi
ZDFjNzk4YzRkZGNhOC4uOGFiOGJiM2RhNDUwMjViM2ZjNGZmNWFmMTI3NjUxNTdhZjk4OTMwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVz
YW1wbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVs
UmVzYW1wbGVyLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIENoYW5u
ZWxQcm92aWRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2hhbm5lbFByb3ZpZGVyPiBtX2NoYW5u
ZWxQcm92aWRlcjsKKyAgICBzaXplX3QgbV9vdXRwdXRGcmFtZXNSZWFkeSB7IDAgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vU2luY1Jlc2FtcGxlci5jcHAKaW5kZXggMjY1MWM0ODcwOTU3NGQ5ODIzY2ZkZmU2OWU4NWQ3
MDY4MmVkMDM5MS4uZTBiOWU1NTk1MDFhZGM4Y2I0YzdiYWY3MjUyZTVjZjM3ZTZhOWEwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5jcHAKQEAg
LTExNSw2ICsxMTUsMTEgQEAgY29uc3RleHByIHVuc2lnbmVkIGRlZmF1bHRSZXF1ZXN0RnJhbWVz
IHsgNTEyIH07CiBjb25zdGV4cHIgdW5zaWduZWQga2VybmVsU2l6ZSB7IDMyIH07CiBjb25zdGV4
cHIgdW5zaWduZWQgbnVtYmVyT2ZLZXJuZWxPZmZzZXRzIHsgMzIgfTsKIAorc3RhdGljIHNpemVf
dCBjYWxjdWxhdGVDaHVua1NpemUodW5zaWduZWQgYmxvY2tTaXplLCBkb3VibGUgc2NhbGVGYWN0
b3IpCit7CisgICAgcmV0dXJuIGJsb2NrU2l6ZSAvIHNjYWxlRmFjdG9yOworfQorCiBTaW5jUmVz
YW1wbGVyOjpTaW5jUmVzYW1wbGVyKGRvdWJsZSBzY2FsZUZhY3RvciwgT3B0aW9uYWw8dW5zaWdu
ZWQ+IHJlcXVlc3RGcmFtZXMpCiAgICAgOiBtX3NjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKQogICAg
ICwgbV9rZXJuZWxTdG9yYWdlKGtlcm5lbFNpemUgKiAobnVtYmVyT2ZLZXJuZWxPZmZzZXRzICsg
MSkpCkBAIC0xMzcsNiArMTQyLDcgQEAgdm9pZCBTaW5jUmVzYW1wbGVyOjp1cGRhdGVSZWdpb25z
KGJvb2wgaXNTZWNvbmRMb2FkKQogICAgIG1fcjMgPSBtX3IwICsgbV9yZXF1ZXN0RnJhbWVzIC0g
a2VybmVsU2l6ZTsKICAgICBtX3I0ID0gbV9yMCArIG1fcmVxdWVzdEZyYW1lcyAtIGtlcm5lbFNp
emUgLyAyOwogICAgIG1fYmxvY2tTaXplID0gbV9yNCAtIG1fcjI7CisgICAgbV9jaHVua1NpemUg
PSBjYWxjdWxhdGVDaHVua1NpemUobV9ibG9ja1NpemUsIG1fc2NhbGVGYWN0b3IpOwogCiAgICAg
Ly8gbV9yMSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBidWZmZXIuCiAgICAgQVNTRVJUKG1fcjEg
PT0gbV9pbnB1dEJ1ZmZlci5kYXRhKCkpOwpAQCAtMTg3LDEwICsxOTMsMTAgQEAgdm9pZCBTaW5j
UmVzYW1wbGVyOjppbml0aWFsaXplS2VybmVsKCkKICAgICB9CiB9CiAKLXZvaWQgU2luY1Jlc2Ft
cGxlcjo6Y29uc3VtZVNvdXJjZShmbG9hdCogYnVmZmVyLCB1bnNpZ25lZCBudW1iZXJPZlNvdXJj
ZUZyYW1lcykKK3ZvaWQgU2luY1Jlc2FtcGxlcjo6Y29uc3VtZVNvdXJjZShmbG9hdCogYnVmZmVy
LCB1bnNpZ25lZCBudW1iZXJPZlNvdXJjZUZyYW1lcywgY29uc3QgRnVuY3Rpb248dm9pZChBdWRp
b0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mIHByb3ZpZGVJbnB1dCkKIHsKLSAg
ICBBU1NFUlQobV9zb3VyY2VQcm92aWRlcik7Ci0gICAgaWYgKCFtX3NvdXJjZVByb3ZpZGVyKQor
ICAgIEFTU0VSVChwcm92aWRlSW5wdXQpOworICAgIGlmICghcHJvdmlkZUlucHV0KQogICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBXcmFwIHRoZSBwcm92aWRlZCBidWZmZXIgYnkgYW4gQXVkaW9C
dXMgZm9yIHVzZSBieSB0aGUgc291cmNlIHByb3ZpZGVyLgpAQCAtMjAwLDE0ICsyMDYsMTQgQEAg
dm9pZCBTaW5jUmVzYW1wbGVyOjpjb25zdW1lU291cmNlKGZsb2F0KiBidWZmZXIsIHVuc2lnbmVk
IG51bWJlck9mU291cmNlRnJhbWVzKQogICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIG1ha2Ug
dGhlIGZvbGxvd2luZyBjb25zdC1jb3JyZWN0OgogICAgIG1faW50ZXJuYWxCdXMtPnNldENoYW5u
ZWxNZW1vcnkoMCwgYnVmZmVyLCBudW1iZXJPZlNvdXJjZUZyYW1lcyk7CiAgICAgCi0gICAgbV9z
b3VyY2VQcm92aWRlci0+cHJvdmlkZUlucHV0KG1faW50ZXJuYWxCdXMuZ2V0KCksIG51bWJlck9m
U291cmNlRnJhbWVzKTsKKyAgICBwcm92aWRlSW5wdXQobV9pbnRlcm5hbEJ1cy5nZXQoKSwgbnVt
YmVyT2ZTb3VyY2VGcmFtZXMpOwogfQogCiBuYW1lc3BhY2UgewogCi0vLyBCdWZmZXJTb3VyY2VQ
cm92aWRlciBpcyBhbiBBdWRpb1NvdXJjZVByb3ZpZGVyIHdyYXBwaW5nIGFuIGluLW1lbW9yeSBi
dWZmZXIuCisvLyBCdWZmZXJTb3VyY2VQcm92aWRlciBpcyBhbiBhdWRpbyBzb3VyY2UgcHJvdmlk
ZXIgd3JhcHBpbmcgYW4gaW4tbWVtb3J5IGJ1ZmZlci4KIAotY2xhc3MgQnVmZmVyU291cmNlUHJv
dmlkZXIgOiBwdWJsaWMgQXVkaW9Tb3VyY2VQcm92aWRlciB7CitjbGFzcyBCdWZmZXJTb3VyY2VQ
cm92aWRlciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQnVmZmVyU291cmNlUHJvdmlkZXIoY29u
c3QgZmxvYXQqIHNvdXJjZSwgc2l6ZV90IG51bWJlck9mU291cmNlRnJhbWVzKQogICAgICAgICA6
IG1fc291cmNlKHNvdXJjZSkKQEAgLTIxNiw3ICsyMjIsNyBAQCBwdWJsaWM6CiAgICAgfQogICAg
IAogICAgIC8vIENvbnN1bWVzIHNhbXBsZXMgZnJvbSB0aGUgaW4tbWVtb3J5IGJ1ZmZlci4KLSAg
ICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNz
KSBvdmVycmlkZQorICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MpCiAgICAgewogICAgICAgICBBU1NFUlQobV9zb3VyY2UgJiYgYnVzKTsK
ICAgICAgICAgaWYgKCFtX3NvdXJjZSB8fCAhYnVzKQpAQCAtMjUzLDI3ICsyNTksMjcgQEAgdm9p
ZCBTaW5jUmVzYW1wbGVyOjpwcm9jZXNzKGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgbnUKICAgICAKICAgICB3aGlsZSAocmVtYWluaW5nKSB7CiAgICAg
ICAgIHVuc2lnbmVkIGZyYW1lc1RoaXNUaW1lID0gc3RkOjptaW4ocmVtYWluaW5nLCBtX3JlcXVl
c3RGcmFtZXMpOwotICAgICAgICBwcm9jZXNzKCZzb3VyY2VQcm92aWRlciwgZGVzdGluYXRpb24s
IGZyYW1lc1RoaXNUaW1lKTsKKyAgICAgICAgcHJvY2VzcyhkZXN0aW5hdGlvbiwgZnJhbWVzVGhp
c1RpbWUsIFsmc291cmNlUHJvdmlkZXJdKEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpIHsKKyAgICAgICAgICAgIHNvdXJjZVByb3ZpZGVyLnByb3ZpZGVJbnB1dChidXMsIGZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgICAgIH0pOwogICAgICAgICAKICAgICAgICAgZGVzdGluYXRp
b24gKz0gZnJhbWVzVGhpc1RpbWU7CiAgICAgICAgIHJlbWFpbmluZyAtPSBmcmFtZXNUaGlzVGlt
ZTsKICAgICB9CiB9CiAKLXZvaWQgU2luY1Jlc2FtcGxlcjo6cHJvY2VzcyhBdWRpb1NvdXJjZVBy
b3ZpZGVyKiBzb3VyY2VQcm92aWRlciwgZmxvYXQqIGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQordm9pZCBTaW5jUmVzYW1wbGVyOjpwcm9jZXNzKGZsb2F0KiBkZXN0aW5hdGlv
biwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgRnVuY3Rpb248dm9pZChBdWRpb0J1cyog
YnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mIHByb3ZpZGVJbnB1dCkKIHsKLSAgICBBU1NF
UlQoc291cmNlUHJvdmlkZXIpOwotICAgIGlmICghc291cmNlUHJvdmlkZXIpCisgICAgQVNTRVJU
KHByb3ZpZGVJbnB1dCk7CisgICAgaWYgKCFwcm92aWRlSW5wdXQpCiAgICAgICAgIHJldHVybjsK
LSAgICAKLSAgICBtX3NvdXJjZVByb3ZpZGVyID0gc291cmNlUHJvdmlkZXI7CiAKICAgICB1bnNp
Z25lZCBudW1iZXJPZkRlc3RpbmF0aW9uRnJhbWVzID0gZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAg
Ly8gU3RlcCAoMSkKICAgICAvLyBQcmltZSB0aGUgaW5wdXQgYnVmZmVyIGF0IHRoZSBzdGFydCBv
ZiB0aGUgaW5wdXQgc3RyZWFtLgogICAgIGlmICghbV9pc0J1ZmZlclByaW1lZCkgewotICAgICAg
ICBjb25zdW1lU291cmNlKG1fcjAsIG1fcmVxdWVzdEZyYW1lcyk7CisgICAgICAgIGNvbnN1bWVT
b3VyY2UobV9yMCwgbV9yZXF1ZXN0RnJhbWVzLCBwcm92aWRlSW5wdXQpOwogICAgICAgICBtX2lz
QnVmZmVyUHJpbWVkID0gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC01MjEsNyArNTI3LDcgQEAgdm9p
ZCBTaW5jUmVzYW1wbGVyOjpwcm9jZXNzKEF1ZGlvU291cmNlUHJvdmlkZXIqIHNvdXJjZVByb3Zp
ZGVyLCBmbG9hdCogZGVzdGluYXQKIAogICAgICAgICAvLyBTdGVwICg1KQogICAgICAgICAvLyBS
ZWZyZXNoIHRoZSBidWZmZXIgd2l0aCBtb3JlIGlucHV0LgotICAgICAgICBjb25zdW1lU291cmNl
KG1fcjAsIG1fcmVxdWVzdEZyYW1lcyk7CisgICAgICAgIGNvbnN1bWVTb3VyY2UobV9yMCwgbV9y
ZXF1ZXN0RnJhbWVzLCBwcm92aWRlSW5wdXQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5oCmluZGV4IDlhMmVkZDZhNzI4YjIwYjEy
ODMwOWIxNmRhMjY2Zjc1MDk2ZThlYzguLmNmOGUxYzdjOTAwY2NmYmM3MzRjYzllOTM2NTViMjZj
YWExZjE2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNS
ZXNhbXBsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1w
bGVyLmgKQEAgLTQ1LDE1ICs0NSwxNyBAQCBwdWJsaWM6CiAgICAgLy8gcmVxdWVzdEZyYW1lcyBj
b250cm9scyB0aGUgc2l6ZSBpbiBmcmFtZXMgb2YgdGhlIGJ1ZmZlciByZXF1ZXN0ZWQgYnkgZWFj
aCBwcm92aWRlSW5wdXQoKSBjYWxsLgogICAgIFNpbmNSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFj
dG9yLCBPcHRpb25hbDx1bnNpZ25lZD4gcmVxdWVzdEZyYW1lcyA9IFdURjo6bnVsbG9wdCk7CiAg
ICAgCisgICAgc2l6ZV90IGNodW5rU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2h1bmtTaXplOyB9
CisKICAgICAvLyBQcm9jZXNzZXMgbnVtYmVyT2ZTb3VyY2VGcmFtZXMgZnJvbSBzb3VyY2UgdG8g
cHJvZHVjZSBudW1iZXJPZlNvdXJjZUZyYW1lcyAvIHNjYWxlRmFjdG9yIGZyYW1lcyBpbiBkZXN0
aW5hdGlvbi4KICAgICB2b2lkIHByb2Nlc3MoY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBudW1iZXJPZlNvdXJjZUZyYW1lcyk7CiAKLSAgICAvLyBQcm9j
ZXNzIHdpdGggaW5wdXQgc291cmNlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBzdHJlYW1pbmcgYXBw
bGljYXRpb25zLgotICAgIHZvaWQgcHJvY2VzcyhBdWRpb1NvdXJjZVByb3ZpZGVyKiwgZmxvYXQq
IGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAvLyBQcm9jZXNzIHdp
dGggcHJvdmlkZUlucHV0IGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBzdHJlYW1pbmcgYXBwbGljYXRp
b25zLgorICAgIHZvaWQgcHJvY2VzcyhmbG9hdCogZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNU
b1Byb2Nlc3MsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1l
c1RvUHJvY2Vzcyk+JiBwcm92aWRlSW5wdXQpOwogCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBpbml0
aWFsaXplS2VybmVsKCk7Ci0gICAgdm9pZCBjb25zdW1lU291cmNlKGZsb2F0KiBidWZmZXIsIHVu
c2lnbmVkIG51bWJlck9mU291cmNlRnJhbWVzKTsKKyAgICB2b2lkIGNvbnN1bWVTb3VyY2UoZmxv
YXQqIGJ1ZmZlciwgdW5zaWduZWQgbnVtYmVyT2ZTb3VyY2VGcmFtZXMsIGNvbnN0IEZ1bmN0aW9u
PHZvaWQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk+JiBwcm92aWRlSW5w
dXQpOwogICAgIHZvaWQgdXBkYXRlUmVnaW9ucyhib29sIGlzU2Vjb25kTG9hZCk7CiAgICAgCiAg
ICAgZG91YmxlIG1fc2NhbGVGYWN0b3I7CkBAIC03Miw2ICs3NCw4IEBAIHByb3RlY3RlZDoKICAg
ICAvLyBUaGUgbnVtYmVyIG9mIHNvdXJjZSBmcmFtZXMgcHJvY2Vzc2VkIHBlciBwYXNzLgogICAg
IHVuc2lnbmVkIG1fYmxvY2tTaXplIHsgMCB9OwogCisgICAgc2l6ZV90IG1fY2h1bmtTaXplIHsg
MCB9OworCiAgICAgLy8gU291cmNlIGlzIGNvcGllZCBpbnRvIHRoaXMgYnVmZmVyIGZvciBlYWNo
IHByb2Nlc3NpbmcgcGFzcy4KICAgICBBdWRpb0Zsb2F0QXJyYXkgbV9pbnB1dEJ1ZmZlcjsKIApA
QCAtODUsOSArODksNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBmbG9hdCogbV9zb3VyY2Ug
eyBudWxscHRyIH07CiAgICAgdW5zaWduZWQgbV9zb3VyY2VGcmFtZXNBdmFpbGFibGUgeyAwIH07
Ci0gICAgCi0gICAgLy8gbV9zb3VyY2VQcm92aWRlciBpcyB1c2VkIHRvIHByb3ZpZGUgdGhlIGF1
ZGlvIGlucHV0IHN0cmVhbSB0byB0aGUgcmVzYW1wbGVyLgotICAgIEF1ZGlvU291cmNlUHJvdmlk
ZXIqIG1fc291cmNlUHJvdmlkZXIgeyBudWxscHRyIH07CiAKICAgICAvLyBUaGUgYnVmZmVyIGlz
IHByaW1lZCBvbmNlIGF0IHRoZSB2ZXJ5IGJlZ2lubmluZyBvZiBwcm9jZXNzaW5nLgogICAgIGJv
b2wgbV9pc0J1ZmZlclByaW1lZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzQ0YThiNjJmYzcyNjY4YWJm
ZDNmMDU3YzU1Y2QwZDM2YzFhMTFiMy4uMDg5Y2UzMWM2YjVhZmY2NjIxOTBmNWYyZDJmZTFjNzc1
ZGRhOWZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTExLTIwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9vciByZXNhbXBsaW5nIHF1YWxpdHkgd2hl
biB1c2luZyBBdWRpb0NvbnRleHQgc2FtcGxlUmF0ZSBwYXJhbWV0ZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTIwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZSB0
aGF0IHdvdWxkIGhpdCBhc3NlcnRpb25zIGluIGRlYnVnLgorCisgICAgICAgICogd2ViYXVkaW8v
YXVkaW9jb250ZXh0LWxhcmdlLXNhbXBsZXJhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxlcmF0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNhbXBsZXJhdGUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNhbXBsZXJh
dGUuaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MoKSBtYXkgZ2V0
IGNhbGxlZCBvbiBub24tYXVkaW8gd29ya2xldCB0aHJlYWQgYW5kIGNyYXNoCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxlcmF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxl
cmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2VkMTY2NTliYzUyMTZkZWE4MmM5N2YwNDI0
MTk1YTM2MjQ0N2NmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvY29udGV4dC1sYXJnZS1zYW1wbGVyYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitUZXN0cyB0aGF0IHdlIGRvIG5vdCBjcmFzaCB3aGVuIHVzaW5nIGEgdmVyeSBsYXJnZSBzYW1w
bGUgcmF0ZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjb250ZXh0LnNh
bXBsZVJhdGUgaXMgMzg0MDAwCitQQVNTIGNvbnRleHQuc3RhdGUgaXMgInJ1bm5pbmciCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LWxhcmdlLXNhbXBsZXJhdGUuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1sYXJnZS1zYW1wbGVyYXRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTRkMDBhZTdmOGIyMjg4OTlkNmQ2MDJkNmU2NDJhYWMwNDlhMzcwNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1sYXJn
ZS1zYW1wbGVyYXRlLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3ZSBkbyBub3QgY3Jhc2ggd2hl
biB1c2luZyBhIHZlcnkgbGFyZ2Ugc2FtcGxlIHJhdGUiKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVl
OworCitjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCh7IHNhbXBsZVJhdGU6IDM4NDAwMCB9KTsK
K3Nob3VsZEJlKCJjb250ZXh0LnNhbXBsZVJhdGUiLCAiMzg0MDAwIik7CisKK25vZGUgPSBuZXcg
Q29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQsIHsgb2Zmc2V0OiAwLjUgfSk7Citub2RlLmNvbm5l
Y3QoY29udGV4dC5kZXN0aW5hdGlvbik7Citub2RlLnN0YXJ0KCk7CisKK3NldFRpbWVvdXQoKCkg
PT4geworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY29udGV4dC5zdGF0ZSIsICJydW5uaW5n
Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCAxMDApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93
LXNhbXBsZXJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250
ZXh0LWxvdy1zYW1wbGVyYXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTQwMTQyMGJjYzg0
YzVlOGEyZjUwZjNiMTI2N2JhM2I5NTZjYmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LWxvdy1zYW1wbGVyYXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitUZXN0cyB0aGF0IHdlIGRvIG5vdCBjcmFzaCB3aGVuIHVzaW5nIGEgdmVy
eSBsb3cgc2FtcGxlIHJhdGUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
Y29udGV4dC5zYW1wbGVSYXRlIGlzIDMwMDAKK1BBU1MgY29udGV4dC5zdGF0ZSBpcyAicnVubmlu
ZyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNhbXBsZXJh
dGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1sb3ctc2FtcGxlcmF0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFjMTlkMmQzNjZlMzM4MjBiMjlkY2U0YzFiMmNjNWQxZmQwMmI1
MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQt
bG93LXNhbXBsZXJhdGUuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxi
b2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdlIGRvIG5vdCBjcmFzaCB3
aGVuIHVzaW5nIGEgdmVyeSBsb3cgc2FtcGxlIHJhdGUiKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVl
OworCitjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCh7IHNhbXBsZVJhdGU6IDMwMDAgfSk7Citz
aG91bGRCZSgiY29udGV4dC5zYW1wbGVSYXRlIiwgIjMwMDAiKTsKKworbm9kZSA9IG5ldyBDb25z
dGFudFNvdXJjZU5vZGUoY29udGV4dCwgeyBvZmZzZXQ6IDAuNSB9KTsKK25vZGUuY29ubmVjdChj
b250ZXh0LmRlc3RpbmF0aW9uKTsKK25vZGUuc3RhcnQoKTsKKworc2V0VGltZW91dCgoKSA9PiB7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjb250ZXh0LnN0YXRlIiwgInJ1bm5pbmciKTsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIDEwMCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414780</attachid>
            <date>2020-11-21 19:37:58 -0800</date>
            <delta_ts>2020-11-21 20:51:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219201-20201121193757.patch</filename>
            <type>text/plain</type>
            <size>21190</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWViZGQ1YzU0ZDNhOTAy
NGQ1ZDEwMTAzMDcxYjFiY2RiMjQ5NDA4NS4uMDA2OTVmZjY5MzE3Mjg1NzgwOWE0NzgyNmQxYTg3
N2E4OTU2ODRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTExLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9vciByZXNhbXBsaW5nIHF1
YWxpdHkgd2hlbiB1c2luZyBBdWRpb0NvbnRleHQgc2FtcGxlUmF0ZSBwYXJhbWV0ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTIwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIE11bHRpQ2hhbm5lbFJlc2Ft
cGxlciB1c2VzIGEgU2luY1Jlc2FtcGxlciBwZXIgYXVkaW8gY2hhbm5lbC4gSW4gTXVsdGlDaGFu
bmVsUmVzYW1wbGVyOjpwcm9jZXNzKCksCisgICAgICAgIGl0IHdhcyBjYWxsaW5nIFNpbmNSZXNh
bXBsZXI6OnByb2Nlc3MoKSBmb3IgZWFjaCBjaGFubmVsLCB3aGljaCB3b3VsZCBwb3RlbnRpYWxs
eSBlbmQgdXAgY2FsbGluZworICAgICAgICBNdWx0aUNoYW5uZWxSZXNhbXBsZXI6OkNoYW5uZWxQ
cm92aWRlcjo6cHJvdmlkZUlucHV0KCkgdG8gcHJvdmlkZSBjaGFubmVsIGRhdGEgdXNlZCBmb3Ig
cmVzYW1wbGluZy4KKyAgICAgICAgVGhlIGlzc3VlIHdhcyB0aGF0IE11bHRpQ2hhbm5lbFJlc2Ft
cGxlcjo6Q2hhbm5lbFByb3ZpZGVyOjpwcm92aWRlSW5wdXQoKSBpcyBpbXBsZW1lbnRlZCBpbiBz
dWNoCisgICAgICAgIGEgd2F5IHRoYXQgdGhpbmdzIHdpbGwgYnJlYWsgaWYgcHJvdmlkZUlucHV0
KCkgZ2V0cyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UgcGVyIGNoYW5uZWwuIFdoZW4gdXNpbmcKKyAg
ICAgICAgYW4gQXVkaW9Db250ZXh0J3Mgc2FtcGxlIHJhdGUgbGFyZ2VyIHRoYW4gdGhlIGhhcmR3
YXJlIHNhbXBsZSByYXRlLCBwcm92aWRlSW5wdXQoKSB3YXMgZ2V0dGluZworICAgICAgICBjYWxs
ZWQgbW9yZSB0aGFuIG9uY2UgcGVyIGNoYW5uZWwgYW5kIHRoaXMgcmVzdWx0ZWQgaW4gdmVyeSBw
b29yIHJlc2FtcGxpbmcgcXVhbGl0eS4KKworICAgICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwg
TXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm9jZXNzKCkgbm93IHByb2Nlc3NlcyB0aGUgZGF0YSBp
biBjaHVua3MgdGhhdAorICAgICAgICBhcmUgc21hbGwgZW5vdWdoIHRvIGd1YXJhbnRlZSB0aGF0
IE11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6Q2hhbm5lbFByb3ZpZGVyOjpwcm92aWRlSW5wdXQoKSB3
aWxsCisgICAgICAgIG5ldmVyIGdldCBjYWxsZWQgbW9yZSB0aGFuIG9uY2UgcGVyIGF1ZGlvIGNo
YW5uZWwuCisKKyAgICAgICAgVGhlIGZpeCBpcyBiYXNlZCBvbiB0aGUgY29ycmVzcG9uZGluZyBN
dWx0aUNoYW5uZWxSZXNhbXBsZXIgLyBTaW5jUmVzYW1wbGVyIGltcGxlbWVudGF0aW9uIGluCisg
ICAgICAgIENocm9tZToKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vY2hyb21pdW0vY2hy
b21pdW0vYmxvYi9tYXN0ZXIvbWVkaWEvYmFzZS9tdWx0aV9jaGFubmVsX3Jlc2FtcGxlci5jYwor
ICAgICAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9ibG9iL21hc3Rl
ci9tZWRpYS9iYXNlL3NpbmNfcmVzYW1wbGVyLmNjCisKKyAgICAgICAgVGVzdHM6IHdlYmF1ZGlv
L2F1ZGlvY29udGV4dC1sYXJnZS1zYW1wbGVyYXRlLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmF1
ZGlvL2F1ZGlvY29udGV4dC1sb3ctc2FtcGxlcmF0ZS5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXVs
dGlDaGFubmVsUmVzYW1wbGVyOjpDaGFubmVsUHJvdmlkZXI6OnNldFByb3ZpZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6Q2hhbm5lbFByb3ZpZGVyOjpzZXRD
dXJyZW50Q2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpNdWx0aUNoYW5uZWxSZXNhbXBsZXI6
OnByb2Nlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y2FsY3VsYXRlQ2h1bmtTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbmNS
ZXNhbXBsZXI6OnVwZGF0ZVJlZ2lvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1NpbmNS
ZXNhbXBsZXIuaDoKKwogMjAyMC0xMS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcwMTQxLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAK
aW5kZXggODRlZmFiMTYzMWIxYTY2Y2Y2NTE5YzFhMmI2M2U5NjljMjZkZWYwMy4uYTVlZjg1Mzg5
M2I1MmRmYzQ0NWViMjI1Njk3ZjU2NmRiZTg3OGMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwCkBAIC0zOCwy
NSArMzgsMjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBDaGFubmVsUHJvdmlkZXIgcHJv
dmlkZXMgYSBzaW5nbGUgY2hhbm5lbCBvZiBhdWRpbyBkYXRhIChvbmUgY2hhbm5lbCBhdCBhIHRp
bWUpIGZvciBlYWNoIGNoYW5uZWwKIC8vIG9mIGRhdGEgcHJvdmlkZWQgdG8gdXMgaW4gYSBtdWx0
aS1jaGFubmVsIHByb3ZpZGVyLgotY2xhc3MgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpDaGFubmVs
UHJvdmlkZXIgOiBwdWJsaWMgQXVkaW9Tb3VyY2VQcm92aWRlciB7CitjbGFzcyBNdWx0aUNoYW5u
ZWxSZXNhbXBsZXI6OkNoYW5uZWxQcm92aWRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ2hhbm5lbFByb3ZpZGVyKHVuc2lnbmVkIG51bWJl
ck9mQ2hhbm5lbHMpCi0gICAgICAgIDogbV9udW1iZXJPZkNoYW5uZWxzKG51bWJlck9mQ2hhbm5l
bHMpCisgICAgZXhwbGljaXQgQ2hhbm5lbFByb3ZpZGVyKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5l
bHMsIHVuc2lnbmVkIHJlcXVlc3RGcmFtZXMpCisgICAgICAgIDogbV9tdWx0aUNoYW5uZWxCdXMo
QXVkaW9CdXM6OmNyZWF0ZShudW1iZXJPZkNoYW5uZWxzLCByZXF1ZXN0RnJhbWVzKSkKICAgICB7
CiAgICAgfQogCiAgICAgdm9pZCBzZXRQcm92aWRlcihBdWRpb1NvdXJjZVByb3ZpZGVyKiBtdWx0
aUNoYW5uZWxQcm92aWRlcikKICAgICB7Ci0gICAgICAgIG1fY3VycmVudENoYW5uZWwgPSAwOwot
ICAgICAgICBtX2ZyYW1lc1RvUHJvY2VzcyA9IDA7CiAgICAgICAgIG1fbXVsdGlDaGFubmVsUHJv
dmlkZXIgPSBtdWx0aUNoYW5uZWxQcm92aWRlcjsKICAgICB9CiAKICAgICAvLyBwcm92aWRlSW5w
dXQoKSB3aWxsIGJlIGNhbGxlZCBvbmNlIGZvciBlYWNoIGNoYW5uZWwsIHN0YXJ0aW5nIHdpdGgg
dGhlIGZpcnN0IGNoYW5uZWwuCiAgICAgLy8gRWFjaCB0aW1lIGl0J3MgY2FsbGVkLCBpdCB3aWxs
IHByb3ZpZGUgdGhlIG5leHQgY2hhbm5lbCBvZiBkYXRhLgotICAgIHZvaWQgcHJvdmlkZUlucHV0
KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgdm9p
ZCBwcm92aWRlSW5wdXRGb3JDaGFubmVsKEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MsIHVuc2lnbmVkIGNoYW5uZWxJbmRleCkKICAgICB7CisgICAgICAgIEFTU0VSVChjaGFu
bmVsSW5kZXggPCBtX211bHRpQ2hhbm5lbEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKTsKKyAgICAg
ICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBtX211bHRpQ2hhbm5lbEJ1cy0+bGVuZ3RoKCkp
OworICAgICAgICBpZiAoZnJhbWVzVG9Qcm9jZXNzID4gbV9tdWx0aUNoYW5uZWxCdXMtPmxlbmd0
aCgpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGJvb2wgaXNCdXNHb29kID0gYnVz
ICYmIGJ1cy0+bnVtYmVyT2ZDaGFubmVscygpID09IDE7CiAgICAgICAgIEFTU0VSVChpc0J1c0dv
b2QpOwogICAgICAgICBpZiAoIWlzQnVzR29vZCkKQEAgLTY0LDM3ICs2NywzMCBAQCBwdWJsaWM6
CiAKICAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGZyb20gdGhlIG11bHRpLWNoYW5uZWwgcHJvdmlk
ZXIgd2hlbiB0aGUgZmlyc3QgY2hhbm5lbCBhc2tzIGZvciBpdC4KICAgICAgICAgLy8gRm9yIHN1
YnNlcXVlbnQgY2hhbm5lbHMsIHdlIGNhbiBqdXN0IGRpc2ggb3V0IHRoZSBjaGFubmVsIGRhdGEg
ZnJvbSB0aGF0IChzdG9yZWQgaW4gbV9tdWx0aUNoYW5uZWxCdXMpLgotICAgICAgICBpZiAoIW1f
Y3VycmVudENoYW5uZWwpIHsKKyAgICAgICAgaWYgKCFjaGFubmVsSW5kZXgpIHsKICAgICAgICAg
ICAgIG1fZnJhbWVzVG9Qcm9jZXNzID0gZnJhbWVzVG9Qcm9jZXNzOwotICAgICAgICAgICAgbV9t
dWx0aUNoYW5uZWxCdXMgPSBBdWRpb0J1czo6Y3JlYXRlKG1fbnVtYmVyT2ZDaGFubmVscywgZnJh
bWVzVG9Qcm9jZXNzKTsKICAgICAgICAgICAgIG1fbXVsdGlDaGFubmVsUHJvdmlkZXItPnByb3Zp
ZGVJbnB1dChtX211bHRpQ2hhbm5lbEJ1cy5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNzKTsKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIEFsbCBjaGFubmVscyBtdXN0IGFzayBmb3IgdGhlIHNhbWUgYW1v
dW50LiBUaGlzIHNob3VsZCBhbHdheXMgYmUgdGhlIGNhc2UsIGJ1dCBsZXQncyBqdXN0IG1ha2Ug
c3VyZS4KLSAgICAgICAgYm9vbCBpc0dvb2QgPSBtX211bHRpQ2hhbm5lbEJ1cy5nZXQoKSAmJiBm
cmFtZXNUb1Byb2Nlc3MgPT0gbV9mcmFtZXNUb1Byb2Nlc3M7CisgICAgICAgIGJvb2wgaXNHb29k
ID0gZnJhbWVzVG9Qcm9jZXNzID09IG1fZnJhbWVzVG9Qcm9jZXNzOwogICAgICAgICBBU1NFUlQo
aXNHb29kKTsKICAgICAgICAgaWYgKCFpc0dvb2QpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgLy8gQ29weSB0aGUgY2hhbm5lbCBkYXRhIGZyb20gd2hhdCB3ZSByZWNlaXZlZCBmcm9t
IG1fbXVsdGlDaGFubmVsUHJvdmlkZXIuCi0gICAgICAgIEFTU0VSVChtX2N1cnJlbnRDaGFubmVs
IDw9IG1fbnVtYmVyT2ZDaGFubmVscyk7Ci0gICAgICAgIGlmIChtX2N1cnJlbnRDaGFubmVsIDwg
bV9udW1iZXJPZkNoYW5uZWxzKSB7Ci0gICAgICAgICAgICBtZW1jcHkoYnVzLT5jaGFubmVsKDAp
LT5tdXRhYmxlRGF0YSgpLCBtX211bHRpQ2hhbm5lbEJ1cy0+Y2hhbm5lbChtX2N1cnJlbnRDaGFu
bmVsKS0+ZGF0YSgpLCBzaXplb2YoZmxvYXQpICogZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICAgICAg
ICAgICsrbV9jdXJyZW50Q2hhbm5lbDsKLSAgICAgICAgfQorICAgICAgICBtZW1jcHkoYnVzLT5j
aGFubmVsKDApLT5tdXRhYmxlRGF0YSgpLCBtX211bHRpQ2hhbm5lbEJ1cy0+Y2hhbm5lbChjaGFu
bmVsSW5kZXgpLT5kYXRhKCksIHNpemVvZihmbG9hdCkgKiBmcmFtZXNUb1Byb2Nlc3MpOwogICAg
IH0KIAogcHJpdmF0ZToKICAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBtX211bHRpQ2hhbm5lbFBy
b3ZpZGVyIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxBdWRpb0J1cz4gbV9tdWx0aUNoYW5uZWxC
dXM7Ci0gICAgdW5zaWduZWQgbV9udW1iZXJPZkNoYW5uZWxzIHsgMCB9OwotICAgIHVuc2lnbmVk
IG1fY3VycmVudENoYW5uZWwgeyAwIH07CiAgICAgc2l6ZV90IG1fZnJhbWVzVG9Qcm9jZXNzIHsg
MCB9OyAvLyBVc2VkIHRvIHZlcmlmeSB0aGF0IGFsbCBjaGFubmVscyBhc2sgZm9yIHRoZSBzYW1l
IGFtb3VudC4KIH07CiAKLU11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6TXVsdGlDaGFubmVsUmVzYW1w
bGVyKGRvdWJsZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgT3B0aW9u
YWw8dW5zaWduZWQ+IHJlcXVlc3RGcmFtZXMpCitNdWx0aUNoYW5uZWxSZXNhbXBsZXI6Ok11bHRp
Q2hhbm5lbFJlc2FtcGxlcihkb3VibGUgc2NhbGVGYWN0b3IsIHVuc2lnbmVkIG51bWJlck9mQ2hh
bm5lbHMsIHVuc2lnbmVkIHJlcXVlc3RGcmFtZXMpCiAgICAgOiBtX251bWJlck9mQ2hhbm5lbHMo
bnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fY2hhbm5lbFByb3ZpZGVyKG1ha2VVbmlxdWU8Q2hh
bm5lbFByb3ZpZGVyPihtX251bWJlck9mQ2hhbm5lbHMpKQorICAgICwgbV9jaGFubmVsUHJvdmlk
ZXIobWFrZVVuaXF1ZTxDaGFubmVsUHJvdmlkZXI+KG1fbnVtYmVyT2ZDaGFubmVscywgcmVxdWVz
dEZyYW1lcykpCiB7CiAgICAgLy8gQ3JlYXRlIGVhY2ggY2hhbm5lbCdzIHJlc2FtcGxlci4KICAg
ICBmb3IgKHVuc2lnbmVkIGNoYW5uZWxJbmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IG51bWJlck9m
Q2hhbm5lbHM7ICsrY2hhbm5lbEluZGV4KQpAQCAtMTEyLDE0ICsxMDgsMjUgQEAgdm9pZCBNdWx0
aUNoYW5uZWxSZXNhbXBsZXI6OnByb2Nlc3MoQXVkaW9Tb3VyY2VQcm92aWRlciogcHJvdmlkZXIs
IEF1ZGlvQnVzKiBkZXMKICAgICAvLyBjaGFubmVsUHJvdmlkZXIgd3JhcHMgdGhlIG9yaWdpbmFs
IG11bHRpLWNoYW5uZWwgcHJvdmlkZXIgYW5kIGRpc2hlcyBvdXQgb25lIGNoYW5uZWwgYXQgYSB0
aW1lLgogICAgIG1fY2hhbm5lbFByb3ZpZGVyLT5zZXRQcm92aWRlcihwcm92aWRlcik7CiAKLSAg
ICBmb3IgKHVuc2lnbmVkIGNoYW5uZWxJbmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IG1fbnVtYmVy
T2ZDaGFubmVsczsgKytjaGFubmVsSW5kZXgpIHsKLSAgICAgICAgLy8gRGVwZW5kaW5nIG9uIHRo
ZSBzYW1wbGUtcmF0ZSBzY2FsZSBmYWN0b3IsIGFuZCB0aGUgaW50ZXJuYWwgYnVmZmVyaW5nIHVz
ZWQgaW4gYSBTaW5jUmVzYW1wbGVyCi0gICAgICAgIC8vIGtlcm5lbCwgdGhpcyBjYWxsIHRvIHBy
b2Nlc3MoKSB3aWxsIG9ubHkgc29tZXRpbWVzIGNhbGwgcHJvdmlkZUlucHV0KCkgb24gdGhlIGNo
YW5uZWxQcm92aWRlci4KLSAgICAgICAgLy8gSG93ZXZlciwgaWYgaXQgY2FsbHMgcHJvdmlkZUlu
cHV0KCkgZm9yIHRoZSBmaXJzdCBjaGFubmVsLCB0aGVuIGl0IHdpbGwgY2FsbCBpdCBmb3IgdGhl
IHJlbWFpbmluZwotICAgICAgICAvLyBjaGFubmVscywgc2luY2UgdGhleSBhbGwgYnVmZmVyIGlu
IHRoZSBzYW1lIHdheSBhbmQgYXJlIHByb2Nlc3NpbmcgdGhlIHNhbWUgbnVtYmVyIG9mIGZyYW1l
cy4KLSAgICAgICAgbV9rZXJuZWxzW2NoYW5uZWxJbmRleF0tPnByb2Nlc3MobV9jaGFubmVsUHJv
dmlkZXIuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl
c3RpbmF0aW9uLT5jaGFubmVsKGNoYW5uZWxJbmRleCktPm11dGFibGVEYXRhKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAg
Ly8gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCBTaW5jUmVzYW1wbGVyIG9ubHkgY2FsbHMgcHJvdmlk
ZUlucHV0KCkgb25jZSBmb3IgZWFjaCBjaGFubmVsIG9yIGl0IHdpbGwgY29uZnVzZSB0aGUgbG9n
aWMKKyAgICAvLyBpbnNpZGUgQ2hhbm5lbFByb3ZpZGVyLiBUbyBlbnN1cmUgdGhpcywgd2UgY2h1
bmsgdGhlIG51bWJlciBvZiByZXF1ZXN0ZWQgZnJhbWVzIGludG8gU2luY1Jlc2FtcGxlcjo6Y2h1
bmtTaXplKCkKKyAgICAvLyBzaXplZCBjaHVua3MuIFNpbmNSZXNhbXBsZXIgZ3VhcmFudGVlcyBp
dCB3aWxsIG9ubHkgY2FsbCBwcm92aWRlSW5wdXQoKSBvbmNlIG9uY2Ugd2UgcmVzYW1wbGUgdGhp
cyB3YXkuCisgICAgbV9vdXRwdXRGcmFtZXNSZWFkeSA9IDA7CisgICAgd2hpbGUgKG1fb3V0cHV0
RnJhbWVzUmVhZHkgPCBmcmFtZXNUb1Byb2Nlc3MpIHsKKyAgICAgICAgc2l6ZV90IGNodW5rU2l6
ZSA9IG1fa2VybmVsc1swXS0+Y2h1bmtTaXplKCk7CisgICAgICAgIHNpemVfdCBmcmFtZXNUaGlz
VGltZSA9IHN0ZDo6bWluKGZyYW1lc1RvUHJvY2VzcyAtIG1fb3V0cHV0RnJhbWVzUmVhZHksIGNo
dW5rU2l6ZSk7CisKKyAgICAgICAgZm9yICh1bnNpZ25lZCBjaGFubmVsSW5kZXggPSAwOyBjaGFu
bmVsSW5kZXggPCBtX251bWJlck9mQ2hhbm5lbHM7ICsrY2hhbm5lbEluZGV4KSB7CisgICAgICAg
ICAgICBBU1NFUlQoY2h1bmtTaXplID09IG1fa2VybmVsc1tjaGFubmVsSW5kZXhdLT5jaHVua1Np
emUoKSk7CisgICAgICAgICAgICBib29sIHdhc1Byb3ZpZGVJbnB1dENhbGxlZCA9IGZhbHNlOwor
ICAgICAgICAgICAgbV9rZXJuZWxzW2NoYW5uZWxJbmRleF0tPnByb2Nlc3MoZGVzdGluYXRpb24t
PmNoYW5uZWwoY2hhbm5lbEluZGV4KS0+bXV0YWJsZURhdGEoKSArIG1fb3V0cHV0RnJhbWVzUmVh
ZHksIGZyYW1lc1RoaXNUaW1lLCBbdGhpcywgY2hhbm5lbEluZGV4LCAmd2FzUHJvdmlkZUlucHV0
Q2FsbGVkXShBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSB7CisgICAgICAg
ICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghd2FzUHJvdmlkZUlucHV0Q2FsbGVkLCAicHJv
dmlkZUlucHV0Rm9yQ2hhbm5lbCBzaG91bGQgb25seSBiZSBjYWxsZWQgb25jZSIpOworICAgICAg
ICAgICAgICAgIHdhc1Byb3ZpZGVJbnB1dENhbGxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAg
bV9jaGFubmVsUHJvdmlkZXItPnByb3ZpZGVJbnB1dEZvckNoYW5uZWwoYnVzLCBmcmFtZXNUb1By
b2Nlc3MsIGNoYW5uZWxJbmRleCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAg
ICAgIG1fb3V0cHV0RnJhbWVzUmVhZHkgKz0gZnJhbWVzVGhpc1RpbWU7CiAgICAgfQogCiAgICAg
bV9jaGFubmVsUHJvdmlkZXItPnNldFByb3ZpZGVyKG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuaAppbmRleCA3
MTZiYzYwMWU4NzhlM2Y3NGY3NGVhMzRkY2JkMWM3OThjNGRkY2E4Li45NjI5NmMyYWM3OWFkN2My
MjdhNjQzNDMyNDc3ZDQ1YzgyYjBiZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuaApAQCAtNDEsNyArNDEsNyBAQCBj
bGFzcyBNdWx0aUNoYW5uZWxSZXNhbXBsZXIgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOiAgIAogICAgIC8vIHJlcXVlc3RGcmFtZXMgY29uc3Ryb2xzIHRoZSBz
aXplIG9mIHRoZSBidWZmZXIgaW4gZnJhbWVzIHdoZW4gQXVkaW9Tb3VyY2VQcm92aWRlcjo6cHJv
dmlkZUlucHV0KCkgaXMgY2FsbGVkLgotICAgIGV4cGxpY2l0IE11bHRpQ2hhbm5lbFJlc2FtcGxl
cihkb3VibGUgc2NhbGVGYWN0b3IsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIE9wdGlvbmFs
PHVuc2lnbmVkPiByZXF1ZXN0RnJhbWVzID0gV1RGOjpudWxsb3B0KTsKKyAgICBleHBsaWNpdCBN
dWx0aUNoYW5uZWxSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFjdG9yLCB1bnNpZ25lZCBudW1iZXJP
ZkNoYW5uZWxzLCB1bnNpZ25lZCByZXF1ZXN0RnJhbWVzID0gU2luY1Jlc2FtcGxlcjo6ZGVmYXVs
dFJlcXVlc3RGcmFtZXMpOwogICAgIH5NdWx0aUNoYW5uZWxSZXNhbXBsZXIoKTsKIAogICAgIC8v
IFByb2Nlc3MgZ2l2ZW4gQXVkaW9Tb3VyY2VQcm92aWRlciBmb3Igc3RyZWFtaW5nIGFwcGxpY2F0
aW9ucy4KQEAgLTU5LDYgKzU5LDcgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIENoYW5uZWxQcm92
aWRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2hhbm5lbFByb3ZpZGVyPiBtX2NoYW5uZWxQcm92
aWRlcjsKKyAgICBzaXplX3QgbV9vdXRwdXRGcmFtZXNSZWFkeSB7IDAgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1NpbmNSZXNhbXBsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2lu
Y1Jlc2FtcGxlci5jcHAKaW5kZXggMjY1MWM0ODcwOTU3NGQ5ODIzY2ZkZmU2OWU4NWQ3MDY4MmVk
MDM5MS4uMTczYzk0MDE0MjkwMGQyMmEzNjFiY2QyYzA0NDNmODcxMDAxYTEzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5jcHAKQEAgLTExMSwx
NCArMTExLDE4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3RleHByIHVuc2lnbmVk
IGRlZmF1bHRSZXF1ZXN0RnJhbWVzIHsgNTEyIH07CiBjb25zdGV4cHIgdW5zaWduZWQga2VybmVs
U2l6ZSB7IDMyIH07CiBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZLZXJuZWxPZmZzZXRzIHsg
MzIgfTsKIAotU2luY1Jlc2FtcGxlcjo6U2luY1Jlc2FtcGxlcihkb3VibGUgc2NhbGVGYWN0b3Is
IE9wdGlvbmFsPHVuc2lnbmVkPiByZXF1ZXN0RnJhbWVzKQorc3RhdGljIHNpemVfdCBjYWxjdWxh
dGVDaHVua1NpemUodW5zaWduZWQgYmxvY2tTaXplLCBkb3VibGUgc2NhbGVGYWN0b3IpCit7Cisg
ICAgcmV0dXJuIGJsb2NrU2l6ZSAvIHNjYWxlRmFjdG9yOworfQorCitTaW5jUmVzYW1wbGVyOjpT
aW5jUmVzYW1wbGVyKGRvdWJsZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgcmVxdWVzdEZyYW1lcykK
ICAgICA6IG1fc2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpCiAgICAgLCBtX2tlcm5lbFN0b3JhZ2Uo
a2VybmVsU2l6ZSAqIChudW1iZXJPZktlcm5lbE9mZnNldHMgKyAxKSkKLSAgICAsIG1fcmVxdWVz
dEZyYW1lcyhyZXF1ZXN0RnJhbWVzLnZhbHVlT3IoZGVmYXVsdFJlcXVlc3RGcmFtZXMpKQorICAg
ICwgbV9yZXF1ZXN0RnJhbWVzKHJlcXVlc3RGcmFtZXMpCiAgICAgLCBtX2lucHV0QnVmZmVyKG1f
cmVxdWVzdEZyYW1lcyArIGtlcm5lbFNpemUpIC8vIFNlZSBpbnB1dCBidWZmZXIgbGF5b3V0IGFi
b3ZlLgogICAgICwgbV9yMShtX2lucHV0QnVmZmVyLmRhdGEoKSkKICAgICAsIG1fcjIobV9pbnB1
dEJ1ZmZlci5kYXRhKCkgKyBrZXJuZWxTaXplIC8gMikKQEAgLTEzNyw2ICsxNDEsNyBAQCB2b2lk
IFNpbmNSZXNhbXBsZXI6OnVwZGF0ZVJlZ2lvbnMoYm9vbCBpc1NlY29uZExvYWQpCiAgICAgbV9y
MyA9IG1fcjAgKyBtX3JlcXVlc3RGcmFtZXMgLSBrZXJuZWxTaXplOwogICAgIG1fcjQgPSBtX3Iw
ICsgbV9yZXF1ZXN0RnJhbWVzIC0ga2VybmVsU2l6ZSAvIDI7CiAgICAgbV9ibG9ja1NpemUgPSBt
X3I0IC0gbV9yMjsKKyAgICBtX2NodW5rU2l6ZSA9IGNhbGN1bGF0ZUNodW5rU2l6ZShtX2Jsb2Nr
U2l6ZSwgbV9zY2FsZUZhY3Rvcik7CiAKICAgICAvLyBtX3IxIGF0IHRoZSBiZWdpbm5pbmcgb2Yg
dGhlIGJ1ZmZlci4KICAgICBBU1NFUlQobV9yMSA9PSBtX2lucHV0QnVmZmVyLmRhdGEoKSk7CkBA
IC0xODcsMTAgKzE5MiwxMCBAQCB2b2lkIFNpbmNSZXNhbXBsZXI6OmluaXRpYWxpemVLZXJuZWwo
KQogICAgIH0KIH0KIAotdm9pZCBTaW5jUmVzYW1wbGVyOjpjb25zdW1lU291cmNlKGZsb2F0KiBi
dWZmZXIsIHVuc2lnbmVkIG51bWJlck9mU291cmNlRnJhbWVzKQordm9pZCBTaW5jUmVzYW1wbGVy
Ojpjb25zdW1lU291cmNlKGZsb2F0KiBidWZmZXIsIHVuc2lnbmVkIG51bWJlck9mU291cmNlRnJh
bWVzLCBjb25zdCBGdW5jdGlvbjx2b2lkKEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpPiYgcHJvdmlkZUlucHV0KQogewotICAgIEFTU0VSVChtX3NvdXJjZVByb3ZpZGVyKTsK
LSAgICBpZiAoIW1fc291cmNlUHJvdmlkZXIpCisgICAgQVNTRVJUKHByb3ZpZGVJbnB1dCk7Cisg
ICAgaWYgKCFwcm92aWRlSW5wdXQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFdyYXAgdGhl
IHByb3ZpZGVkIGJ1ZmZlciBieSBhbiBBdWRpb0J1cyBmb3IgdXNlIGJ5IHRoZSBzb3VyY2UgcHJv
dmlkZXIuCkBAIC0yMDAsMTQgKzIwNSwxNCBAQCB2b2lkIFNpbmNSZXNhbXBsZXI6OmNvbnN1bWVT
b3VyY2UoZmxvYXQqIGJ1ZmZlciwgdW5zaWduZWQgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpCiAgICAg
Ly8gRklYTUU6IEZpbmQgYSB3YXkgdG8gbWFrZSB0aGUgZm9sbG93aW5nIGNvbnN0LWNvcnJlY3Q6
CiAgICAgbV9pbnRlcm5hbEJ1cy0+c2V0Q2hhbm5lbE1lbW9yeSgwLCBidWZmZXIsIG51bWJlck9m
U291cmNlRnJhbWVzKTsKICAgICAKLSAgICBtX3NvdXJjZVByb3ZpZGVyLT5wcm92aWRlSW5wdXQo
bV9pbnRlcm5hbEJ1cy5nZXQoKSwgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpOworICAgIHByb3ZpZGVJ
bnB1dChtX2ludGVybmFsQnVzLmdldCgpLCBudW1iZXJPZlNvdXJjZUZyYW1lcyk7CiB9CiAKIG5h
bWVzcGFjZSB7CiAKLS8vIEJ1ZmZlclNvdXJjZVByb3ZpZGVyIGlzIGFuIEF1ZGlvU291cmNlUHJv
dmlkZXIgd3JhcHBpbmcgYW4gaW4tbWVtb3J5IGJ1ZmZlci4KKy8vIEJ1ZmZlclNvdXJjZVByb3Zp
ZGVyIGlzIGFuIGF1ZGlvIHNvdXJjZSBwcm92aWRlciB3cmFwcGluZyBhbiBpbi1tZW1vcnkgYnVm
ZmVyLgogCi1jbGFzcyBCdWZmZXJTb3VyY2VQcm92aWRlciA6IHB1YmxpYyBBdWRpb1NvdXJjZVBy
b3ZpZGVyIHsKK2NsYXNzIEJ1ZmZlclNvdXJjZVByb3ZpZGVyIHsKIHB1YmxpYzoKICAgICBleHBs
aWNpdCBCdWZmZXJTb3VyY2VQcm92aWRlcihjb25zdCBmbG9hdCogc291cmNlLCBzaXplX3QgbnVt
YmVyT2ZTb3VyY2VGcmFtZXMpCiAgICAgICAgIDogbV9zb3VyY2Uoc291cmNlKQpAQCAtMjE2LDcg
KzIyMSw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgLy8gQ29uc3VtZXMgc2FtcGxlcyBm
cm9tIHRoZSBpbi1tZW1vcnkgYnVmZmVyLgotICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVz
KiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlCisgICAgdm9pZCBwcm92aWRl
SW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICB7CiAgICAg
ICAgIEFTU0VSVChtX3NvdXJjZSAmJiBidXMpOwogICAgICAgICBpZiAoIW1fc291cmNlIHx8ICFi
dXMpCkBAIC0yNTMsMjcgKzI1OCwyNyBAQCB2b2lkIFNpbmNSZXNhbXBsZXI6OnByb2Nlc3MoY29u
c3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBudQogICAgIAog
ICAgIHdoaWxlIChyZW1haW5pbmcpIHsKICAgICAgICAgdW5zaWduZWQgZnJhbWVzVGhpc1RpbWUg
PSBzdGQ6Om1pbihyZW1haW5pbmcsIG1fcmVxdWVzdEZyYW1lcyk7Ci0gICAgICAgIHByb2Nlc3Mo
JnNvdXJjZVByb3ZpZGVyLCBkZXN0aW5hdGlvbiwgZnJhbWVzVGhpc1RpbWUpOworICAgICAgICBw
cm9jZXNzKGRlc3RpbmF0aW9uLCBmcmFtZXNUaGlzVGltZSwgWyZzb3VyY2VQcm92aWRlcl0oQXVk
aW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgeworICAgICAgICAgICAgc291cmNl
UHJvdmlkZXIucHJvdmlkZUlucHV0KGJ1cywgZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgfSk7
CiAgICAgICAgIAogICAgICAgICBkZXN0aW5hdGlvbiArPSBmcmFtZXNUaGlzVGltZTsKICAgICAg
ICAgcmVtYWluaW5nIC09IGZyYW1lc1RoaXNUaW1lOwogICAgIH0KIH0KIAotdm9pZCBTaW5jUmVz
YW1wbGVyOjpwcm9jZXNzKEF1ZGlvU291cmNlUHJvdmlkZXIqIHNvdXJjZVByb3ZpZGVyLCBmbG9h
dCogZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit2b2lkIFNpbmNSZXNhbXBs
ZXI6OnByb2Nlc3MoZmxvYXQqIGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBj
b25zdCBGdW5jdGlvbjx2b2lkKEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
PiYgcHJvdmlkZUlucHV0KQogewotICAgIEFTU0VSVChzb3VyY2VQcm92aWRlcik7Ci0gICAgaWYg
KCFzb3VyY2VQcm92aWRlcikKKyAgICBBU1NFUlQocHJvdmlkZUlucHV0KTsKKyAgICBpZiAoIXBy
b3ZpZGVJbnB1dCkKICAgICAgICAgcmV0dXJuOwotICAgIAotICAgIG1fc291cmNlUHJvdmlkZXIg
PSBzb3VyY2VQcm92aWRlcjsKIAogICAgIHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25GcmFt
ZXMgPSBmcmFtZXNUb1Byb2Nlc3M7CiAKICAgICAvLyBTdGVwICgxKQogICAgIC8vIFByaW1lIHRo
ZSBpbnB1dCBidWZmZXIgYXQgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBzdHJlYW0uCiAgICAgaWYg
KCFtX2lzQnVmZmVyUHJpbWVkKSB7Ci0gICAgICAgIGNvbnN1bWVTb3VyY2UobV9yMCwgbV9yZXF1
ZXN0RnJhbWVzKTsKKyAgICAgICAgY29uc3VtZVNvdXJjZShtX3IwLCBtX3JlcXVlc3RGcmFtZXMs
IHByb3ZpZGVJbnB1dCk7CiAgICAgICAgIG1faXNCdWZmZXJQcmltZWQgPSB0cnVlOwogICAgIH0K
ICAgICAKQEAgLTUyMSw3ICs1MjYsNyBAQCB2b2lkIFNpbmNSZXNhbXBsZXI6OnByb2Nlc3MoQXVk
aW9Tb3VyY2VQcm92aWRlciogc291cmNlUHJvdmlkZXIsIGZsb2F0KiBkZXN0aW5hdAogCiAgICAg
ICAgIC8vIFN0ZXAgKDUpCiAgICAgICAgIC8vIFJlZnJlc2ggdGhlIGJ1ZmZlciB3aXRoIG1vcmUg
aW5wdXQuCi0gICAgICAgIGNvbnN1bWVTb3VyY2UobV9yMCwgbV9yZXF1ZXN0RnJhbWVzKTsKKyAg
ICAgICAgY29uc3VtZVNvdXJjZShtX3IwLCBtX3JlcXVlc3RGcmFtZXMsIHByb3ZpZGVJbnB1dCk7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9T
aW5jUmVzYW1wbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1w
bGVyLmgKaW5kZXggOWEyZWRkNmE3MjhiMjBiMTI4MzA5YjE2ZGEyNjZmNzUwOTZlOGVjOC4uZDBh
NDI4MzJkZjg4ZmYzMzJiNGFiM2M0YTEwZTMxZmUyYzNmMjJjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuaApAQCAtNDEsMTkgKzQxLDIzIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNpbmNSZXNhbXBsZXIgZmluYWwgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgZGVmYXVsdFJlcXVlc3RGcmFtZXMgeyA1MTIgfTsKKwogICAgIC8vIHNjYWxlRmFjdG9yID09
IHNvdXJjZVNhbXBsZVJhdGUgLyBkZXN0aW5hdGlvblNhbXBsZVJhdGUKICAgICAvLyByZXF1ZXN0
RnJhbWVzIGNvbnRyb2xzIHRoZSBzaXplIGluIGZyYW1lcyBvZiB0aGUgYnVmZmVyIHJlcXVlc3Rl
ZCBieSBlYWNoIHByb3ZpZGVJbnB1dCgpIGNhbGwuCi0gICAgU2luY1Jlc2FtcGxlcihkb3VibGUg
c2NhbGVGYWN0b3IsIE9wdGlvbmFsPHVuc2lnbmVkPiByZXF1ZXN0RnJhbWVzID0gV1RGOjpudWxs
b3B0KTsKKyAgICBTaW5jUmVzYW1wbGVyKGRvdWJsZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgcmVx
dWVzdEZyYW1lcyA9IGRlZmF1bHRSZXF1ZXN0RnJhbWVzKTsKICAgICAKKyAgICBzaXplX3QgY2h1
bmtTaXplKCkgY29uc3QgeyByZXR1cm4gbV9jaHVua1NpemU7IH0KKwogICAgIC8vIFByb2Nlc3Nl
cyBudW1iZXJPZlNvdXJjZUZyYW1lcyBmcm9tIHNvdXJjZSB0byBwcm9kdWNlIG51bWJlck9mU291
cmNlRnJhbWVzIC8gc2NhbGVGYWN0b3IgZnJhbWVzIGluIGRlc3RpbmF0aW9uLgogICAgIHZvaWQg
cHJvY2Vzcyhjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IG51bWJlck9mU291cmNlRnJhbWVzKTsKIAotICAgIC8vIFByb2Nlc3Mgd2l0aCBpbnB1dCBzb3Vy
Y2UgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHN0cmVhbWluZyBhcHBsaWNhdGlvbnMuCi0gICAgdm9p
ZCBwcm9jZXNzKEF1ZGlvU291cmNlUHJvdmlkZXIqLCBmbG9hdCogZGVzdGluYXRpb24sIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIC8vIFByb2Nlc3Mgd2l0aCBwcm92aWRlSW5wdXQgY2Fs
bGJhY2sgZnVuY3Rpb24gZm9yIHN0cmVhbWluZyBhcHBsaWNhdGlvbnMuCisgICAgdm9pZCBwcm9j
ZXNzKGZsb2F0KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgRnVu
Y3Rpb248dm9pZChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mIHByb3Zp
ZGVJbnB1dCk7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGluaXRpYWxpemVLZXJuZWwoKTsKLSAg
ICB2b2lkIGNvbnN1bWVTb3VyY2UoZmxvYXQqIGJ1ZmZlciwgdW5zaWduZWQgbnVtYmVyT2ZTb3Vy
Y2VGcmFtZXMpOworICAgIHZvaWQgY29uc3VtZVNvdXJjZShmbG9hdCogYnVmZmVyLCB1bnNpZ25l
ZCBudW1iZXJPZlNvdXJjZUZyYW1lcywgY29uc3QgRnVuY3Rpb248dm9pZChBdWRpb0J1cyogYnVz
LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mIHByb3ZpZGVJbnB1dCk7CiAgICAgdm9pZCB1cGRh
dGVSZWdpb25zKGJvb2wgaXNTZWNvbmRMb2FkKTsKICAgICAKICAgICBkb3VibGUgbV9zY2FsZUZh
Y3RvcjsKQEAgLTcyLDYgKzc2LDggQEAgcHJvdGVjdGVkOgogICAgIC8vIFRoZSBudW1iZXIgb2Yg
c291cmNlIGZyYW1lcyBwcm9jZXNzZWQgcGVyIHBhc3MuCiAgICAgdW5zaWduZWQgbV9ibG9ja1Np
emUgeyAwIH07CiAKKyAgICBzaXplX3QgbV9jaHVua1NpemUgeyAwIH07CisKICAgICAvLyBTb3Vy
Y2UgaXMgY29waWVkIGludG8gdGhpcyBidWZmZXIgZm9yIGVhY2ggcHJvY2Vzc2luZyBwYXNzLgog
ICAgIEF1ZGlvRmxvYXRBcnJheSBtX2lucHV0QnVmZmVyOwogCkBAIC04NSw5ICs5MSw2IEBAIHBy
b3RlY3RlZDoKIAogICAgIGNvbnN0IGZsb2F0KiBtX3NvdXJjZSB7IG51bGxwdHIgfTsKICAgICB1
bnNpZ25lZCBtX3NvdXJjZUZyYW1lc0F2YWlsYWJsZSB7IDAgfTsKLSAgICAKLSAgICAvLyBtX3Nv
dXJjZVByb3ZpZGVyIGlzIHVzZWQgdG8gcHJvdmlkZSB0aGUgYXVkaW8gaW5wdXQgc3RyZWFtIHRv
IHRoZSByZXNhbXBsZXIuCi0gICAgQXVkaW9Tb3VyY2VQcm92aWRlciogbV9zb3VyY2VQcm92aWRl
ciB7IG51bGxwdHIgfTsKIAogICAgIC8vIFRoZSBidWZmZXIgaXMgcHJpbWVkIG9uY2UgYXQgdGhl
IHZlcnkgYmVnaW5uaW5nIG9mIHByb2Nlc3NpbmcuCiAgICAgYm9vbCBtX2lzQnVmZmVyUHJpbWVk
IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBiYTViMjJmNTYwZGFkNmRlNDI4OWM2NmI1ODQzYTJmNTg2ZDAx
NGE3Li45MTZkNDkyOWY3ZWVkMDQ4YzI4MjAwNDU1NWRkMmU4MWRlNzRkMmI0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMjAtMTEtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBQb29yIHJlc2FtcGxpbmcgcXVhbGl0eSB3aGVuIHVzaW5nIEF1ZGlvQ29udGV4
dCBzYW1wbGVSYXRlIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE5MjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4u
CisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlIHRoYXQgd291bGQgaGl0IGFzc2Vy
dGlvbnMgaW4gZGVidWcuCisKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Ut
c2FtcGxlcmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlv
Y29udGV4dC1sYXJnZS1zYW1wbGVyYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlv
L2F1ZGlvY29udGV4dC1sb3ctc2FtcGxlcmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYmF1ZGlvL2F1ZGlvY29udGV4dC1sb3ctc2FtcGxlcmF0ZS5odG1sOiBBZGRlZC4KKwog
MjAyMC0xMS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjcwMTQxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9jb250ZXh0LWxhcmdlLXNhbXBsZXJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LWxhcmdlLXNhbXBsZXJhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNlZDE2NjU5YmM1MjE2ZGVhODJjOTdmMDQyNDE5NWEzNjI0NDdjZmUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Ut
c2FtcGxlcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCB3ZSBk
byBub3QgY3Jhc2ggd2hlbiB1c2luZyBhIHZlcnkgbGFyZ2Ugc2FtcGxlIHJhdGUKKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGV4dC5zYW1wbGVSYXRlIGlzIDM4NDAw
MAorUEFTUyBjb250ZXh0LnN0YXRlIGlzICJydW5uaW5nIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvY29udGV4dC1sYXJnZS1zYW1wbGVyYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxlcmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0
ZDAwYWU3ZjhiMjI4ODk5ZDZkNjAyZDZlNjQyYWFjMDQ5YTM3MDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbGFyZ2Utc2FtcGxlcmF0ZS5odG1s
CkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgd2UgZG8gbm90IGNyYXNoIHdoZW4gdXNpbmcgYSB2ZXJ5IGxh
cmdlIHNhbXBsZSByYXRlIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29udGV4dCA9IG5l
dyBBdWRpb0NvbnRleHQoeyBzYW1wbGVSYXRlOiAzODQwMDAgfSk7CitzaG91bGRCZSgiY29udGV4
dC5zYW1wbGVSYXRlIiwgIjM4NDAwMCIpOworCitub2RlID0gbmV3IENvbnN0YW50U291cmNlTm9k
ZShjb250ZXh0LCB7IG9mZnNldDogMC41IH0pOworbm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGlu
YXRpb24pOworbm9kZS5zdGFydCgpOworCitzZXRUaW1lb3V0KCgpID0+IHsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImNvbnRleHQuc3RhdGUiLCAicnVubmluZyIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfSwgMTAwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LWxvdy1zYW1wbGVyYXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY29udGV4dC1sb3ctc2FtcGxlcmF0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU0MDE0MjBiY2M4NGM1ZThhMmY1MGYzYjEyNjdi
YTNiOTU2Y2JkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
Y29udGV4dC1sb3ctc2FtcGxlcmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVz
dHMgdGhhdCB3ZSBkbyBub3QgY3Jhc2ggd2hlbiB1c2luZyBhIHZlcnkgbG93IHNhbXBsZSByYXRl
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNvbnRleHQuc2FtcGxlUmF0
ZSBpcyAzMDAwCitQQVNTIGNvbnRleHQuc3RhdGUgaXMgInJ1bm5pbmciCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LWxvdy1zYW1wbGVyYXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2NvbnRleHQtbG93LXNhbXBsZXJhdGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYzE5ZDJkMzY2ZTMzODIwYjI5ZGNlNGMxYjJjYzVkMWZkMDJiNTI5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jb250ZXh0LWxvdy1zYW1wbGVyYXRlLmh0
bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3ZSBkbyBub3QgY3Jhc2ggd2hlbiB1c2luZyBhIHZlcnkg
bG93IHNhbXBsZSByYXRlIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29udGV4dCA9IG5l
dyBBdWRpb0NvbnRleHQoeyBzYW1wbGVSYXRlOiAzMDAwIH0pOworc2hvdWxkQmUoImNvbnRleHQu
c2FtcGxlUmF0ZSIsICIzMDAwIik7CisKK25vZGUgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNv
bnRleHQsIHsgb2Zmc2V0OiAwLjUgfSk7Citub2RlLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlv
bik7Citub2RlLnN0YXJ0KCk7CisKK3NldFRpbWVvdXQoKCkgPT4geworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiY29udGV4dC5zdGF0ZSIsICJydW5uaW5nIik7CisgICAgZmluaXNoSlNUZXN0
KCk7Cit9LCAxMDApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>