<?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>197631</bug_id>
          
          <creation_ts>2019-05-06 15:15:37 -0700</creation_ts>
          <short_desc>[JSC] Strict, Sloppy and Arrow functions should have different classInfo</short_desc>
          <delta_ts>2019-06-22 00:49:11 -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>JavaScriptCore</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="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1533584</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-05-06 15:15:37 -0700</bug_when>
    <thetext>&apos;arguments&apos; behave differently in sloppy and strict mode. So if we cache HasOwnProperty(&apos;arguments&apos;) in strict mode, then try to call it again in sloppy mode (or vice-versa) the result will be wrong.
The simplest solution is just not to ever cache HasOwnProperty(&apos;arguments&apos;).
Adding a bit for sloppy/strict in the keys would also work, but it would complicate things for the common case, and I don&apos;t expect HasOwnProperty(&apos;arguments&apos;) to be super common.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533585</commentid>
    <comment_count>1</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-05-06 15:15:59 -0700</bug_when>
    <thetext>rdar://problem/50202206</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533593</commentid>
    <comment_count>2</comment_count>
      <attachid>369178</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-05-06 15:21:36 -0700</bug_when>
    <thetext>Created attachment 369178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533603</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-06 15:28:44 -0700</bug_when>
    <thetext>(In reply to Robin Morisset from comment #0)
&gt; &apos;arguments&apos; behave differently in sloppy and strict mode. So if we cache
&gt; HasOwnProperty(&apos;arguments&apos;) in strict mode, then try to call it again in
&gt; sloppy mode (or vice-versa) the result will be wrong.
&gt; The simplest solution is just not to ever cache HasOwnProperty(&apos;arguments&apos;).
&gt; Adding a bit for sloppy/strict in the keys would also work, but it would
&gt; complicate things for the common case, and I don&apos;t expect
&gt; HasOwnProperty(&apos;arguments&apos;) to be super common.

Why don&apos;t these have different structures?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1533605</commentid>
    <comment_count>4</comment_count>
      <attachid>369178</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-06 15:30:57 -0700</bug_when>
    <thetext>Comment on attachment 369178
Patch

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

&gt; JSTests/stress/has-own-property-arguments.js:3
&gt; +class A extends Function {}
&gt; +new A(&quot;&apos;use strict&apos;;&quot;).hasOwnProperty(&apos;arguments&apos;);
&gt; +new A().hasOwnProperty(&apos;arguments&apos;);

I&apos;m super confused what this is doing. This is just calling the constructor with a string as the first argument.

Also, classes are always in strict mode. Can you explain what&apos;s going on? Can this also test what it expects the results to be?

&gt; Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:95
&gt; +        // We don&apos;t cache accesses to arguments, because it depends on whether we are in strict or sloppy mode.
&gt; +        if (propName == &quot;arguments&quot;)
&gt; +            return;

This seems wrong. We should be reflecting this in Structure. It&apos;s unlikely the bug is just here and not also in Get</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541645</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2019-06-04 10:49:41 -0700</bug_when>
    <thetext>(In reply to Robin Morisset from comment #0)
&gt; &apos;arguments&apos; behave differently in sloppy and strict mode. So if we cache
&gt; HasOwnProperty(&apos;arguments&apos;) in strict mode, then try to call it again in
&gt; sloppy mode (or vice-versa) the result will be wrong.
&gt; The simplest solution is just not to ever cache HasOwnProperty(&apos;arguments&apos;).
&gt; Adding a bit for sloppy/strict in the keys would also work, but it would
&gt; complicate things for the common case, and I don&apos;t expect
&gt; HasOwnProperty(&apos;arguments&apos;) to be super common.

Why wouldn&apos;t the sloppy-strict change be caught by the cache?

A function can&apos;t change its mind about whether it is strict or sloppy.  Is the issue that function objects for strict functions have the same structure as function objects for sloppy functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547060</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-21 20:03:23 -0700</bug_when>
    <thetext>Function constructor should pick a correct structure, I think this is the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547061</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-21 20:04:25 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #6)
&gt; Function constructor should pick a correct structure, I think this is the
&gt; issue.

Ah, no. Investigating</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547062</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-21 20:08:31 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #7)
&gt; (In reply to Yusuke Suzuki from comment #6)
&gt; &gt; Function constructor should pick a correct structure, I think this is the
&gt; &gt; issue.
&gt; 
&gt; Ah, no. Investigating

The issue is that InternalFunction::createSubclassStructureSlow caches the structure, and when using the previous structure, we are assuming that &quot;If classInfo is the same, we should reuse the cached one&quot;. This is wrong for this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547067</commentid>
    <comment_count>9</comment_count>
      <attachid>372671</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-21 21:58:40 -0700</bug_when>
    <thetext>Created attachment 372671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547068</commentid>
    <comment_count>10</comment_count>
      <attachid>372672</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-21 22:00:49 -0700</bug_when>
    <thetext>Created attachment 372672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547070</commentid>
    <comment_count>11</comment_count>
      <attachid>372672</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-06-21 22:38:48 -0700</bug_when>
    <thetext>Comment on attachment 372672
Patch

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

r=me

&gt; JSTests/stress/has-own-property-arguments.js:8
&gt; +shouldBe(new A().hasOwnProperty(&apos;arguments&apos;), true);

Can you also add tests that would break get by id inline caching?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547074</commentid>
    <comment_count>12</comment_count>
      <attachid>372672</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-22 00:12:50 -0700</bug_when>
    <thetext>Comment on attachment 372672
Patch

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

Thanks!

&gt;&gt; JSTests/stress/has-own-property-arguments.js:8
&gt;&gt; +shouldBe(new A().hasOwnProperty(&apos;arguments&apos;), true);
&gt; 
&gt; Can you also add tests that would break get by id inline caching?

Sure! Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547078</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-06-22 00:48:12 -0700</bug_when>
    <thetext>Committed r246709: &lt;https://trac.webkit.org/changeset/246709&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369178</attachid>
            <date>2019-05-06 15:21:36 -0700</date>
            <delta_ts>2019-06-21 21:58:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch197631</filename>
            <type>text/plain</type>
            <size>2604</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDQ5NzkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTA1LTA2ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBh
cHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgY2FjaGUgSGFzT3duUHJvcGVydHkgb24gJ2FyZ3Vt
ZW50cycKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NzYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RyZXNzL2hhcy1vd24tcHJvcGVydHktYXJndW1lbnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKEEp
OgorCiAyMDE5LTA1LTA2ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVGVtcGxhdGVPYmplY3QgcGFzc2VkIHRvIHRlbXBsYXRlIGxpdGVyYWwgdGFncyBhcmUg
bm90IGFsd2F5cyBpZGVudGljYWwgZm9yIHRoZSBzYW1lIHNvdXJjZSBsb2NhdGlvbi4KSW5kZXg6
IEpTVGVzdHMvc3RyZXNzL2hhcy1vd24tcHJvcGVydHktYXJndW1lbnRzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvc3RyZXNzL2hhcy1vd24tcHJvcGVydHktYXJndW1lbnRzLmpzCShub25leGlz
dGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL2hhcy1vd24tcHJvcGVydHktYXJndW1lbnRzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorY2xhc3MgQSBleHRlbmRzIEZ1bmN0aW9uIHt9
CituZXcgQSgiJ3VzZSBzdHJpY3QnOyIpLmhhc093blByb3BlcnR5KCdhcmd1bWVudHMnKTsKK25l
dyBBKCkuaGFzT3duUHJvcGVydHkoJ2FyZ3VtZW50cycpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNDQ5NzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDUtMDYgIFJvYmluIE1v
cmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBjYWNoZSBIYXNP
d25Qcm9wZXJ0eSBvbiAnYXJndW1lbnRzJworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk3NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAnYXJndW1lbnRzJyBiZWhhdmUgZGlmZmVyZW50bHkgaW4gc2xvcHB5
IGFuZCBzdHJpY3QgbW9kZS4gU28gaWYgd2UgY2FjaGUgSGFzT3duUHJvcGVydHkoJ2FyZ3VtZW50
cycpIGluIHN0cmljdCBtb2RlLCB0aGVuIHRyeSB0byBjYWxsIGl0IGFnYWluIGluIHNsb3BweSBt
b2RlIChvciB2aWNlLXZlcnNhKSB0aGUgcmVzdWx0IHdpbGwgYmUgd3JvbmcuIAorCisgICAgICAg
ICogcnVudGltZS9IYXNPd25Qcm9wZXJ0eUNhY2hlLmg6CisgICAgICAgIChKU0M6Okhhc093blBy
b3BlcnR5Q2FjaGU6OnRyeUFkZCk6CisKIDIwMTktMDUtMDYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wbGF0ZU9iamVjdCBwYXNzZWQgdG8gdGVtcGxh
dGUgbGl0ZXJhbCB0YWdzIGFyZSBub3QgYWx3YXlzIGlkZW50aWNhbCBmb3IgdGhlIHNhbWUgc291
cmNlIGxvY2F0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3du
UHJvcGVydHlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0hhc093blByb3BlcnR5Q2FjaGUuaAkocmV2aXNpb24gMjQ0OTE4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSGFzT3duUHJvcGVydHlDYWNoZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC04OSw2ICs4OSwxMCBAQAogCiAgICAgICAgIGlmIChvYmplY3QtPnR5cGUoKSA9PSBQdXJl
Rm9yd2FyZGluZ1Byb3h5VHlwZSB8fCBvYmplY3QtPnR5cGUoKSA9PSBJbXB1cmVQcm94eVR5cGUp
CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICAvLyBXZSBkb24ndCBjYWNo
ZSBhY2Nlc3NlcyB0byBhcmd1bWVudHMsIGJlY2F1c2UgaXQgZGVwZW5kcyBvbiB3aGV0aGVyIHdl
IGFyZSBpbiBzdHJpY3Qgb3Igc2xvcHB5IG1vZGUuCisgICAgICAgIGlmIChwcm9wTmFtZSA9PSAi
YXJndW1lbnRzIikKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IG9iamVjdC0+c3RydWN0dXJlKHZtKTsKICAgICAgICAgaWYgKCFzdHJ1Y3R1cmUt
PnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372671</attachid>
            <date>2019-06-21 21:58:40 -0700</date>
            <delta_ts>2019-06-21 22:00:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197631-20190621215840.patch</filename>
            <type>text/plain</type>
            <size>13250</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
M2YxNWVkOWE0M2U2NGQzYzk4Nzg1OTcxYTBlZWI3NWY3ZDFhMGYxLi40YjlmMmJhMDc2NmY0NDA3
MzViYjA3NTZiZGJkYmFhY2RkYTMwNTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxOS0wNi0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFN0cmljdCwgU2xvcHB5IGFuZCBBcnJvdyBmdW5jdGlvbnMgc2hv
dWxkIGhhdmUgZGlmZmVyZW50IGNsYXNzSW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSWYgYSBjb25zdHJ1Y3RvciBpbmhlcml0cyBhIGJ1aWx0aW4g
Y2xhc3MsIGl0IGNyZWF0ZXMgYSBTdHJ1Y3R1cmUgd2hpY2ggaXMgc3ViY2xhc3NpbmcgdGhlIGJ1
aWx0aW4gY2xhc3MuCisgICAgICAgIFRoaXMgaXMgZG9uZSBieSB1c2luZyBJbnRlcm5hbEZ1bmN0
aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZS4gQnV0IHRvIGFjY2VsZXJhdGUgdGhlIGNvbW1v
biBjYXNlcywgd2UKKyAgICAgICAgY2FjaGUgdGhlIGNyZWF0ZWQgc3RydWN0dXJlIGluIEludGVy
bmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS4gV2hldGhlciB0aGUgY2FjaGUgaXMgdmFsaWQg
aXMgY2hlY2tlZAorICAgICAgICBieSBjb21wYXJpbmcgY2xhc3NJbmZvIG9mIHRoZSBjYWNoZWQg
c3RydWN0dXJlIGFuZCB0aGUgZ2l2ZW4gYmFzZSBzdHJ1Y3R1cmUuIFRoaXMgaW1wbGljaXRseSBh
c3N1bWUgdGhhdAorICAgICAgICBlYWNoIGJ1aWx0aW4gY2xhc3MncyBJbnRlcm5hbEZ1bmN0aW9u
IGNyZWF0ZXMgYW4gaW5zdGFuY2UgYmFzZWQgb24gb25lIHN0cnVjdHVyZS4KKworICAgICAgICBI
b3dldmVyLCBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBhbiBleGNlcHRpb246IEZ1bmN0aW9uIGNv
bnN0cnVjdG9yIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugd2hpY2ggaGFzIGRpZmZlcmVudAorICAgICAg
ICBzdHJ1Y3R1cmVzIGJhc2VkIG9uIGEgcGFyYW1ldGVyLiBJZiBhIHN0cmljdCBjb2RlIGlzIGdp
dmVuIChlLmcuICIndXNlIHN0cmljdCciKSwgaXQgY3JlYXRlcyBhIGZ1bmN0aW9uCisgICAgICAg
IGluc3RhbmNlIHdpdGggc3RyaWN0IGZ1bmN0aW9uIHN0cnVjdHVyZS4KKworICAgICAgICBBcyBh
IHJlc3VsdCwgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlIGluY29ycmVjdGx5IGNh
Y2hlcyB0aGUgc3RydWN0dXJlLiBDb25zaWRlciB0aGUgZm9sbG93aW5nIGNvZGUuCisKKyAgICAg
ICAgICAgIGNsYXNzIEEgZXh0ZW5kcyBGdW5jdGlvbiB7IH07CisgICAgICAgICAgICBsZXQgYSA9
IG5ldyBBKCIndXNlIHN0cmljdCciKTsKKyAgICAgICAgICAgIGxldCBiID0gbmV3IEEoIiIpOwor
CisgICAgICAgIFdoaWxlIGBhYCBhbmQgYGJgIHNob3VsZCBoYXZlIGRpZmZlcmVudCBzdHJ1Y3R1
cmVzLCBgQWAgY2FjaGVzIHRoZSBzdHJ1Y3R1cmUgZm9yIGBhYCwgYW5kIHJldXNlIGl0IGV2ZW4g
dGhlIGdpdmVuCisgICAgICAgIGNvZGUgaXMgbm90IGEgc3RyaWN0IGNvZGUuIFRoaXMgaXMgcHJv
YmxlbWF0aWM6IFdlIGFyZSBzZXBhcmF0aW5nIHN0cnVjdHVyZXMgb2Ygc3RyaWN0LCBzbG9wcHks
IGFuZCBhcnJvdyBmdW5jdGlvbnMKKyAgICAgICAgYmVjYXVzZSB0aGV5IGhhdmUgZGlmZmVyZW50
IHByb3BlcnRpZXMuIEhvd2V2ZXIsIGluIHRoZSBhYm92ZSBjYXNlLCBhIGFuZCBiIGhhdmUgdGhl
IHNhbWUgc3RydWN0dXJlIHdoaWxlIHRoZXkgaGF2ZQorICAgICAgICBkaWZmZXJlbnQgcHJvcGVy
dGllcy4gU28gaXQgY2F1c2VzIGluY29ycmVjdCBzdHJ1Y3R1cmUtYmFzZWQgY2FjaGluZyBpbiBK
U0MuIE9uZSBvZiB0aGUgZXhhbXBsZSBpcyBIYXNPd25Qcm9wZXJ0eUNhY2hlLgorCisgICAgICAg
IEluIHRoaXMgcGF0Y2gsIHdlIGludHJvZHVjZSBKU1N0cmljdEZ1bmN0aW9uLCBKU1Nsb3BweUZ1
bmN0aW9uLCBhbmQgSlNBcnJvd0Z1bmN0aW9uIGNsYXNzZXMgYW5kIGNsYXNzSW5mb3MuIFRoaXMg
ZGVzaWduCisgICAgICAgIHdvcmtzIHdlbGwgYW5kIGFscmVhZHkgcGFydGlhbGx5IGFjY2VwdGVk
IGZvciBKU0dlbmVyYXRvckZ1bmN0aW9uLCBKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24sIGFuZCBK
U0FzeW5jRnVuY3Rpb24uIEVhY2gKKyAgICAgICAgc3RydWN0dXJlIG5vdyBoYXMgYSBkaWZmZXJl
bnQgY2xhc3NJbmZvIHNvIHRoYXQgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlIGNv
cnJlY3RseSBjYWNoZXMgYW5kIGludmFsaWRhdGVzIHRoZQorICAgICAgICBjYWNoZWQgb25lIGJh
c2VkIG9uIHRoZSBjbGFzc0luZm8uIFNpbmNlIHdlIGFscmVhZHkgaGF2ZSBkaWZmZXJlbnQgc3Ry
dWN0dXJlcyBmb3IgdGhlc2UgaW5zdGFuY2VzLCBhbmQgREZHIGFuZCBGVEwKKyAgICAgICAgb3B0
aW1pemF0aW9ucyBhcmUgYmFzZWQgb24gSlNGdW5jdGlvblR5cGUgKG5vdCBjbGFzc0luZm8pLCBp
bnRyb2R1Y2luZyB0aGVzZSB0aHJlZSBjbGFzc0luZm8gZG8gbm90IGJyZWFrIHRoZSBvcHRpbWl6
YXRpb24uCisKKyAgICAgICAgTm90ZSB0aGF0IHN0cnVjdHVyZXMgb24gQXJyYXlDb25zdHJ1Y3Rv
ciBkb2VzIG5vdCBjYXVzZSB0aGUgc2FtZSBwcm9ibGVtLiBJdCBvbmx5IHVzZXMgVW5kZWNpZGVk
IGluZGV4aW5nIHR5cGVkIGFycmF5CisgICAgICAgIHN0cnVjdHVyZSBpbiBJbnRlcm5hbEZ1bmN0
aW9uQWxsb2NhdGlvblByb2ZpbGUsIGFuZCBvbmNlIGhhdmVBQmFkVGltZSBoYXBwZW5zLCBpdCBj
bGVhcnMgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLgorCisgICAgICAgICogcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlv
bjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmVTbG93KToKKyAgICAgICAgKiBydW50aW1lL0pTQXN5
bmNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0aW9u
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0
aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmg6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0Ojppbml0KToKKwogMjAxOS0wNi0yMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CiAKICAgICAgICAgUmVtb3ZlIGV4dHJhIGNoZWNrIGluIFJlZ0V4cCBAbWF0Y2hT
bG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rp
b24uY3BwCmluZGV4IDY3NzE4ZTI2ZTk3YmM0MTc5OWEzY2NkMzcwYjg4M2I0YWI2NTllYzAuLjk1
OGU4ZDM3MTQ3MDk0OWY0YjJkMDIzZTkxNTY1MWNjZjI4YWJmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCkBAIC0xMzAsNyAr
MTMwLDcgQEAgU3RydWN0dXJlKiBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVj
dHVyZVNsb3coRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHUKIAogICAgIGlmIChMSUtFTFkodGFyZ2V0
RnVuY3Rpb24pKSB7CiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdGFyZ2V0RnVuY3Rp
b24tPnJhcmVEYXRhKHZtKS0+aW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25TdHJ1Y3R1cmUoKTsK
LSAgICAgICAgaWYgKExJS0VMWShzdHJ1Y3R1cmUgJiYgc3RydWN0dXJlLT5jbGFzc0luZm8oKSA9
PSBiYXNlQ2xhc3MtPmNsYXNzSW5mbygpKSkKKyAgICAgICAgaWYgKExJS0VMWShzdHJ1Y3R1cmUg
JiYgKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkgPT0gYmFzZUNsYXNzLT5jbGFzc0luZm8oKSkpKQog
ICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKIAogICAgICAgICAvLyBOb3RlLCBSZWZsZWN0
LmNvbnN0cnVjdCBtaWdodCBjYXVzZSB0aGUgcHJvZmlsZSB0byBjaHVybiBidXQgd2UgZG9uJ3Qg
Y2FyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXN5bmNG
dW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0Z1bmN0aW9u
LmgKaW5kZXggYmE4MGJhYjZjOWM5ZmJiNjQ0YWE3MmZjNmYwODhkNmU5NzliMDc3Mi4uY2IxOThi
NWZhNzE0MDUxM2U0Y2IyNjFiYWVkOTMzNDljNDg3NTMxYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0Z1bmN0aW9uLmgKQEAgLTM4LDEyICszOCw2IEBAIGNs
YXNzIEpTQXN5bmNGdW5jdGlvbiBmaW5hbCA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKIAogICAgIGNv
bnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdz
OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgotICAg
IHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQotICAgIHsKLSAgICAgICAg
cmV0dXJuICZ2bS5mdW5jdGlvblNwYWNlOwotICAgIH0KLQogICAgIERFQ0xBUkVfRVhQT1JUX0lO
Rk87CiAKICAgICBzdGF0aWMgSlNBc3luY0Z1bmN0aW9uKiBjcmVhdGUoVk0mLCBGdW5jdGlvbkV4
ZWN1dGFibGUqLCBKU1Njb3BlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uLmNwcAppbmRleCAwOWZhYzA1ODY2
MmZlZWEyY2ZjMTg5MmMxMDdlMjQyZDQzNzM5MzMzLi5jZTg1YjJiZWE4MjNiNjNmNTMzMjk3N2Fk
ZTJjMzU1YTljMWIzOTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5jcHAKQEAgLTM3LDcgKzM3LDcgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IENsYXNzSW5mbyBKU0FzeW5jR2VuZXJhdG9yRnVu
Y3Rpb24gICAgOjpzX2luZm8gPSB7ICJKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCAgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0FzeW5jR2Vu
ZXJhdG9yRnVuY3Rpb24pIH07Citjb25zdCBDbGFzc0luZm8gSlNBc3luY0dlbmVyYXRvckZ1bmN0
aW9uOjpzX2luZm8gPSB7ICJKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCAgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0FzeW5jR2VuZXJhdG9y
RnVuY3Rpb24pIH07CiAKIEpTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbjo6SlNBc3luY0dlbmVyYXRv
ckZ1bmN0aW9uKFZNJiB2bSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBKU1Njb3Bl
KiBzY29wZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBleGVjdXRhYmxl
LCBzY29wZSwgc3RydWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uaAppbmRleCA3MDIzOWI4YzAzYTAzNTQ1
ZTE5M2M2NzgxYmY0NTJhNWI2YWY0ZTM3Li44NmJhMzcxYjBkMTFjNjBkNzhhMjE4OTIyMjBjNmQy
YjNkMjlhOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fz
eW5jR2VuZXJhdG9yRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uaApAQCAtMzgsMTIgKzM4LDYgQEAgY2xhc3MgSlNB
c3luY0dlbmVyYXRvckZ1bmN0aW9uIGZpbmFsIDogcHVibGljIEpTRnVuY3Rpb24gewogCiAgICAg
Y29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxh
Z3M7CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+Ci0g
ICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCi0gICAgewotICAgICAg
ICByZXR1cm4gJnZtLmZ1bmN0aW9uU3BhY2U7Ci0gICAgfQotCiAgICAgREVDTEFSRV9FWFBPUlRf
SU5GTzsKIAogICAgIHN0YXRpYyBKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24qIGNyZWF0ZShWTSYs
IEZ1bmN0aW9uRXhlY3V0YWJsZSosIEpTU2NvcGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggOWFiM2MyMmMwNGI0MjVhNzI1ZDM1Mzc2NDgy
N2IyYjM0YjJlYzMzMi4uZjI0NGZhOTI1NjRhZThkNzgzMGViYTc0MmFlNzg1ZmNhMGU3NjNkNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTYw
LDYgKzYwLDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSG9zdEZ1bmN0aW9u
QXNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIGNvbnN0IENsYXNzSW5mbyBKU0Z1
bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNGdW5jdGlvbikgfTsKK2NvbnN0IENsYXNzSW5m
byBKU1N0cmljdEZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNTdHJpY3RGdW5jdGlvbikg
fTsKK2NvbnN0IENsYXNzSW5mbyBKU1Nsb3BweUZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNTbG9wcHlGdW5jdGlvbikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU0Fycm93RnVuY3Rpb246OnNf
aW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU0Fycm93RnVuY3Rpb24pIH07CiAKIGJvb2wgSlNGdW5jdGlvbjo6
aXNIb3N0RnVuY3Rpb25Ob25JbmxpbmUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDIyNDgzMzBkMDNmZGZhOWM1MjdlNjI4MTIwMGY1
NjNiNzJlMjJiMTIuLjk1ZjU0N2I1YjQ0NzQyMzRkZmU0NTdkNjFkZjI1YzRkMWExYjlhOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTIyNSw0ICsy
MjUsNTIgQEAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU0NhbGxlZSB7CiAgICAgV3JpdGVC
YXJyaWVyPEZ1bmN0aW9uUmFyZURhdGE+IG1fcmFyZURhdGE7CiB9OwogCitjbGFzcyBKU1N0cmlj
dEZ1bmN0aW9uIGZpbmFsIDogcHVibGljIEpTRnVuY3Rpb24geworcHVibGljOgorICAgIHVzaW5n
IEJhc2UgPSBKU0Z1bmN0aW9uOworCisgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKKworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVG
bGFnczsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTRnVuY3Rpb25UeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgfQorfTsKK3N0YXRpY19hc3NlcnQoc2l6
ZW9mKEpTU3RyaWN0RnVuY3Rpb24pID09IHNpemVvZihKU0Z1bmN0aW9uKSwgIkFsbG9jYXRlZCBp
biBKU0Z1bmN0aW9uIElzb1N1YnNwYWNlIik7CisKK2NsYXNzIEpTU2xvcHB5RnVuY3Rpb24gZmlu
YWwgOiBwdWJsaWMgSlNGdW5jdGlvbiB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IEpTRnVu
Y3Rpb247CisKKyAgICBERUNMQVJFX0VYUE9SVF9JTkZPOworCisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworCisgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICBBU1NFUlQo
Z2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKKyAgICB9Cit9Oworc3RhdGljX2Fzc2VydChzaXplb2YoSlNTbG9wcHlG
dW5jdGlvbikgPT0gc2l6ZW9mKEpTRnVuY3Rpb24pLCAiQWxsb2NhdGVkIGluIEpTRnVuY3Rpb24g
SXNvU3Vic3BhY2UiKTsKKworY2xhc3MgSlNBcnJvd0Z1bmN0aW9uIGZpbmFsIDogcHVibGljIEpT
RnVuY3Rpb24geworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU0Z1bmN0aW9uOworCisgICAg
REVDTEFSRV9FWFBPUlRfSU5GTzsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKworICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGdsb2JhbE9iamVjdCk7
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKEpTRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CisgICAgfQorfTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKEpTQXJyb3dGdW5jdGlvbikgPT0gc2l6
ZW9mKEpTRnVuY3Rpb24pLCAiQWxsb2NhdGVkIGluIEpTRnVuY3Rpb24gSXNvU3Vic3BhY2UiKTsK
KwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmgKaW5kZXggOTk3ODFjNTdiOTdhMzAzNjc1MjAzOTg4
ZjJiMzkyYmRhODJhMDMxMS4uYTQ1NGI5NTg4MDYxZDQ4YjU3ZjU2YjMwZWZlMDYzYzg0ZjI2YjI5
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmF0b3JG
dW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJhdG9y
RnVuY3Rpb24uaApAQCAtNjYsMTIgKzY2LDYgQEAgY2xhc3MgSlNHZW5lcmF0b3JGdW5jdGlvbiBm
aW5hbCA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKIAogICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgotICAgIHN0YXRpYyBJc29TdWJzcGFjZSog
c3Vic3BhY2VGb3IoVk0mIHZtKQotICAgIHsKLSAgICAgICAgcmV0dXJuICZ2bS5mdW5jdGlvblNw
YWNlOwotICAgIH0KLQogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKICAgICBzdGF0aWMgSlNH
ZW5lcmF0b3JGdW5jdGlvbiogY3JlYXRlKFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgSlNTY29w
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwCmluZGV4IDJmOTQ4YjIwMWQxOTg5NTQyZWFkZmQ2ZTY5NDhkM2JlM2JmODAwNDQuLjNjMDQ1
MzY0NDkxMDVmMDc2NjVhYTc3MjhmZjBhMjExNjU0YTA1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTQ3Miw5ICs0NzIsOSBA
QCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX2hvc3RGdW5jdGlvblN0
cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhp
cywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOwogCiAgICAgYXV0byBpbml0RnVuY3Rpb25T
dHJ1Y3R1cmVzID0gWyZdIChGdW5jdGlvblN0cnVjdHVyZXMmIHN0cnVjdHVyZXMpIHsKLSAgICAg
ICAgc3RydWN0dXJlcy5zdHJpY3RGdW5jdGlvblN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTRnVu
Y3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQo
KSkpOwotICAgICAgICBzdHJ1Y3R1cmVzLnNsb3BweUZ1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwg
dGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJv
dG90eXBlLmdldCgpKSk7Ci0gICAgICAgIHN0cnVjdHVyZXMuYXJyb3dGdW5jdGlvblN0cnVjdHVy
ZS5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9m
dW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOworICAgICAgICBzdHJ1Y3R1cmVzLnN0cmljdEZ1bmN0
aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNTdHJpY3RGdW5jdGlvbjo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CisgICAgICAgIHN0cnVj
dHVyZXMuc2xvcHB5RnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1Nsb3BweUZ1bmN0
aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkp
KTsKKyAgICAgICAgc3RydWN0dXJlcy5hcnJvd0Z1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhp
cywgSlNBcnJvd0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Q
cm90b3R5cGUuZ2V0KCkpKTsKICAgICB9OwogICAgIGluaXRGdW5jdGlvblN0cnVjdHVyZXMobV9i
dWlsdGluRnVuY3Rpb25zKTsKICAgICBpbml0RnVuY3Rpb25TdHJ1Y3R1cmVzKG1fb3JkaW5hcnlG
dW5jdGlvbnMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwppbmRleCAwYWJjMTA1NjQwZWMxZTMyODlhMWU5NTRjNjNkNGI5YzM4ODc0ZWMxLi5mZDFl
NTM4ZjA2M2E2MGJlNzMyNjA0ZTlhNDM4Yjg1MjRmYjgwNjk4IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5
LTA2LTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pT
Q10gU3RyaWN0LCBTbG9wcHkgYW5kIEFycm93IGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBkaWZmZXJl
bnQgY2xhc3NJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTc2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0cmVzcy9oYXMtb3duLXByb3BlcnR5LWFyZ3VtZW50cy5qczogQWRkZWQuCisgICAg
ICAgIChzaG91bGRCZSk6CisgICAgICAgIChBKToKKwogMjAxOS0wNi0yMCAgSnVzdGluIE1pY2hh
dWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dBU00tUmVmZXJlbmNl
c10gQWRkIGV4dHJhIHRlc3RzIGZvciBXYXNtIHJlZmVyZW5jZXMgKyBmaXggZWxlbWVudCBwYXJz
aW5nIGFuZCBzdWJ0eXBpbmcgYnVncwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaGFzLW93
bi1wcm9wZXJ0eS1hcmd1bWVudHMuanMgYi9KU1Rlc3RzL3N0cmVzcy9oYXMtb3duLXByb3BlcnR5
LWFyZ3VtZW50cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjRkMWNkZmNhYmI0YWE4NTBhNzM3MGYwYTNhOGM3
NTFkZTAyMzNhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvaGFzLW93bi1wcm9w
ZXJ0eS1hcmd1bWVudHMuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1
YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworY2xhc3MgQSBleHRl
bmRzIEZ1bmN0aW9uIHt9CitzaG91bGRCZShuZXcgQSgiJ3VzZSBzdHJpY3QnOyIpLmhhc093blBy
b3BlcnR5KCdhcmd1bWVudHMnKSwgZmFsc2UpOworc2hvdWxkQmUobmV3IEEoKS5oYXNPd25Qcm9w
ZXJ0eSgnYXJndW1lbnRzJyksIHRydWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372672</attachid>
            <date>2019-06-21 22:00:49 -0700</date>
            <delta_ts>2019-06-21 22:38:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197631-20190621220048.patch</filename>
            <type>text/plain</type>
            <size>12455</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
M2YxNWVkOWE0M2U2NGQzYzk4Nzg1OTcxYTBlZWI3NWY3ZDFhMGYxLi4wMzJjODNhMTIyMzI2N2Uy
YzIyZThlMGE0NDUxZDM0MGVmMDQyYjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAxOS0wNi0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFN0cmljdCwgU2xvcHB5IGFuZCBBcnJvdyBmdW5jdGlvbnMgc2hv
dWxkIGhhdmUgZGlmZmVyZW50IGNsYXNzSW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSWYgYSBjb25zdHJ1Y3RvciBpbmhlcml0cyBhIGJ1aWx0aW4g
Y2xhc3MsIGl0IGNyZWF0ZXMgYSBTdHJ1Y3R1cmUgd2hpY2ggaXMgc3ViY2xhc3NpbmcgdGhlIGJ1
aWx0aW4gY2xhc3MuCisgICAgICAgIFRoaXMgaXMgZG9uZSBieSB1c2luZyBJbnRlcm5hbEZ1bmN0
aW9uOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZS4gQnV0IHRvIGFjY2VsZXJhdGUgdGhlIGNvbW1v
biBjYXNlcywgd2UKKyAgICAgICAgY2FjaGUgdGhlIGNyZWF0ZWQgc3RydWN0dXJlIGluIEludGVy
bmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZS4gV2hldGhlciB0aGUgY2FjaGUgaXMgdmFsaWQg
aXMgY2hlY2tlZAorICAgICAgICBieSBjb21wYXJpbmcgY2xhc3NJbmZvIG9mIHRoZSBjYWNoZWQg
c3RydWN0dXJlIGFuZCB0aGUgZ2l2ZW4gYmFzZSBzdHJ1Y3R1cmUuIFRoaXMgaW1wbGljaXRseSBh
c3N1bWUgdGhhdAorICAgICAgICBlYWNoIGJ1aWx0aW4gY2xhc3MncyBJbnRlcm5hbEZ1bmN0aW9u
IGNyZWF0ZXMgYW4gaW5zdGFuY2UgYmFzZWQgb24gb25lIHN0cnVjdHVyZS4KKworICAgICAgICBI
b3dldmVyLCBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBhbiBleGNlcHRpb246IEZ1bmN0aW9uIGNv
bnN0cnVjdG9yIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugd2hpY2ggaGFzIGRpZmZlcmVudAorICAgICAg
ICBzdHJ1Y3R1cmVzIGJhc2VkIG9uIGEgcGFyYW1ldGVyLiBJZiBhIHN0cmljdCBjb2RlIGlzIGdp
dmVuIChlLmcuICIndXNlIHN0cmljdCciKSwgaXQgY3JlYXRlcyBhIGZ1bmN0aW9uCisgICAgICAg
IGluc3RhbmNlIHdpdGggc3RyaWN0IGZ1bmN0aW9uIHN0cnVjdHVyZS4KKworICAgICAgICBBcyBh
IHJlc3VsdCwgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlIGluY29ycmVjdGx5IGNh
Y2hlcyB0aGUgc3RydWN0dXJlLiBDb25zaWRlciB0aGUgZm9sbG93aW5nIGNvZGUuCisKKyAgICAg
ICAgICAgIGNsYXNzIEEgZXh0ZW5kcyBGdW5jdGlvbiB7IH07CisgICAgICAgICAgICBsZXQgYSA9
IG5ldyBBKCIndXNlIHN0cmljdCciKTsKKyAgICAgICAgICAgIGxldCBiID0gbmV3IEEoIiIpOwor
CisgICAgICAgIFdoaWxlIGBhYCBhbmQgYGJgIHNob3VsZCBoYXZlIGRpZmZlcmVudCBzdHJ1Y3R1
cmVzLCBgQWAgY2FjaGVzIHRoZSBzdHJ1Y3R1cmUgZm9yIGBhYCwgYW5kIHJldXNlIGl0IGV2ZW4g
dGhlIGdpdmVuCisgICAgICAgIGNvZGUgaXMgbm90IGEgc3RyaWN0IGNvZGUuIFRoaXMgaXMgcHJv
YmxlbWF0aWM6IFdlIGFyZSBzZXBhcmF0aW5nIHN0cnVjdHVyZXMgb2Ygc3RyaWN0LCBzbG9wcHks
IGFuZCBhcnJvdyBmdW5jdGlvbnMKKyAgICAgICAgYmVjYXVzZSB0aGV5IGhhdmUgZGlmZmVyZW50
IHByb3BlcnRpZXMuIEhvd2V2ZXIsIGluIHRoZSBhYm92ZSBjYXNlLCBhIGFuZCBiIGhhdmUgdGhl
IHNhbWUgc3RydWN0dXJlIHdoaWxlIHRoZXkgaGF2ZQorICAgICAgICBkaWZmZXJlbnQgcHJvcGVy
dGllcy4gU28gaXQgY2F1c2VzIGluY29ycmVjdCBzdHJ1Y3R1cmUtYmFzZWQgY2FjaGluZyBpbiBK
U0MuIE9uZSBvZiB0aGUgZXhhbXBsZSBpcyBIYXNPd25Qcm9wZXJ0eUNhY2hlLgorCisgICAgICAg
IEluIHRoaXMgcGF0Y2gsIHdlIGludHJvZHVjZSBKU1N0cmljdEZ1bmN0aW9uLCBKU1Nsb3BweUZ1
bmN0aW9uLCBhbmQgSlNBcnJvd0Z1bmN0aW9uIGNsYXNzZXMgYW5kIGNsYXNzSW5mb3MuIFRoaXMg
ZGVzaWduCisgICAgICAgIHdvcmtzIHdlbGwgYW5kIGFscmVhZHkgcGFydGlhbGx5IGFjY2VwdGVk
IGZvciBKU0dlbmVyYXRvckZ1bmN0aW9uLCBKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24sIGFuZCBK
U0FzeW5jRnVuY3Rpb24uIEVhY2gKKyAgICAgICAgc3RydWN0dXJlIG5vdyBoYXMgYSBkaWZmZXJl
bnQgY2xhc3NJbmZvIHNvIHRoYXQgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlIGNv
cnJlY3RseSBjYWNoZXMgYW5kIGludmFsaWRhdGVzIHRoZQorICAgICAgICBjYWNoZWQgb25lIGJh
c2VkIG9uIHRoZSBjbGFzc0luZm8uIFNpbmNlIHdlIGFscmVhZHkgaGF2ZSBkaWZmZXJlbnQgc3Ry
dWN0dXJlcyBmb3IgdGhlc2UgaW5zdGFuY2VzLCBhbmQgREZHIGFuZCBGVEwKKyAgICAgICAgb3B0
aW1pemF0aW9ucyBhcmUgYmFzZWQgb24gSlNGdW5jdGlvblR5cGUgKG5vdCBjbGFzc0luZm8pLCBp
bnRyb2R1Y2luZyB0aGVzZSB0aHJlZSBjbGFzc0luZm8gZG8gbm90IGJyZWFrIHRoZSBvcHRpbWl6
YXRpb24uCisKKyAgICAgICAgTm90ZSB0aGF0IHN0cnVjdHVyZXMgb24gQXJyYXlDb25zdHJ1Y3Rv
ciBkb2VzIG5vdCBjYXVzZSB0aGUgc2FtZSBwcm9ibGVtLiBJdCBvbmx5IHVzZXMgVW5kZWNpZGVk
IGluZGV4aW5nIHR5cGVkIGFycmF5CisgICAgICAgIHN0cnVjdHVyZSBpbiBJbnRlcm5hbEZ1bmN0
aW9uQWxsb2NhdGlvblByb2ZpbGUsIGFuZCBvbmNlIGhhdmVBQmFkVGltZSBoYXBwZW5zLCBpdCBj
bGVhcnMgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLgorCisgICAgICAgICogcnVu
dGltZS9KU0FzeW5jRnVuY3Rpb24uaDogVGhpcyBzdWJzcGFjZUZvciBpcyBub3QgbmVjZXNzYXJ5
IHNpbmNlIGl0IGlzIGRlZmluZWQgaW4gSlNGdW5jdGlvbi4gQW5kIHdlIGFscmVhZHkgZW5zdXJl
IHRoYXQKKyAgICAgICAgc2l6ZW9mKEpTQXN5bmNGdW5jdGlvbikgPT0gc2l6ZW9mKEpTRnVuY3Rp
b24pLgorICAgICAgICAqIHJ1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uLmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5oOiBEaXR0by4KKyAgICAg
ICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlv
bi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmF0b3JGdW5jdGlvbi5oOiBEaXR0by4KKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9i
YWxPYmplY3Q6OmluaXQpOgorCiAyMDE5LTA2LTIxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2Fs
ZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBSZW1vdmUgZXh0cmEgY2hlY2sgaW4gUmVnRXhwIEBt
YXRjaFNsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXN5
bmNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0Z1bmN0
aW9uLmgKaW5kZXggYmE4MGJhYjZjOWM5ZmJiNjQ0YWE3MmZjNmYwODhkNmU5NzliMDc3Mi4uY2Ix
OThiNWZhNzE0MDUxM2U0Y2IyNjFiYWVkOTMzNDljNDg3NTMxYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0Z1bmN0aW9uLmgKQEAgLTM4LDEyICszOCw2IEBA
IGNsYXNzIEpTQXN5bmNGdW5jdGlvbiBmaW5hbCA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKIAogICAg
IGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgot
ICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuICZ2bS5mdW5jdGlvblNwYWNlOwotICAgIH0KLQogICAgIERFQ0xBUkVfRVhQT1JU
X0lORk87CiAKICAgICBzdGF0aWMgSlNBc3luY0Z1bmN0aW9uKiBjcmVhdGUoVk0mLCBGdW5jdGlv
bkV4ZWN1dGFibGUqLCBKU1Njb3BlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uLmNwcAppbmRleCAwOWZhYzA1
ODY2MmZlZWEyY2ZjMTg5MmMxMDdlMjQyZDQzNzM5MzMzLi5jZTg1YjJiZWE4MjNiNjNmNTMzMjk3
N2FkZTJjMzU1YTljMWIzOTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5jcHAKQEAgLTM3LDcgKzM3LDcg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IENsYXNzSW5mbyBKU0FzeW5jR2VuZXJhdG9y
RnVuY3Rpb24gICAgOjpzX2luZm8gPSB7ICJKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCAgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0FzeW5j
R2VuZXJhdG9yRnVuY3Rpb24pIH07Citjb25zdCBDbGFzc0luZm8gSlNBc3luY0dlbmVyYXRvckZ1
bmN0aW9uOjpzX2luZm8gPSB7ICJKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCAgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0FzeW5jR2VuZXJh
dG9yRnVuY3Rpb24pIH07CiAKIEpTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbjo6SlNBc3luY0dlbmVy
YXRvckZ1bmN0aW9uKFZNJiB2bSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBKU1Nj
b3BlKiBzY29wZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBleGVjdXRh
YmxlLCBzY29wZSwgc3RydWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uaAppbmRleCA3MDIzOWI4YzAzYTAz
NTQ1ZTE5M2M2NzgxYmY0NTJhNWI2YWY0ZTM3Li44NmJhMzcxYjBkMTFjNjBkNzhhMjE4OTIyMjBj
NmQyYjNkMjlhOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24uaApAQCAtMzgsMTIgKzM4LDYgQEAgY2xhc3Mg
SlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uIGZpbmFsIDogcHVibGljIEpTRnVuY3Rpb24gewogCiAg
ICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3M7CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+
Ci0gICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCi0gICAgewotICAg
ICAgICByZXR1cm4gJnZtLmZ1bmN0aW9uU3BhY2U7Ci0gICAgfQotCiAgICAgREVDTEFSRV9FWFBP
UlRfSU5GTzsKIAogICAgIHN0YXRpYyBKU0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24qIGNyZWF0ZShW
TSYsIEZ1bmN0aW9uRXhlY3V0YWJsZSosIEpTU2NvcGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggOWFiM2MyMmMwNGI0MjVhNzI1ZDM1Mzc2
NDgyN2IyYjM0YjJlYzMzMi4uZjI0NGZhOTI1NjRhZThkNzgzMGViYTc0MmFlNzg1ZmNhMGU3NjNk
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAg
LTYwLDYgKzYwLDkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSG9zdEZ1bmN0
aW9uQXNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB9CiAKIGNvbnN0IENsYXNzSW5mbyBK
U0Z1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNGdW5jdGlvbikgfTsKK2NvbnN0IENsYXNz
SW5mbyBKU1N0cmljdEZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNTdHJpY3RGdW5jdGlv
bikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU1Nsb3BweUZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5j
dGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNTbG9wcHlGdW5jdGlvbikgfTsKK2NvbnN0IENsYXNzSW5mbyBKU0Fycm93RnVuY3Rpb246
OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0Fycm93RnVuY3Rpb24pIH07CiAKIGJvb2wgSlNGdW5jdGlv
bjo6aXNIb3N0RnVuY3Rpb25Ob25JbmxpbmUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDIyNDgzMzBkMDNmZGZhOWM1MjdlNjI4MTIw
MGY1NjNiNzJlMjJiMTIuLjk1ZjU0N2I1YjQ0NzQyMzRkZmU0NTdkNjFkZjI1YzRkMWExYjlhOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTIyNSw0
ICsyMjUsNTIgQEAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU0NhbGxlZSB7CiAgICAgV3Jp
dGVCYXJyaWVyPEZ1bmN0aW9uUmFyZURhdGE+IG1fcmFyZURhdGE7CiB9OwogCitjbGFzcyBKU1N0
cmljdEZ1bmN0aW9uIGZpbmFsIDogcHVibGljIEpTRnVuY3Rpb24geworcHVibGljOgorICAgIHVz
aW5nIEJhc2UgPSBKU0Z1bmN0aW9uOworCisgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKKworICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTRnVuY3Rpb25U
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgfQorfTsKK3N0YXRpY19hc3NlcnQo
c2l6ZW9mKEpTU3RyaWN0RnVuY3Rpb24pID09IHNpemVvZihKU0Z1bmN0aW9uKSwgIkFsbG9jYXRl
ZCBpbiBKU0Z1bmN0aW9uIElzb1N1YnNwYWNlIik7CisKK2NsYXNzIEpTU2xvcHB5RnVuY3Rpb24g
ZmluYWwgOiBwdWJsaWMgSlNGdW5jdGlvbiB7CitwdWJsaWM6CisgICAgdXNpbmcgQmFzZSA9IEpT
RnVuY3Rpb247CisKKyAgICBERUNMQVJFX0VYUE9SVF9JTkZPOworCisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworCisg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICBBU1NF
UlQoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNGdW5jdGlvblR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9Cit9Oworc3RhdGljX2Fzc2VydChzaXplb2YoSlNTbG9w
cHlGdW5jdGlvbikgPT0gc2l6ZW9mKEpTRnVuY3Rpb24pLCAiQWxsb2NhdGVkIGluIEpTRnVuY3Rp
b24gSXNvU3Vic3BhY2UiKTsKKworY2xhc3MgSlNBcnJvd0Z1bmN0aW9uIGZpbmFsIDogcHVibGlj
IEpTRnVuY3Rpb24geworcHVibGljOgorICAgIHVzaW5nIEJhc2UgPSBKU0Z1bmN0aW9uOworCisg
ICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKworICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGdsb2JhbE9iamVj
dCk7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIFR5cGVJbmZvKEpTRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CisgICAgfQorfTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKEpTQXJyb3dGdW5jdGlvbikgPT0g
c2l6ZW9mKEpTRnVuY3Rpb24pLCAiQWxsb2NhdGVkIGluIEpTRnVuY3Rpb24gSXNvU3Vic3BhY2Ui
KTsKKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmgKaW5kZXggOTk3ODFjNTdiOTdhMzAzNjc1MjAz
OTg4ZjJiMzkyYmRhODJhMDMxMS4uYTQ1NGI5NTg4MDYxZDQ4YjU3ZjU2YjMwZWZlMDYzYzg0ZjI2
YjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmF0
b3JGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJh
dG9yRnVuY3Rpb24uaApAQCAtNjYsMTIgKzY2LDYgQEAgY2xhc3MgSlNHZW5lcmF0b3JGdW5jdGlv
biBmaW5hbCA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsKIAogICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgotICAgIHN0YXRpYyBJc29TdWJzcGFj
ZSogc3Vic3BhY2VGb3IoVk0mIHZtKQotICAgIHsKLSAgICAgICAgcmV0dXJuICZ2bS5mdW5jdGlv
blNwYWNlOwotICAgIH0KLQogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKICAgICBzdGF0aWMg
SlNHZW5lcmF0b3JGdW5jdGlvbiogY3JlYXRlKFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgSlNT
Y29wZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IDJmOTQ4YjIwMWQxOTg5NTQyZWFkZmQ2ZTY5NDhkM2JlM2JmODAwNDQuLjNj
MDQ1MzY0NDkxMDVmMDc2NjVhYTc3MjhmZjBhMjExNjU0YTA1NDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTQ3Miw5ICs0NzIs
OSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX2hvc3RGdW5jdGlv
blN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOwogCiAgICAgYXV0byBpbml0RnVuY3Rp
b25TdHJ1Y3R1cmVzID0gWyZdIChGdW5jdGlvblN0cnVjdHVyZXMmIHN0cnVjdHVyZXMpIHsKLSAg
ICAgICAgc3RydWN0dXJlcy5zdHJpY3RGdW5jdGlvblN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpT
RnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSkpOwotICAgICAgICBzdHJ1Y3R1cmVzLnNsb3BweUZ1bmN0aW9uU3RydWN0dXJlLnNldCh2
bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9u
UHJvdG90eXBlLmdldCgpKSk7Ci0gICAgICAgIHN0cnVjdHVyZXMuYXJyb3dGdW5jdGlvblN0cnVj
dHVyZS5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywg
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOworICAgICAgICBzdHJ1Y3R1cmVzLnN0cmljdEZ1
bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNTdHJpY3RGdW5jdGlvbjo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CisgICAgICAgIHN0
cnVjdHVyZXMuc2xvcHB5RnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU1Nsb3BweUZ1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0
KCkpKTsKKyAgICAgICAgc3RydWN0dXJlcy5hcnJvd0Z1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwg
dGhpcywgSlNBcnJvd0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rp
b25Qcm90b3R5cGUuZ2V0KCkpKTsKICAgICB9OwogICAgIGluaXRGdW5jdGlvblN0cnVjdHVyZXMo
bV9idWlsdGluRnVuY3Rpb25zKTsKICAgICBpbml0RnVuY3Rpb25TdHJ1Y3R1cmVzKG1fb3JkaW5h
cnlGdW5jdGlvbnMpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0No
YW5nZUxvZwppbmRleCAwYWJjMTA1NjQwZWMxZTMyODlhMWU5NTRjNjNkNGI5YzM4ODc0ZWMxLi5m
ZDFlNTM4ZjA2M2E2MGJlNzMyNjA0ZTlhNDM4Yjg1MjRmYjgwNjk4IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE5LTA2LTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0pTQ10gU3RyaWN0LCBTbG9wcHkgYW5kIEFycm93IGZ1bmN0aW9ucyBzaG91bGQgaGF2ZSBkaWZm
ZXJlbnQgY2xhc3NJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTc2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0cmVzcy9oYXMtb3duLXByb3BlcnR5LWFyZ3VtZW50cy5qczogQWRkZWQuCisg
ICAgICAgIChzaG91bGRCZSk6CisgICAgICAgIChBKToKKwogMjAxOS0wNi0yMCAgSnVzdGluIE1p
Y2hhdWQgIDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dBU00tUmVmZXJl
bmNlc10gQWRkIGV4dHJhIHRlc3RzIGZvciBXYXNtIHJlZmVyZW5jZXMgKyBmaXggZWxlbWVudCBw
YXJzaW5nIGFuZCBzdWJ0eXBpbmcgYnVncwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaGFz
LW93bi1wcm9wZXJ0eS1hcmd1bWVudHMuanMgYi9KU1Rlc3RzL3N0cmVzcy9oYXMtb3duLXByb3Bl
cnR5LWFyZ3VtZW50cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjRkMWNkZmNhYmI0YWE4NTBhNzM3MGYwYTNh
OGM3NTFkZTAyMzNhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvaGFzLW93bi1w
cm9wZXJ0eS1hcmd1bWVudHMuanMKQEAgLTAsMCArMSw4IEBACitmdW5jdGlvbiBzaG91bGRCZShh
Y3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworY2xhc3MgQSBl
eHRlbmRzIEZ1bmN0aW9uIHt9CitzaG91bGRCZShuZXcgQSgiJ3VzZSBzdHJpY3QnOyIpLmhhc093
blByb3BlcnR5KCdhcmd1bWVudHMnKSwgZmFsc2UpOworc2hvdWxkQmUobmV3IEEoKS5oYXNPd25Q
cm9wZXJ0eSgnYXJndW1lbnRzJyksIHRydWUpOwo=
</data>
<flag name="review"
          id="388481"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>