<?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>204934</bug_id>
          
          <creation_ts>2019-12-05 19:09:03 -0800</creation_ts>
          <short_desc>Fill HighlightRangeGroup and HighlightMap with values from JavaScript</short_desc>
          <delta_ts>2019-12-09 16:53:32 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1596156</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-12-05 19:09:03 -0800</bug_when>
    <thetext>Fill HighlightRangeGroup and HighlightMap with values from JavaScript</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596157</commentid>
    <comment_count>1</comment_count>
      <attachid>384987</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-12-05 19:12:34 -0800</bug_when>
    <thetext>Created attachment 384987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596158</commentid>
    <comment_count>2</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-12-05 19:13:02 -0800</bug_when>
    <thetext>Patch under development.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596159</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-05 19:14:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/57686335&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596173</commentid>
    <comment_count>4</comment_count>
      <attachid>384987</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-05 23:51:41 -0800</bug_when>
    <thetext>Comment on attachment 384987
Patch

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

&gt; Source/WebCore/Modules/highlight/HighlightMap.cpp:29
&gt; +#include &quot;IDLTypes.h&quot;

Might want to add:
#include &quot;JSHighlightRangeGroup.h&quot; to uncomment the for each loop

&gt; Source/WebCore/Modules/highlight/HighlightMap.h:57
&gt;      HighlightMap() = default;

m_map could take a Ref&lt;HighlightRangeGroup&gt;

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:30
&gt; +#include &quot;JSDOMSetLike.h&quot;

Might want to add:
#include &quot;JSStaticRange.h&quot; to uncomment set.add.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:53
&gt; +    Vector&lt;Ref&lt;StaticRange&gt;&gt; m_ranges;

We could use a HashSet&lt;Ref&lt;&gt;&gt; to simplify addToSetLike/removeFromSetLike?

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:54
&gt;      HighlightRangeGroup(StaticRange&amp;);

explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596364</commentid>
    <comment_count>5</comment_count>
      <attachid>385043</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-12-06 14:26:28 -0800</bug_when>
    <thetext>Created attachment 385043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596432</commentid>
    <comment_count>6</comment_count>
      <attachid>385043</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-06 16:34:06 -0800</bug_when>
    <thetext>Comment on attachment 385043
Patch

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

&gt; LayoutTests/highlight/highlight-map-and-group.html:3
&gt; +&lt;body&gt;

Nit - there appears to be three body tags in this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596436</commentid>
    <comment_count>7</comment_count>
      <attachid>385043</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-06 16:37:14 -0800</bug_when>
    <thetext>Comment on attachment 385043
Patch

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

&gt; Source/WebCore/Modules/highlight/HighlightMap.cpp:58
&gt; +HighlightRangeGroup* HighlightMap::getGroupForStyle(const String&amp; key)

Should return a RefPtr&lt;&gt;

&gt; Source/WebCore/Modules/highlight/HighlightMap.h:49
&gt; +    HighlightRangeGroup* getGroupForStyle(const String&amp;);

getRangeGroupForKey (or ForName) - pick one!

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:38
&gt;  HighlightRangeGroup::HighlightRangeGroup(StaticRange&amp; range)

StaticRange is RefCounted so you should be passing a Ref&lt;StaticRange&gt;&amp;&amp; and WTFMoving it.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:50
&gt; +    set.add&lt;IDLInterface&lt;StaticRange&gt;&gt;(m_ranges[0]);

I think this needs to add all ranges.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:53
&gt; +bool HighlightRangeGroup::removeFromSetLike(const StaticRange&amp; range)

Needs to take a Ref&lt;StaticRange&gt;, since this function might destroy the only reference and then the caller is using a reference to a deleted object.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:57
&gt; +    return m_ranges.removeFirstMatching([&amp;range](const Ref&lt;StaticRange&gt;&amp; current) {
&gt; +        return current.get() == range;
&gt; +    });

It remove all, to emulate set behavior. Solved when using the HashSet.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:65
&gt; +bool HighlightRangeGroup::addToSetLike(StaticRange&amp; range)

Should take a Ref&lt;StaticRange&gt;&amp;&amp;

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:68
&gt; +    if (notFound == m_ranges.findMatching([&amp;range](const Ref&lt;StaticRange&gt;&amp; current) {
&gt; +        return current.get() == range; })) {

Some weird wrapping here.

Might be more clearly written with an early return on the &quot;found&quot; case first.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:43
&gt; +    void clearFromSetLike();

&quot;clear from&quot; is weird naming. Maybe just clear()?

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:53
&gt; +    Vector&lt;Ref&lt;StaticRange&gt;&gt; m_ranges;

Add a comment saying this should be a HashSet (pointing to a bug).

&gt; Source/WebCore/dom/StaticRange.h:59
&gt; +    bool operator==(const StaticRange&amp; other) const;

Remove &quot;other&quot;.

&gt; LayoutTests/ChangeLog:9
&gt; +        * highlight/highlight-map-and-group-expected.txt: Added.
&gt; +        * highlight/highlight-map-and-group.html: Added.

Can we start writing web platform tests instead? Or is the StaticRange thing going to prevent that?

&gt; LayoutTests/highlight/highlight-map-and-group.html:9
&gt; +        background-color: yellow;
&gt; +        color:blue;

These styles aren&apos;t being used by anything in the test.

&gt; LayoutTests/highlight/highlight-map-and-group.html:21
&gt; +    &lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=1&quot;&gt;

Remove.

&gt; LayoutTests/highlight/highlight-map-and-group.html:45
&gt; +        shouldBe(&quot;CSS.highlights.size&quot;,&quot;3&quot;);

I think you should also read one or more range groups back and their their static ranges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596938</commentid>
    <comment_count>8</comment_count>
      <attachid>385184</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-12-09 13:44:09 -0800</bug_when>
    <thetext>Created attachment 385184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596995</commentid>
    <comment_count>9</comment_count>
      <attachid>385201</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-12-09 16:09:13 -0800</bug_when>
    <thetext>Created attachment 385201
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597018</commentid>
    <comment_count>10</comment_count>
      <attachid>385201</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-09 16:53:30 -0800</bug_when>
    <thetext>Comment on attachment 385201
Patch for landing

Clearing flags on attachment: 385201

Committed r253309: &lt;https://trac.webkit.org/changeset/253309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597019</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-09 16:53:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384987</attachid>
            <date>2019-12-05 19:12:34 -0800</date>
            <delta_ts>2019-12-06 14:26:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204934-20191205191233.patch</filename>
            <type>text/plain</type>
            <size>12274</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYzOGQ3N2ViN2I2MmNl
MmM3OTYxM2I2ZWJlY2Q3ZDQ4M2M3N2IwNC4uYjEyODdmMjE3NmM4MWU1ZjNiNzllMzI3YTgwMjdl
YTBiZmQzNGZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTEyLTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsbCBIaWdo
bGlnaHRSYW5nZUdyb3VwIGFuZCBIaWdobGlnaHRNYXAgd2l0aCB2YWx1ZXMgZnJvbSBKYXZhU2Ny
aXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxs
b3V0IEhpZ2hsaWdodE1hcCBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB3aXRoIHRoZSBpbmZvcm1h
dGlvbiB0aGF0IHdlJ3JlIHBhc3NlZCBmcm9tCisgICAgICAgIHRoZSBKYXZhU2NyaXB0IHNpZGUu
IE1ha2Ugc3VyZSBzZXRzIGhhdmUgY29ycmVjdCBzZXQgYmVoYXZpb3VyLgorCisgICAgICAgIFBh
dGNoIGN1cnJlbnRseSB1bmRlcmRldmVsb3BlbWVudCwgd2lsbCBhZGQgdGVzdHMgZm9yIGZpbmFs
LgorCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6c3luY2hyb25pemVCYWNraW5nTWFwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6c2V0RnJvbU1hcExpa2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0TWFwOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRN
YXA6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OmdldEdyb3VwRm9y
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0TWFwOjphZGRIaWdobGlnaHRHcm91
cCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6Om5hbWVkSXRlbSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OnNldE5hbWVk
SXRlbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OmRlbGV0ZU5h
bWVkUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodE1hcC5oOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0TWFwOjpiYWNraW5nTWFwKToK
KyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6c3luY2hyb25pemVCYWNraW5nTWFwKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6Y2xlYXIpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGw6CisgICAgICAg
ICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpIaWdobGlnaHRSYW5nZUdyb3VwKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmluaXRpYWxpemVTZXRMaWtlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZUZyb21TZXRMaWtlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJvbVNldExpa2Up
OgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6YWRkVG9TZXRMaWtlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFJhbmdlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZVJhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6Okl0ZXJhdG9y
OjpJdGVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdy
b3VwOjpJdGVyYXRvcjo6bmV4dCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFu
Z2VHcm91cDo6cmFuZ2VzIGNvbnN0KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVhdGVJdGVyYXRvcik6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGw6CisgICAg
ICAgICogZG9tL1N0YXRpY1JhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0YXRpY1Jhbmdl
OjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKiBkb20vU3RhdGljUmFuZ2UuaDoKKwogMjAx
OS0xMi0wNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgbWFw
bGlrZSBzaG91bGQgZGVmaW5lIGEgc2V0IG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKaW5kZXggYjI0OGVmN2QyZTU1NTc5NGQ0
ZDczY2Q5N2E5NzM3YWY4YjRmMTMwMy4uYzg5ZTJiOTc2ZGIxZWQ5NzQ0YzMwMDg4ODlmM2RlZDIz
ZDg1M2Y5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRNYXAuY3BwCkBAIC0yNiw0MyArMjYsMzUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJIaWdobGlnaHRNYXAuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUg
IklETFR5cGVzLmgiCiAKLXZvaWQgSGlnaGxpZ2h0TWFwOjphZGRIaWdobGlnaHRHcm91cChTdHJp
bmcmIGNzc1N0eWxlLCBIaWdobGlnaHRSYW5nZUdyb3VwICZncm91cCkKLXsKLSAgICBVTlVTRURf
UEFSQU0oY3NzU3R5bGUpOwotICAgIFVOVVNFRF9QQVJBTShncm91cCk7Ci19CituYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXZvaWQgSGlnaGxpZ2h0TWFwOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwg
UmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+JiYpCit2b2lkIEhpZ2hsaWdodE1hcDo6c3luY2hyb25p
emVCYWNraW5nTWFwKFJlZjxET01NYXBMaWtlPiYmIG1hcExpa2UpCiB7CisgICAgbV9tYXBMaWtl
ID0gV1RGTW92ZShtYXBMaWtlKTsKKy8vICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBtX21hcCkK
Ky8vICAgICAgICBtX21hcExpa2UtPnNldDxJRExET01TdHJpbmcsIElETEludGVyZmFjZTxIaWdo
bGlnaHRSYW5nZUdyb3VwPj4oa2V5VmFsdWUua2V5LCBrZXlWYWx1ZS52YWx1ZSk7CiB9CiAKLWJv
b2wgSGlnaGxpZ2h0TWFwOjpyZW1vdmUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSGlnaGxp
Z2h0TWFwOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGlnaHRSYW5nZUdy
b3VwPiYmIHZhbHVlKQogewotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIG1fbWFwLnNldChXVEZNb3ZlKGtleSksIFdURk1vdmUodmFsdWUpKTsKIH0KIAot
U3RyaW5nIEhpZ2hsaWdodE1hcDo6bmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUpIGNv
bnN0Cit2b2lkIEhpZ2hsaWdodE1hcDo6Y2xlYXIoKQogewotICAgIFVOVVNFRF9QQVJBTShuYW1l
KTsKLSAgICAKLSAgICByZXR1cm4gU3RyaW5nIHsgfTsKKyAgICBtX21hcC5jbGVhcigpOwogfQog
Ci1FeGNlcHRpb25Pcjx2b2lkPiBIaWdobGlnaHRNYXA6OnNldE5hbWVkSXRlbShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IEhpZ2hsaWdodFJhbmdlR3JvdXAmIHZhbHVlKQorYm9vbCBIaWdobGln
aHRNYXA6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKIHsKLSAgICBVTlVTRURfUEFSQU0obmFt
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKLSAgICAKLSAgICByZXR1cm4geyB9OworICAg
IHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKIH0KIAotYm9vbCBIaWdobGlnaHRNYXA6OmRlbGV0
ZU5hbWVkUHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKQorSGlnaGxpZ2h0UmFuZ2VHcm91cCog
SGlnaGxpZ2h0TWFwOjpnZXRHcm91cEZvclN0eWxlKGNvbnN0IFN0cmluZyYga2V5KQogewotICAg
IFVOVVNFRF9QQVJBTShuYW1lKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fbWFw
LmdldChrZXkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodE1hcC5oCmluZGV4IDY0MWUyNGJkODBkNzVmYjI1MTE4NjI5YjIyYzBjNDRjZjU2
OTgxNGIuLmFlOGMxODRiN2VlYTYyY2VhNjRlYzk1YjE3NjZhZDk5YWYxYjgwMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oCkBAIC0zOSwx
OSArMzksMTkgQEAgY2xhc3MgSGlnaGxpZ2h0TWFwIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxp
Z2h0TWFwPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIaWdobGlnaHRNYXA+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0TWFwKTsgfQogICAgIAotICAgIHZvaWQg
YWRkSGlnaGxpZ2h0R3JvdXAoU3RyaW5nJiwgSGlnaGxpZ2h0UmFuZ2VHcm91cCYpOwotICAgIAot
ICAgIHZvaWQgc3luY2hyb25pemVCYWNraW5nTWFwKFJlZjxET01NYXBMaWtlPiYmIG1hcExpa2Up
IHsgbV9tYXBMaWtlID0gV1RGTW92ZShtYXBMaWtlKTsgfQorICAgIHZvaWQgc3luY2hyb25pemVC
YWNraW5nTWFwKFJlZjxET01NYXBMaWtlPiYmKTsKICAgICBET01NYXBMaWtlKiBiYWNraW5nTWFw
KCkgeyByZXR1cm4gbV9tYXBMaWtlLmdldCgpOyB9Ci0KLSAgICAvLyBCaW5kaW5ncyBzdXBwb3J0
LgotICAgIFN0cmluZyBuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYgbmFtZSkgY29uc3Q7Ci0g
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgSGlnaGxpZ2h0UmFuZ2VHcm91cCYgdmFsdWUpOwotICAgIGJvb2wgZGVsZXRlTmFtZWRQcm9w
ZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIAogICAgIHZvaWQgc2V0RnJvbU1hcExpa2Uo
U3RyaW5nJiYsIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiYmKTsKLSAgICB2b2lkIGNsZWFyKCkg
eyB9OwotICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZvaWQgY2xl
YXIoKTsKKyAgICBib29sIHJlbW92ZShjb25zdCBTdHJpbmcmKTsKKyAgICAKKyAgICBIaWdobGln
aHRSYW5nZUdyb3VwKiBnZXRHcm91cEZvclN0eWxlKGNvbnN0IFN0cmluZyYpOworICAgIAorICAg
IC8vIEJpbmRpbmdzIHN1cHBvcnQuCisgICAgLy8gU3RyaW5nIG5hbWVkSXRlbShjb25zdCBBdG9t
U3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICAvLyBFeGNlcHRpb25Pcjx2b2lkPiBzZXROYW1lZEl0
ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBIaWdobGlnaHRSYW5nZUdyb3VwJiB2YWx1ZSk7
CisgICAgLy8gYm9vbCBkZWxldGVOYW1lZFByb3BlcnR5KGNvbnN0IFN0cmluZyYgbmFtZSk7CiAg
ICAgCiBwcml2YXRlOgogICAgIEhpZ2hsaWdodE1hcCgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCmluZGV4IDM2ZTVi
NTU3MjE2ZWM3NWNlMzVmNzkxNDExYTE4ODM1MzcyZDZlYmYuLmM3ZmUyYzU0NDdmYTc0NWM2MzQ4
MjUyYjY3NWE3N2M5YzM3NmI1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbApAQCAtMjksNSArMjksNSBAQAogICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUKIF0gaW50ZXJmYWNlIEhpZ2hsaWdodE1hcCB7CiAgICAgbWFwbGlr
ZTxET01TdHJpbmcsIEhpZ2hsaWdodFJhbmdlR3JvdXA+OwotICAgIFtDRVJlYWN0aW9ucywgTWF5
VGhyb3dFeGNlcHRpb25dIHNldHRlciB2b2lkIChET01TdHJpbmcgc3R5bGUsIEhpZ2hsaWdodFJh
bmdlR3JvdXAgZ3JvdXApOworICAgIC8vIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25d
IHNldHRlciB2b2lkIChET01TdHJpbmcgc3R5bGUsIEhpZ2hsaWdodFJhbmdlR3JvdXAgZ3JvdXAp
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodFJhbmdlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0UmFuZ2VHcm91cC5jcHAKaW5kZXggODU2YmEzODY4ZTY2ODE3NjRhZTY0MzU2MjI1ODA4
YzJmNzhkZmYwNC4uMjAyM2NhNWIxZDYwNTMxYzg5MmY4OTNkMDZjMGY2ZDI2NDQ3MWVhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmFuZ2VHcm91cC5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCiAKKyNpbmNsdWRlICJJRExUeXBlcy5oIgor
I2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgogI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCiAjaW5jbHVkZSAiU3R5bGVQ
cm9wZXJ0aWVzLmgiCkBAIC0zNCw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSGln
aGxpZ2h0UmFuZ2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChTdGF0aWNSYW5nZSYgcmFuZ2Up
CiB7Ci0gICAgYWRkUmFuZ2UocmFuZ2UpOworICAgIG1fcmFuZ2VzLmFwcGVuZChtYWtlUmVmKHJh
bmdlKSk7CiB9CiAKIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5nZUdyb3Vw
OjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQpAQCAtNDIsMzAgKzQ0LDMxIEBAIFJlZjxIaWdo
bGlnaHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVhdGUoU3RhdGljUmFuZ2Um
IHJhbmdlKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAocmFu
Z2UpKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6YWRkUmFu
Z2UoU3RhdGljUmFuZ2UmIHJhbmdlKQordm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjppbml0aWFs
aXplU2V0TGlrZShET01TZXRBZGFwdGVyJikKIHsKLSAgICBVTlVTRURfUEFSQU0ocmFuZ2UpOwot
Ci0gICAgcmV0dXJuIHsgfTsKKyAgICAvLyBzZXQuYWRkPElETEludGVyZmFjZTxTdGF0aWNSYW5n
ZT4+KG1fcmFuZ2VzWzBdKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gSGlnaGxpZ2h0UmFuZ2VH
cm91cDo6cmVtb3ZlUmFuZ2UoU3RhdGljUmFuZ2UmIHJhbmdlKQorYm9vbCBIaWdobGlnaHRSYW5n
ZUdyb3VwOjpyZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCiB7Ci0g
ICAgVU5VU0VEX1BBUkFNKHJhbmdlKTsKLSAgICAKLSAgICByZXR1cm4geyB9OworICAgIHJldHVy
biBtX3Jhbmdlcy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxTdGF0aWNS
YW5nZT4mIGN1cnJlbnQpIHsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQuZ2V0KCkgPT0gcmFuZ2U7
CisgICAgfSk7CiB9CiAKLUhpZ2hsaWdodFJhbmdlR3JvdXA6Okl0ZXJhdG9yOjpJdGVyYXRvcihI
aWdobGlnaHRSYW5nZUdyb3VwJiBncm91cCkKLSAgICA6IG1fZ3JvdXAoZ3JvdXApCit2b2lkIEhp
Z2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJvbVNldExpa2UoKQogeworICAgIG1fcmFuZ2VzLmNs
ZWFyKCk7CiB9CiAKLVJlZlB0cjxTdGF0aWNSYW5nZT4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6SXRl
cmF0b3I6Om5leHQoKQorYm9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjphZGRUb1NldExpa2UoU3Rh
dGljUmFuZ2UmIHJhbmdlKQogewotICAgIGlmIChtX2luZGV4ID09IG1fZ3JvdXAtPnJhbmdlcy5z
aXplKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBtX2dyb3VwLT5yYW5n
ZXNbbV9pbmRleCsrXS5wdHIoKTsKKyAgICBpZiAobm90Rm91bmQgPT0gbV9yYW5nZXMuZmluZE1h
dGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxTdGF0aWNSYW5nZT4mIGN1cnJlbnQpIHsKKyAgICAg
ICAgcmV0dXJuIGN1cnJlbnQuZ2V0KCkgPT0gcmFuZ2U7IH0pKSB7CisgICAgICAgIG1fcmFuZ2Vz
LmFwcGVuZChtYWtlUmVmKHJhbmdlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAppbmRleCBiOGJjOGUyZGUxM2JhMjE0
YzJkZTRlNzFjZTFiZmM4MDNhMTYzNzcyLi40M2JkNmEyZTY1ZDBiYjYyMjQ4NTIyZTZiOTBkOTJk
ZTRlYWIxM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSYW5nZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCkBAIC0zMiwzMiArMzIsMjUgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIERPTVNldEFkYXB0
ZXI7CiBjbGFzcyBTdGF0aWNSYW5nZTsKIGNsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJh
dGlvbjsKIAogY2xhc3MgSGlnaGxpZ2h0UmFuZ2VHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPEhp
Z2hsaWdodFJhbmdlR3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJh
bmdlR3JvdXA+IGNyZWF0ZShTdGF0aWNSYW5nZSYpOwotCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4g
YWRkUmFuZ2UoU3RhdGljUmFuZ2UmKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVSYW5n
ZShTdGF0aWNSYW5nZSYpOwogICAgIAotICAgIFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiByYW5n
ZXM7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOwor
ICAgIHZvaWQgY2xlYXJGcm9tU2V0TGlrZSgpOworICAgIGJvb2wgYWRkVG9TZXRMaWtlKFN0YXRp
Y1JhbmdlJik7CisgICAgYm9vbCByZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYp
OworICAgIHZvaWQgaW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYpOwogICAgIAotICAg
IGNsYXNzIEl0ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IEl0ZXJhdG9y
KEhpZ2hsaWdodFJhbmdlR3JvdXAmKTsKLSAgICAgICAgUmVmUHRyPFN0YXRpY1JhbmdlPiBuZXh0
KCk7Ci0gICAgICAgIAotICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZjxIaWdobGlnaHRSYW5nZUdy
b3VwPiBtX2dyb3VwOwotICAgICAgICBzaXplX3QgbV9pbmRleCB7IDAgfTsgLy8gRklYTUU6IFRo
ZXJlIG5lZWRzIHRvIGJlIGEgbWVjaGFuaXNtIHRvIGhhbmRsZSB3aGVuIHJhbmdlcyBhcmUgYWRk
ZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIEhpZ2hsaWdodFJhbmdlR3JvdXAu
Ci0gICAgfTsKLSAgICBJdGVyYXRvciBjcmVhdGVJdGVyYXRvcigpIHsgcmV0dXJuIEl0ZXJhdG9y
KCp0aGlzKTsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiYgcmFuZ2VzKCkg
Y29uc3QgeyByZXR1cm4gbV9yYW5nZXM7IH0KKworICAgIC8vIEZJWE1FOiBBZGQgV0VCQ09SRV9F
WFBPUlQgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgc3R5bGUoKTsKICAgICAKIHByaXZhdGU6CisgICAg
VmVjdG9yPFJlZjxTdGF0aWNSYW5nZT4+IG1fcmFuZ2VzOwogICAgIEhpZ2hsaWdodFJhbmdlR3Jv
dXAoU3RhdGljUmFuZ2UmKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKaW5kZXggMWVjMjBlOTIzZWNm
NTYwOGFiOWNjMWM3MGY3Njk5ZjIwOWU5ZDQzNi4uNGZjMDAxM2QzNDU2YjM5ODczOWNhNmQyYjJj
Njc1MTFlMGIxODExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKQEAgLTI4LDYgKzI4LDYgQEAKICAgICBF
bmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlCiBdIGludGVyZmFjZSBIaWdobGlnaHRSYW5nZUdyb3VwIHsKLSAgICBpdGVyYWJsZTxTdGF0
aWNSYW5nZT47ICAvLyBGSVhNRTogc2hvdWxkIGJlIHNldGxpa2UKKyAgICBzZXRsaWtlPFN0YXRp
Y1JhbmdlPjsKICAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURl
Y2xhcmF0aW9uIHN0eWxlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0
aWNSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuY3BwCmluZGV4IDE5
OGFhMWEyNjkwMzQyODU3ZGM4NGZjMGQxYWE4ZmY1ZTcxOTZjN2IuLmRjMWU4ODhhYjk1YWY2NTg5
ZjIxZWQ1ZGQwODc5YTE1ODI5MjFkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dGF0aWNSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY1JhbmdlLmNwcApA
QCAtODEsNCArODEsMTAgQEAgYm9vbCBTdGF0aWNSYW5nZTo6Y29sbGFwc2VkKCkgY29uc3QKICAg
ICByZXR1cm4gbV9zdGFydE9mZnNldCA9PSBtX2VuZE9mZnNldCAmJiBtX3N0YXJ0Q29udGFpbmVy
LnB0cigpID09IG1fZW5kQ29udGFpbmVyLnB0cigpOwogfQogCitib29sIFN0YXRpY1JhbmdlOjpv
cGVyYXRvcj09KGNvbnN0IFN0YXRpY1JhbmdlJiBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4g
KG1fc3RhcnRPZmZzZXQgPT0gb3RoZXIuc3RhcnRPZmZzZXQoKSAmJiBtX2VuZE9mZnNldCA9PSBv
dGhlci5lbmRPZmZzZXQoKSAmJiBtX3N0YXJ0Q29udGFpbmVyLT5pc0VxdWFsTm9kZShvdGhlci5z
dGFydENvbnRhaW5lcigpKSAmJiBtX2VuZENvbnRhaW5lci0+aXNFcXVhbE5vZGUob3RoZXIuZW5k
Q29udGFpbmVyKCkpKTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3RhdGljUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCmluZGV4IGY0
OGM4ZDQwZmIyM2Y5MjJjYjEyN2U2YzEwZGM2ZTVlNTkzN2Y1YmMuLjg1Y2UyYzdiZGJiMDMyMWU2
ZjU1M2ZjMWE1ZGExMjU1MzU5OTUyNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dGF0aWNSYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCkBAIC01
NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBOb2RlKiBzdGFydENvbnRhaW5lcigpIGNvbnN0Owog
ICAgIE5vZGUqIGVuZENvbnRhaW5lcigpIGNvbnN0OwogICAgIGJvb2wgY29sbGFwc2VkKCkgY29u
c3Q7CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0YXRpY1JhbmdlJiBvdGhlcikg
Y29uc3Q7CiAKIHByaXZhdGU6CiAgICAgU3RhdGljUmFuZ2UoUmVmPE5vZGU+JiYgc3RhcnRDb250
YWluZXIsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCBSZWY8Tm9kZT4mJiBlbmRDb250YWluZXIsIHVu
c2lnbmVkIGVuZE9mZnNldCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385043</attachid>
            <date>2019-12-06 14:26:28 -0800</date>
            <delta_ts>2019-12-09 16:09:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204934-20191206142627.patch</filename>
            <type>text/plain</type>
            <size>15913</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZlMzJlNDNkMGI2Yjlh
NmRjMDI5YjViYWVkYmQ0MzhmODExYWJhMy4uMWYyYmEwNjA2YWNkMTU5ZDg4YWM5ODUxYThlMWM5
ZGMxYTE3Y2Y2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTEyLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsbCBIaWdo
bGlnaHRSYW5nZUdyb3VwIGFuZCBIaWdobGlnaHRNYXAgd2l0aCB2YWx1ZXMgZnJvbSBKYXZhU2Ny
aXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzQKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNTc2ODYzMzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxsb3V0IEhpZ2hsaWdodE1hcCBhbmQgSGln
aGxpZ2h0UmFuZ2VHcm91cCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHdlJ3JlIHBhc3NlZCBm
cm9tCisgICAgICAgIHRoZSBKYXZhU2NyaXB0IHNpZGUuIE1ha2Ugc3VyZSB0aGF0IHRoZSBqYXZh
c2NyaXB0IG9iamVjdHMgYXJlIGZpbGxlZCBvdXQgY29ycmVjdGx5LgorCisgICAgICAgIFRlc3Q6
IGhpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0TWFwOjpzeW5jaHJvbml6ZUJhY2tpbmdNYXApOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0TWFwOjpzZXRGcm9tTWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6cmVtb3ZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6Z2V0R3JvdXBGb3JTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaWdobGlnaHRNYXA6OmFkZEhpZ2hsaWdodEdyb3VwKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6bmFtZWRJdGVtIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6c2V0TmFtZWRJdGVtKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6ZGVsZXRlTmFtZWRQcm9wZXJ0eSk6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmg6CisgICAgICAg
IChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OmJhY2tpbmdNYXApOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0TWFwOjpzeW5jaHJvbml6ZUJhY2tpbmdNYXApOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0TWFwOjpjbGVhcik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJh
bmdlR3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0UmFuZ2VHcm91cDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGln
aGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y2xlYXJGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIaWdobGlnaHRSYW5nZUdyb3VwOjphZGRUb1NldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6YWRkUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6SXRlcmF0b3I6Okl0ZXJhdG9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6Okl0ZXJhdG9yOjpuZXh0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpyYW5nZXMgY29u
c3QpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJh
bmdlR3JvdXA6OmNyZWF0ZUl0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RhdGljUmFuZ2U6Om9wZXJhdG9yPT0gY29uc3Qp
OgorICAgICAgICAqIGRvbS9TdGF0aWNSYW5nZS5oOgorCiAyMDE5LTEyLTA2ICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjUzMTQ4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodE1hcC5jcHAKaW5kZXggYjI0OGVmN2QyZTU1NTc5NGQ0ZDczY2Q5N2E5NzM3YWY4YjRm
MTMwMy4uZWJlNTc2NDBhM2RmMjJmNDBlNmEzOWZmYTY1ZDQ1NTU4MWY0NDVmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuY3BwCkBAIC0y
Niw0MyArMjYsMzggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIaWdobGlnaHRN
YXAuaCIKIAotbmFtZXNwYWNlIFdlYkNvcmUgeworI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5j
bHVkZSAiSlNET01NYXBMaWtlLmgiCisjaW5jbHVkZSAiSlNIaWdobGlnaHRSYW5nZUdyb3VwLmgi
CiAKLXZvaWQgSGlnaGxpZ2h0TWFwOjphZGRIaWdobGlnaHRHcm91cChTdHJpbmcmIGNzc1N0eWxl
LCBIaWdobGlnaHRSYW5nZUdyb3VwICZncm91cCkKLXsKLSAgICBVTlVTRURfUEFSQU0oY3NzU3R5
bGUpOwotICAgIFVOVVNFRF9QQVJBTShncm91cCk7Ci19CiAKLXZvaWQgSGlnaGxpZ2h0TWFwOjpz
ZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+JiYpCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSGlnaGxpZ2h0TWFwOjpzeW5jaHJvbml6ZUJhY2tpbmdN
YXAoUmVmPERPTU1hcExpa2U+JiYgbWFwTGlrZSkKIHsKKyAgICBtX21hcExpa2UgPSBXVEZNb3Zl
KG1hcExpa2UpOworICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBtX21hcCkKKyAgICAgICAgbV9t
YXBMaWtlLT5zZXQ8SURMRE9NU3RyaW5nLCBJRExJbnRlcmZhY2U8SGlnaGxpZ2h0UmFuZ2VHcm91
cD4+KGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpOwogfQogCi1ib29sIEhpZ2hsaWdodE1h
cDo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIEhpZ2hsaWdodE1hcDo6c2V0RnJv
bU1hcExpa2UoU3RyaW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJiB2YWx1ZSkK
IHsKLSAgICBVTlVTRURfUEFSQU0odmFsdWUpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBtX21h
cC5zZXQoV1RGTW92ZShrZXkpLCBXVEZNb3ZlKHZhbHVlKSk7CiB9CiAKLVN0cmluZyBIaWdobGln
aHRNYXA6Om5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJiBuYW1lKSBjb25zdAordm9pZCBIaWdo
bGlnaHRNYXA6OmNsZWFyKCkKIHsKLSAgICBVTlVTRURfUEFSQU0obmFtZSk7Ci0gICAgCi0gICAg
cmV0dXJuIFN0cmluZyB7IH07CisgICAgbV9tYXAuY2xlYXIoKTsKIH0KIAotRXhjZXB0aW9uT3I8
dm9pZD4gSGlnaGxpZ2h0TWFwOjpzZXROYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBIaWdobGlnaHRSYW5nZUdyb3VwJiB2YWx1ZSkKK2Jvb2wgSGlnaGxpZ2h0TWFwOjpyZW1vdmUo
Y29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKG5hbWUpOwotICAgIFVOVVNF
RF9QQVJBTSh2YWx1ZSk7Ci0gICAgCi0gICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbV9tYXAu
cmVtb3ZlKGtleSk7CiB9CiAKLWJvb2wgSGlnaGxpZ2h0TWFwOjpkZWxldGVOYW1lZFByb3BlcnR5
KGNvbnN0IFN0cmluZyYgbmFtZSkKK0hpZ2hsaWdodFJhbmdlR3JvdXAqIEhpZ2hsaWdodE1hcDo6
Z2V0R3JvdXBGb3JTdHlsZShjb25zdCBTdHJpbmcmIGtleSkKIHsKLSAgICBVTlVTRURfUEFSQU0o
bmFtZSk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX21hcC5nZXQoa2V5KTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAu
aAppbmRleCA2NDFlMjRiZDgwZDc1ZmIyNTExODYyOWIyMmMwYzQ0Y2Y1Njk4MTRiLi45OWE2OTUw
MDE3MjRkOWMyMjBmYjNhNGQ2NjlhMjE5ZmJjMmY4ZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaApAQCAtMzksMjMgKzM5LDE4IEBAIGNs
YXNzIEhpZ2hsaWdodE1hcCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodE1hcD4gewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0TWFwPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IEhpZ2hsaWdodE1hcCk7IH0KICAgICAKLSAgICB2b2lkIGFkZEhpZ2hsaWdodEdy
b3VwKFN0cmluZyYsIEhpZ2hsaWdodFJhbmdlR3JvdXAmKTsKLSAgICAKLSAgICB2b2lkIHN5bmNo
cm9uaXplQmFja2luZ01hcChSZWY8RE9NTWFwTGlrZT4mJiBtYXBMaWtlKSB7IG1fbWFwTGlrZSA9
IFdURk1vdmUobWFwTGlrZSk7IH0KKyAgICB2b2lkIHN5bmNocm9uaXplQmFja2luZ01hcChSZWY8
RE9NTWFwTGlrZT4mJik7CiAgICAgRE9NTWFwTGlrZSogYmFja2luZ01hcCgpIHsgcmV0dXJuIG1f
bWFwTGlrZS5nZXQoKTsgfQotCi0gICAgLy8gQmluZGluZ3Mgc3VwcG9ydC4KLSAgICBTdHJpbmcg
bmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUpIGNvbnN0OwotICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldE5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEhpZ2hsaWdodFJh
bmdlR3JvdXAmIHZhbHVlKTsKLSAgICBib29sIGRlbGV0ZU5hbWVkUHJvcGVydHkoY29uc3QgU3Ry
aW5nJiBuYW1lKTsKICAgICAKICAgICB2b2lkIHNldEZyb21NYXBMaWtlKFN0cmluZyYmLCBSZWY8
SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJik7Ci0gICAgdm9pZCBjbGVhcigpIHsgfTsKLSAgICBib29s
IHJlbW92ZShjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgYm9v
bCByZW1vdmUoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAgSGlnaGxpZ2h0UmFuZ2VHcm91cCog
Z2V0R3JvdXBGb3JTdHlsZShjb25zdCBTdHJpbmcmKTsKICAgICAKIHByaXZhdGU6CiAgICAgSGln
aGxpZ2h0TWFwKCkgPSBkZWZhdWx0OwotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SGlnaGxp
Z2h0UmFuZ2VHcm91cD4+IG1fbWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0
UmFuZ2VHcm91cD4+IG1fbWFwOwogICAgIFJlZlB0cjxET01NYXBMaWtlPiBtX21hcExpa2U7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFw
LmlkbAppbmRleCAzNmU1YjU1NzIxNmVjNzVjZTM1Zjc5MTQxMWExODgzNTM3MmQ2ZWJmLi5kODk3
YTc4Mjg1ZWUwYjU4NDIyZDJiNmVjZTc2NTEwZjZhODMzZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwKQEAgLTI5LDUgKzI5LDQg
QEAKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBIaWdobGlnaHRN
YXAgewogICAgIG1hcGxpa2U8RE9NU3RyaW5nLCBIaWdobGlnaHRSYW5nZUdyb3VwPjsKLSAgICBb
Q0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdm9pZCAoRE9NU3RyaW5nIHN0
eWxlLCBIaWdobGlnaHRSYW5nZUdyb3VwIGdyb3VwKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCmluZGV4
IDg1NmJhMzg2OGU2NjgxNzY0YWU2NDM1NjIyNTgwOGMyZjc4ZGZmMDQuLjlmMWM0NTI3NjY4ODRm
NzljZWExYjQ3OWM2NDIzNTZjNzM4NGIwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCkBAIC0yNiw2ICsy
Niw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91
cC5oIgogCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIK
KyNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NTdHls
ZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKICNpbmNsdWRlICJTdHls
ZVByb3BlcnRpZXMuaCIKQEAgLTM0LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBI
aWdobGlnaHRSYW5nZUdyb3VwOjpIaWdobGlnaHRSYW5nZUdyb3VwKFN0YXRpY1JhbmdlJiByYW5n
ZSkKIHsKLSAgICBhZGRSYW5nZShyYW5nZSk7CisgICAgbV9yYW5nZXMuYXBwZW5kKG1ha2VSZWYo
cmFuZ2UpKTsKIH0KIAogUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3Jv
dXA6OmNyZWF0ZShTdGF0aWNSYW5nZSYgcmFuZ2UpCkBAIC00MiwzMCArNDUsMzEgQEAgUmVmPEhp
Z2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNyZWF0ZShTdGF0aWNSYW5n
ZSYgcmFuZ2UpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChy
YW5nZSkpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIaWdobGlnaHRSYW5nZUdyb3VwOjphZGRS
YW5nZShTdGF0aWNSYW5nZSYgcmFuZ2UpCit2b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmluaXRp
YWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKIHsKLSAgICBVTlVTRURfUEFSQU0ocmFu
Z2UpOwotCi0gICAgcmV0dXJuIHsgfTsKKyAgICBzZXQuYWRkPElETEludGVyZmFjZTxTdGF0aWNS
YW5nZT4+KG1fcmFuZ2VzWzBdKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gSGlnaGxpZ2h0UmFu
Z2VHcm91cDo6cmVtb3ZlUmFuZ2UoU3RhdGljUmFuZ2UmIHJhbmdlKQorYm9vbCBIaWdobGlnaHRS
YW5nZUdyb3VwOjpyZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCiB7
Ci0gICAgVU5VU0VEX1BBUkFNKHJhbmdlKTsKLSAgICAKLSAgICByZXR1cm4geyB9OworICAgIHJl
dHVybiBtX3Jhbmdlcy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxTdGF0
aWNSYW5nZT4mIGN1cnJlbnQpIHsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQuZ2V0KCkgPT0gcmFu
Z2U7CisgICAgfSk7CiB9CiAKLUhpZ2hsaWdodFJhbmdlR3JvdXA6Okl0ZXJhdG9yOjpJdGVyYXRv
cihIaWdobGlnaHRSYW5nZUdyb3VwJiBncm91cCkKLSAgICA6IG1fZ3JvdXAoZ3JvdXApCit2b2lk
IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJvbVNldExpa2UoKQogeworICAgIG1fcmFuZ2Vz
LmNsZWFyKCk7CiB9CiAKLVJlZlB0cjxTdGF0aWNSYW5nZT4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6
SXRlcmF0b3I6Om5leHQoKQorYm9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjphZGRUb1NldExpa2Uo
U3RhdGljUmFuZ2UmIHJhbmdlKQogewotICAgIGlmIChtX2luZGV4ID09IG1fZ3JvdXAtPnJhbmdl
cy5zaXplKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBtX2dyb3VwLT5y
YW5nZXNbbV9pbmRleCsrXS5wdHIoKTsKKyAgICBpZiAobm90Rm91bmQgPT0gbV9yYW5nZXMuZmlu
ZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxTdGF0aWNSYW5nZT4mIGN1cnJlbnQpIHsKKyAg
ICAgICAgcmV0dXJuIGN1cnJlbnQuZ2V0KCkgPT0gcmFuZ2U7IH0pKSB7CisgICAgICAgIG1fcmFu
Z2VzLmFwcGVuZChtYWtlUmVmKHJhbmdlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAppbmRleCBiOGJjOGUyZGUxM2Jh
MjE0YzJkZTRlNzFjZTFiZmM4MDNhMTYzNzcyLi5iMDZhY2VkZTI4MjA1OGM0MWY3MzFiYjNjMzBi
MWI5MDQ3ZDAzMzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCkBAIC0zMiwzMyArMzIsMjYgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIERPTVNldEFk
YXB0ZXI7CiBjbGFzcyBTdGF0aWNSYW5nZTsKIGNsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNs
YXJhdGlvbjsKIAogY2xhc3MgSGlnaGxpZ2h0UmFuZ2VHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVk
PEhpZ2hsaWdodFJhbmdlR3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dFJhbmdlR3JvdXA+IGNyZWF0ZShTdGF0aWNSYW5nZSYpOwotCi0gICAgRXhjZXB0aW9uT3I8dm9p
ZD4gYWRkUmFuZ2UoU3RhdGljUmFuZ2UmKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1vdmVS
YW5nZShTdGF0aWNSYW5nZSYpOwogICAgIAotICAgIFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiBy
YW5nZXM7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgp
OworICAgIHZvaWQgY2xlYXJGcm9tU2V0TGlrZSgpOworICAgIGJvb2wgYWRkVG9TZXRMaWtlKFN0
YXRpY1JhbmdlJik7CisgICAgYm9vbCByZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5n
ZSYpOworICAgIHZvaWQgaW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYpOwogICAgIAot
ICAgIGNsYXNzIEl0ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IEl0ZXJh
dG9yKEhpZ2hsaWdodFJhbmdlR3JvdXAmKTsKLSAgICAgICAgUmVmUHRyPFN0YXRpY1JhbmdlPiBu
ZXh0KCk7Ci0gICAgICAgIAotICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZjxIaWdobGlnaHRSYW5n
ZUdyb3VwPiBtX2dyb3VwOwotICAgICAgICBzaXplX3QgbV9pbmRleCB7IDAgfTsgLy8gRklYTUU6
IFRoZXJlIG5lZWRzIHRvIGJlIGEgbWVjaGFuaXNtIHRvIGhhbmRsZSB3aGVuIHJhbmdlcyBhcmUg
YWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIEhpZ2hsaWdodFJhbmdlR3Jv
dXAuCi0gICAgfTsKLSAgICBJdGVyYXRvciBjcmVhdGVJdGVyYXRvcigpIHsgcmV0dXJuIEl0ZXJh
dG9yKCp0aGlzKTsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiYgcmFuZ2Vz
KCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXM7IH0KKworICAgIC8vIEZJWE1FOiBBZGQgV0VCQ09S
RV9FWFBPUlQgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgc3R5bGUoKTsKICAgICAKIHByaXZhdGU6Ci0g
ICAgSGlnaGxpZ2h0UmFuZ2VHcm91cChTdGF0aWNSYW5nZSYpOworICAgIFZlY3RvcjxSZWY8U3Rh
dGljUmFuZ2U+PiBtX3JhbmdlczsKKyAgICBleHBsaWNpdCBIaWdobGlnaHRSYW5nZUdyb3VwKFN0
YXRpY1JhbmdlJik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCmluZGV4IDFlYzIwZTkyM2VjZjU2
MDhhYjljYzFjNzBmNzY5OWYyMDllOWQ0MzYuLjRmYzAwMTNkMzQ1NmIzOTg3MzljYTZkMmIyYzY3
NTExZTBiMTgxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCkBAIC0yOCw2ICsyOCw2IEBACiAgICAgRW5h
YmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZQogXSBpbnRlcmZhY2UgSGlnaGxpZ2h0UmFuZ2VHcm91cCB7Ci0gICAgaXRlcmFibGU8U3RhdGlj
UmFuZ2U+OyAgLy8gRklYTUU6IHNob3VsZCBiZSBzZXRsaWtlCisgICAgc2V0bGlrZTxTdGF0aWNS
YW5nZT47CiAgICAgLy8gRklYTUU6IEFkZCByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNs
YXJhdGlvbiBzdHlsZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGlj
UmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY1JhbmdlLmNwcAppbmRleCAxOThh
YTFhMjY5MDM0Mjg1N2RjODRmYzBkMWFhOGZmNWU3MTk2YzdiLi5kYzFlODg4YWI5NWFmNjU4OWYy
MWVkNWRkMDg3OWExNTgyOTIxZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3Rh
dGljUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5jcHAKQEAg
LTgxLDQgKzgxLDEwIEBAIGJvb2wgU3RhdGljUmFuZ2U6OmNvbGxhcHNlZCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fc3RhcnRPZmZzZXQgPT0gbV9lbmRPZmZzZXQgJiYgbV9zdGFydENvbnRhaW5lci5w
dHIoKSA9PSBtX2VuZENvbnRhaW5lci5wdHIoKTsKIH0KIAorYm9vbCBTdGF0aWNSYW5nZTo6b3Bl
cmF0b3I9PShjb25zdCBTdGF0aWNSYW5nZSYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICht
X3N0YXJ0T2Zmc2V0ID09IG90aGVyLnN0YXJ0T2Zmc2V0KCkgJiYgbV9lbmRPZmZzZXQgPT0gb3Ro
ZXIuZW5kT2Zmc2V0KCkgJiYgbV9zdGFydENvbnRhaW5lci0+aXNFcXVhbE5vZGUob3RoZXIuc3Rh
cnRDb250YWluZXIoKSkgJiYgbV9lbmRDb250YWluZXItPmlzRXF1YWxOb2RlKG90aGVyLmVuZENv
bnRhaW5lcigpKSk7Cit9CisKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0
YXRpY1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaAppbmRleCBmNDhj
OGQ0MGZiMjNmOTIyY2IxMjdlNmMxMGRjNmU1ZTU5MzdmNWJjLi44NWNlMmM3YmRiYjAzMjFlNmY1
NTNmYzFhNWRhMTI1NTM1OTk1MjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3Rh
dGljUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaApAQCAtNTUs
NiArNTUsOCBAQCBwdWJsaWM6CiAgICAgTm9kZSogc3RhcnRDb250YWluZXIoKSBjb25zdDsKICAg
ICBOb2RlKiBlbmRDb250YWluZXIoKSBjb25zdDsKICAgICBib29sIGNvbGxhcHNlZCgpIGNvbnN0
OworICAgIAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdGF0aWNSYW5nZSYgb3RoZXIpIGNv
bnN0OwogCiBwcml2YXRlOgogICAgIFN0YXRpY1JhbmdlKFJlZjxOb2RlPiYmIHN0YXJ0Q29udGFp
bmVyLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgUmVmPE5vZGU+JiYgZW5kQ29udGFpbmVyLCB1bnNp
Z25lZCBlbmRPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE0MTgwMzFkNDhkNGM1ZDBhM2ZlYzNlN2E1NGMwM2Qz
MTdjNWVhYzEuLmM0MGIxZTM5ZTdkNWMxZDkzNzE3YWI5MGYwYWZlOTE0MmNjNzllMmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNiAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRu
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGwgSGlnaGxpZ2h0UmFuZ2VHcm91cCBhbmQgSGln
aGxpZ2h0TWFwIHdpdGggdmFsdWVzIGZyb20gSmF2YVNjcmlwdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1h
bmQtZ3JvdXAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBoaWdobGlnaHQvaGlnaGxp
Z2h0LW1hcC1hbmQtZ3JvdXAuaHRtbDogQWRkZWQuCisKIDIwMTktMTItMDYgIEpvbmF0aGFuIEJl
ZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyNTMxNDguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0
LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hs
aWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mY2ViOWY1OGY0YTMx
MDU0MDI1ZTBkMTY1NjJjODIyNTY0YjBjNjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDggQEAKK1BBU1MgaGlnaGxpZ2h0UmFuZ2VHcm91cDEuc2l6ZSBpcyAxCitQQVNTIGhpZ2hs
aWdodFJhbmdlR3JvdXAyLnNpemUgaXMgMgorUEFTUyBoaWdobGlnaHRSYW5nZUdyb3VwMy5zaXpl
IGlzIDMKK1BBU1MgQ1NTLmhpZ2hsaWdodHMuc2l6ZSBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK09uZSB0d28gdGhyZWUuLi4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sIGIv
TGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjJkNDIwOWRmY2RhMzRjZGJkM2UzMzNlZWQ2ZTE0YjQzZTM0ZTA2MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5o
dG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpIaWdobGlnaHRBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgIDpyb290OjpoaWdobGlnaHQoZXhhbXBsZS1oaWdo
bGlnaHQxKSB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgICAgY29s
b3I6Ymx1ZTsKKyAgICB9CisgICAgOnJvb3Q6OmhpZ2hsaWdodChleGFtcGxlLWhpZ2hsaWdodDIp
IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgICAgICBjb2xvcjpibHVl
OworICAgIH0KKyAgICA6cm9vdDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0MykgeworICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgICAgIGNvbG9yOmJsdWU7CisgICAg
fQorICAgIDwvc3R5bGU+CisgICAgCisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
ImluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8Ym9keT48c3Bhbj5PbmUg
PC9zcGFuPjxzcGFuPnR3byA8L3NwYW4+PHNwYW4+dGhyZWUuLi48L3NwYW4+CisKKyAgICA8c2Ny
aXB0PgorICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBz
dGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9
KSk7CisKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwg
c3RhcnRPZmZzZXQ6IDIsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAz
fSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5l
cjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA1fSkpOworCisgICAgICAgIGxldCBoaWdobGln
aHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogOH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFu
Z2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZz
ZXQ6IDEyfSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA2fSkpOworICAgICAgICAKKworICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJh
bmdlR3JvdXAxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdo
dDIiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgi
ZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDMpOworCisgICAgICAgIHNo
b3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3VwMS5zaXplIiwiMSIpOworICAgICAgICBzaG91bGRC
ZSgiaGlnaGxpZ2h0UmFuZ2VHcm91cDIuc2l6ZSIsIjIiKTsKKyAgICAgICAgc2hvdWxkQmUoImhp
Z2hsaWdodFJhbmdlR3JvdXAzLnNpemUiLCIzIik7CisKKyAgICAgICAgc2hvdWxkQmUoIkNTUy5o
aWdobGlnaHRzLnNpemUiLCIzIik7CisKKyAgICAgICAgCisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385184</attachid>
            <date>2019-12-09 13:44:09 -0800</date>
            <delta_ts>2019-12-09 16:09:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204934-20191209134408.patch</filename>
            <type>text/plain</type>
            <size>16434</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRhYjI0MjdkODRjNzZj
ZDViZWZhM2MxNWIwZjkzYjZlOWY3NTc1NS4uZTFmYWU2NTk4ODhjYjQ5NTBmYmUwMDVhNzc0NjNi
MWRmM2ZkNzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTEyLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsbCBIaWdo
bGlnaHRSYW5nZUdyb3VwIGFuZCBIaWdobGlnaHRNYXAgd2l0aCB2YWx1ZXMgZnJvbSBKYXZhU2Ny
aXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzQKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNTc2ODYzMzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxsb3V0IEhpZ2hsaWdodE1hcCBhbmQgSGln
aGxpZ2h0UmFuZ2VHcm91cCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHdlJ3JlIHBhc3NlZCBm
cm9tCisgICAgICAgIHRoZSBKYXZhU2NyaXB0IHNpZGUuIE1ha2Ugc3VyZSB0aGF0IHRoZSBqYXZh
c2NyaXB0IG9iamVjdHMgYXJlIGZpbGxlZCBvdXQgY29ycmVjdGx5LgorCisgICAgICAgIFRlc3Q6
IGhpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCisKKyAgICAgICAgKiBNb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0TWFwOjpzeW5jaHJvbml6ZUJhY2tpbmdNYXApOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0TWFwOjpzZXRGcm9tTWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6cmVtb3ZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6Z2V0R3JvdXBGb3JTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaWdobGlnaHRNYXA6OmFkZEhpZ2hsaWdodEdyb3VwKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6bmFtZWRJdGVtIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6c2V0TmFtZWRJdGVtKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodE1hcDo6ZGVsZXRlTmFtZWRQcm9wZXJ0eSk6IERlbGV0
ZWQuCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmg6CisgICAgICAg
IChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OmJhY2tpbmdNYXApOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0TWFwOjpzeW5jaHJvbml6ZUJhY2tpbmdNYXApOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0TWFwOjpjbGVhcik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJh
bmdlR3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0UmFuZ2VHcm91cDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGln
aGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y2xlYXJGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIaWdobGlnaHRSYW5nZUdyb3VwOjphZGRUb1NldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6YWRkUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6SXRlcmF0b3I6Okl0ZXJhdG9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6Okl0ZXJhdG9yOjpuZXh0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpyYW5nZXMgY29u
c3QpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJh
bmdlR3JvdXA6OmNyZWF0ZUl0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbDoKKyAgICAgICAgKiBkb20vU3RhdGljUmFu
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RhdGljUmFuZ2U6Om9wZXJhdG9yPT0gY29uc3Qp
OgorICAgICAgICAqIGRvbS9TdGF0aWNSYW5nZS5oOgorCiAyMDE5LTEyLTA5ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzcGVjdWxh
dGl2ZSB0dk9TIGJ1aWxkIGZpeCBhZnRlciByMjUzMjMxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKaW5kZXggNDMzY2Q2ZWQ4MmUwYzJh
ZmVjZjE4ZjI1MjY2YWI5ODdiYTgzOWFkZS4uM2EwMjMzMWI2Zjg0ZjY1NjNlN2I3ODkwYWEwNjhl
MzI1ZWYzNTgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuY3BwCkBAIC0yNiw1MiArMjYsMzYgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKIAorI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5j
bHVkZSAiSlNET01NYXBMaWtlLmgiCiAjaW5jbHVkZSAiSlNIaWdobGlnaHRSYW5nZUdyb3VwLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBIaWdobGlnaHRNYXA6OmFkZEhpZ2hsaWdo
dEdyb3VwKFN0cmluZyYgY3NzU3R5bGUsIEhpZ2hsaWdodFJhbmdlR3JvdXAgJmdyb3VwKQotewot
ICAgIFVOVVNFRF9QQVJBTShjc3NTdHlsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGdyb3VwKTsKLX0K
LQorICAgIAogdm9pZCBIaWdobGlnaHRNYXA6OmluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0
ZXImIG1hcCkKIHsKICAgICBmb3IgKGF1dG8mIGtleVZhbHVlIDogbV9tYXApCiAgICAgICAgIG1h
cC5zZXQ8SURMRE9NU3RyaW5nLCBJRExJbnRlcmZhY2U8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+KGtl
eVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpOwogfQogCi12b2lkIEhpZ2hsaWdodE1hcDo6c2V0
RnJvbU1hcExpa2UoU3RyaW5nJiYsIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiYmKQordm9pZCBI
aWdobGlnaHRNYXA6OnNldEZyb21NYXBMaWtlKFN0cmluZyYmIGtleSwgUmVmPEhpZ2hsaWdodFJh
bmdlR3JvdXA+JiYgdmFsdWUpCiB7CisgICAgbV9tYXAuc2V0KFdURk1vdmUoa2V5KSwgV1RGTW92
ZSh2YWx1ZSkpOwogfQogCi1ib29sIEhpZ2hsaWdodE1hcDo6cmVtb3ZlKGNvbnN0IFN0cmluZyYg
dmFsdWUpCit2b2lkIEhpZ2hsaWdodE1hcDo6Y2xlYXIoKQogewotICAgIFVOVVNFRF9QQVJBTSh2
YWx1ZSk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIG1fbWFwLmNsZWFyKCk7CiB9CiAKLVN0cmlu
ZyBIaWdobGlnaHRNYXA6Om5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJiBuYW1lKSBjb25zdAor
Ym9vbCBIaWdobGlnaHRNYXA6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKIHsKLSAgICBVTlVT
RURfUEFSQU0obmFtZSk7Ci0gICAgCi0gICAgcmV0dXJuIFN0cmluZyB7IH07Ci19Ci0KLUV4Y2Vw
dGlvbk9yPHZvaWQ+IEhpZ2hsaWdodE1hcDo6c2V0TmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgSGlnaGxpZ2h0UmFuZ2VHcm91cCYgdmFsdWUpCi17Ci0gICAgVU5VU0VEX1BBUkFN
KG5hbWUpOwotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0gICAgCi0gICAgcmV0dXJuIHsgfTsK
KyAgICByZXR1cm4gbV9tYXAucmVtb3ZlKGtleSk7CiB9CiAKLWJvb2wgSGlnaGxpZ2h0TWFwOjpk
ZWxldGVOYW1lZFByb3BlcnR5KGNvbnN0IFN0cmluZyYgbmFtZSkKK1JlZlB0cjxIaWdobGlnaHRS
YW5nZUdyb3VwPiBIaWdobGlnaHRNYXA6OmdldEdyb3VwRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5
KQogewotICAgIFVOVVNFRF9QQVJBTShuYW1lKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIG1fbWFwLmdldChrZXkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oCmluZGV4IDY5YTcwYjAwYzhkNmY0Yzg0NGVmNzk4ZmUz
NzgzMGMzMjQ5YmJjYjkuLmZmOThjYzNiYTUzMmZlMDFkZTQwNzU2ODlhMGI5MjM2NTdmY2VlZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1h
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5o
CkBAIC0zOSwxNyArMzksMTIgQEAgY2xhc3MgSGlnaGxpZ2h0TWFwIDogcHVibGljIFJlZkNvdW50
ZWQ8SGlnaGxpZ2h0TWFwPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIaWdobGlnaHRNYXA+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0TWFwKTsgfQogCi0gICAg
dm9pZCBhZGRIaWdobGlnaHRHcm91cChTdHJpbmcmLCBIaWdobGlnaHRSYW5nZUdyb3VwJik7CiAg
ICAgdm9pZCBpbml0aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJik7Ci0KLSAgICAvLyBCaW5k
aW5ncyBzdXBwb3J0LgotICAgIFN0cmluZyBuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYgbmFt
ZSkgY29uc3Q7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0TmFtZWRJdGVtKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgSGlnaGxpZ2h0UmFuZ2VHcm91cCYgdmFsdWUpOwotICAgIGJvb2wgZGVs
ZXRlTmFtZWRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUpOwotICAgIAogICAgIHZvaWQgc2V0
RnJvbU1hcExpa2UoU3RyaW5nJiYsIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiYmKTsKLSAgICB2
b2lkIGNsZWFyKCkgeyB9OwotICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYgdmFsdWUpOwor
ICAgIHZvaWQgY2xlYXIoKTsKKyAgICBib29sIHJlbW92ZShjb25zdCBTdHJpbmcmKTsKKyAgICAK
KyAgICBSZWZQdHI8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gZ2V0R3JvdXBGb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXkpOwogICAgIAogcHJpdmF0ZToKICAgICBIaWdobGlnaHRNYXAoKSA9IGRlZmF1bHQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRN
YXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlk
bAppbmRleCAzNmU1YjU1NzIxNmVjNzVjZTM1Zjc5MTQxMWExODgzNTM3MmQ2ZWJmLi5kODk3YTc4
Mjg1ZWUwYjU4NDIyZDJiNmVjZTc2NTEwZjZhODMzZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwKQEAgLTI5LDUgKzI5LDQgQEAK
ICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBIaWdobGlnaHRNYXAg
ewogICAgIG1hcGxpa2U8RE9NU3RyaW5nLCBIaWdobGlnaHRSYW5nZUdyb3VwPjsKLSAgICBbQ0VS
ZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdm9pZCAoRE9NU3RyaW5nIHN0eWxl
LCBIaWdobGlnaHRSYW5nZUdyb3VwIGdyb3VwKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCmluZGV4IDg1
NmJhMzg2OGU2NjgxNzY0YWU2NDM1NjIyNTgwOGMyZjc4ZGZmMDQuLmRkNTNjYmJlZDJhNmZiOTJi
ZWZhYjY0N2VlODdhM2JiMWRjNWFmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCkBAIC0yNiwxNSArMjYs
MTggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3Vw
LmgiCiAKKyNpbmNsdWRlICJJRExUeXBlcy5oIgorI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgor
I2luY2x1ZGUgIkpTU3RhdGljUmFuZ2UuaCIKICNpbmNsdWRlICJQcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUgIlN0eWxl
UHJvcGVydGllcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUhpZ2hsaWdodFJhbmdlR3Jv
dXA6OkhpZ2hsaWdodFJhbmdlR3JvdXAoU3RhdGljUmFuZ2UmIHJhbmdlKQorSGlnaGxpZ2h0UmFu
Z2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCiB7
Ci0gICAgYWRkUmFuZ2UocmFuZ2UpOworICAgIG1fcmFuZ2VzLmFwcGVuZChXVEZNb3ZlKHJhbmdl
KSk7CiB9CiAKIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5nZUdyb3VwOjpj
cmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQpAQCAtNDIsMzAgKzQ1LDMwIEBAIFJlZjxIaWdobGln
aHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJh
bmdlKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAocmFuZ2Up
KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6YWRkUmFuZ2Uo
U3RhdGljUmFuZ2UmIHJhbmdlKQordm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjppbml0aWFsaXpl
U2V0TGlrZShET01TZXRBZGFwdGVyJiBzZXQpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHJhbmdlKTsK
LQotICAgIHJldHVybiB7IH07CisgICAgZm9yIChhdXRvJiByYW5nZSA6IG1fcmFuZ2VzKQorICAg
ICAgICBzZXQuYWRkPElETEludGVyZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlKTsKIH0KIAotRXhj
ZXB0aW9uT3I8dm9pZD4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlUmFuZ2UoU3RhdGljUmFu
Z2UmIHJhbmdlKQorYm9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjpyZW1vdmVGcm9tU2V0TGlrZShj
b25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHJhbmdlKTsKLSAg
ICAKLSAgICByZXR1cm4geyB9OworICAgIHJldHVybiBtX3Jhbmdlcy5yZW1vdmVGaXJzdE1hdGNo
aW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxTdGF0aWNSYW5nZT4mIGN1cnJlbnQpIHsKKyAgICAgICAg
cmV0dXJuIGN1cnJlbnQuZ2V0KCkgPT0gcmFuZ2U7CisgICAgfSk7CiB9CiAKLUhpZ2hsaWdodFJh
bmdlR3JvdXA6Okl0ZXJhdG9yOjpJdGVyYXRvcihIaWdobGlnaHRSYW5nZUdyb3VwJiBncm91cCkK
LSAgICA6IG1fZ3JvdXAoZ3JvdXApCit2b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJv
bVNldExpa2UoKQogeworICAgIG1fcmFuZ2VzLmNsZWFyKCk7CiB9CiAKLVJlZlB0cjxTdGF0aWNS
YW5nZT4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6SXRlcmF0b3I6Om5leHQoKQorYm9vbCBIaWdobGln
aHRSYW5nZUdyb3VwOjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQogewotICAgIGlm
IChtX2luZGV4ID09IG1fZ3JvdXAtPnJhbmdlcy5zaXplKCkpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIHJldHVybiBtX2dyb3VwLT5yYW5nZXNbbV9pbmRleCsrXS5wdHIoKTsKKyAgICBp
ZiAobm90Rm91bmQgIT0gbV9yYW5nZXMuZmluZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxT
dGF0aWNSYW5nZT4mIGN1cnJlbnQpIHsgcmV0dXJuIGN1cnJlbnQuZ2V0KCkgPT0gcmFuZ2U7IH0p
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgbV9yYW5nZXMuYXBwZW5kKG1ha2VSZWYocmFu
Z2UpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCmluZGV4IGI4YmM4ZTJk
ZTEzYmEyMTRjMmRlNGU3MWNlMWJmYzgwM2ExNjM3NzIuLjk3MjQ1MDYzZDU2YWYxYTJiNDRlMDFl
N2ExYTQ5MWMyYzJiOGI3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKQEAgLTMyLDMzICszMiwyNiBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOworY2xhc3MgRE9N
U2V0QWRhcHRlcjsKIGNsYXNzIFN0YXRpY1JhbmdlOwogY2xhc3MgUHJvcGVydHlTZXRDU1NTdHls
ZURlY2xhcmF0aW9uOwogCiBjbGFzcyBIaWdobGlnaHRSYW5nZUdyb3VwIDogcHVibGljIFJlZkNv
dW50ZWQ8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SGln
aGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7Ci0KLSAgICBFeGNlcHRpb25P
cjx2b2lkPiBhZGRSYW5nZShTdGF0aWNSYW5nZSYpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJl
bW92ZVJhbmdlKFN0YXRpY1JhbmdlJik7CiAgICAgCi0gICAgVmVjdG9yPFJlZjxTdGF0aWNSYW5n
ZT4+IHJhbmdlczsKLQotICAgIFdFQkNPUkVfRVhQT1JUIENTU1N0eWxlRGVjbGFyYXRpb24mIHN0
eWxlKCk7CisgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CisgICAgYm9vbCBhZGRUb1NldExp
a2UoU3RhdGljUmFuZ2UmKTsKKyAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRp
Y1JhbmdlJik7CisgICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJik7CiAg
ICAgCi0gICAgY2xhc3MgSXRlcmF0b3IgewotICAgIHB1YmxpYzoKLSAgICAgICAgZXhwbGljaXQg
SXRlcmF0b3IoSGlnaGxpZ2h0UmFuZ2VHcm91cCYpOwotICAgICAgICBSZWZQdHI8U3RhdGljUmFu
Z2U+IG5leHQoKTsKLSAgICAgICAgCi0gICAgcHJpdmF0ZToKLSAgICAgICAgUmVmPEhpZ2hsaWdo
dFJhbmdlR3JvdXA+IG1fZ3JvdXA7Ci0gICAgICAgIHNpemVfdCBtX2luZGV4IHsgMCB9OyAvLyBG
SVhNRTogVGhlcmUgbmVlZHMgdG8gYmUgYSBtZWNoYW5pc20gdG8gaGFuZGxlIHdoZW4gcmFuZ2Vz
IGFyZSBhZGRlZCBvciByZW1vdmVkIGZyb20gdGhlIG1pZGRsZSBvZiB0aGUgSGlnaGxpZ2h0UmFu
Z2VHcm91cC4KLSAgICB9OwotICAgIEl0ZXJhdG9yIGNyZWF0ZUl0ZXJhdG9yKCkgeyByZXR1cm4g
SXRlcmF0b3IoKnRoaXMpOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZjxTdGF0aWNSYW5nZT4+JiBy
YW5nZXMoKSBjb25zdCB7IHJldHVybiBtX3JhbmdlczsgfQorCisgICAgLy8gRklYTUU6IEFkZCBX
RUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOwogICAgIAogcHJpdmF0
ZToKLSAgICBIaWdobGlnaHRSYW5nZUdyb3VwKFN0YXRpY1JhbmdlJik7CisgICAgVmVjdG9yPFJl
ZjxTdGF0aWNSYW5nZT4+IG1fcmFuZ2VzOyAvLyBUT0RPOiB1c2UgYSBIYXNoU2V0IGluc3RlYWQg
b2YgYSBWZWN0b3IgPHJkYXI6Ly9wcm9ibGVtLzU3NzYwNjE0PgorICAgIGV4cGxpY2l0IEhpZ2hs
aWdodFJhbmdlR3JvdXAoUmVmPFN0YXRpY1JhbmdlPiYmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5p
ZGwKaW5kZXggMWVjMjBlOTIzZWNmNTYwOGFiOWNjMWM3MGY3Njk5ZjIwOWU5ZDQzNi4uNGZjMDAx
M2QzNDU2YjM5ODczOWNhNmQyYjJjNjc1MTFlMGIxODExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKQEAg
LTI4LDYgKzI4LDYgQEAKICAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKICAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBIaWdobGlnaHRSYW5nZUdyb3Vw
IHsKLSAgICBpdGVyYWJsZTxTdGF0aWNSYW5nZT47ICAvLyBGSVhNRTogc2hvdWxkIGJlIHNldGxp
a2UKKyAgICBzZXRsaWtlPFN0YXRpY1JhbmdlPjsKICAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5
IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3Rh
dGljUmFuZ2UuY3BwCmluZGV4IDE5OGFhMWEyNjkwMzQyODU3ZGM4NGZjMGQxYWE4ZmY1ZTcxOTZj
N2IuLjgxMzZkYTE5MzMwYTAyY2E5NTM0ZGQ0MGNiZjAzYWVmNWRiOTE3OWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0YXRpY1JhbmdlLmNwcApAQCAtODEsNCArODEsOSBAQCBib29sIFN0YXRpY1JhbmdlOjpj
b2xsYXBzZWQoKSBjb25zdAogICAgIHJldHVybiBtX3N0YXJ0T2Zmc2V0ID09IG1fZW5kT2Zmc2V0
ICYmIG1fc3RhcnRDb250YWluZXIucHRyKCkgPT0gbV9lbmRDb250YWluZXIucHRyKCk7CiB9CiAK
K2Jvb2wgU3RhdGljUmFuZ2U6Om9wZXJhdG9yPT0oY29uc3QgU3RhdGljUmFuZ2UmIG90aGVyKSBj
b25zdAoreworICAgIHJldHVybiAobV9zdGFydE9mZnNldCA9PSBvdGhlci5zdGFydE9mZnNldCgp
ICYmIG1fZW5kT2Zmc2V0ID09IG90aGVyLmVuZE9mZnNldCgpICYmIG1fc3RhcnRDb250YWluZXIt
PmlzRXF1YWxOb2RlKG90aGVyLnN0YXJ0Q29udGFpbmVyKCkpICYmIG1fZW5kQ29udGFpbmVyLT5p
c0VxdWFsTm9kZShvdGhlci5lbmRDb250YWluZXIoKSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0
aWNSYW5nZS5oCmluZGV4IGY0OGM4ZDQwZmIyM2Y5MjJjYjEyN2U2YzEwZGM2ZTVlNTkzN2Y1YmMu
LmY4MGQ4NWU1Mjg2OGVjNTQwYWM0ZmMzYTQxYjZmOGI1Y2FkZWQ2YjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNSYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
dGF0aWNSYW5nZS5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBOb2RlKiBzdGFydENv
bnRhaW5lcigpIGNvbnN0OwogICAgIE5vZGUqIGVuZENvbnRhaW5lcigpIGNvbnN0OwogICAgIGJv
b2wgY29sbGFwc2VkKCkgY29uc3Q7CisgICAgCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0
YXRpY1JhbmdlJikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgU3RhdGljUmFuZ2UoUmVmPE5vZGU+
JiYgc3RhcnRDb250YWluZXIsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCBSZWY8Tm9kZT4mJiBlbmRD
b250YWluZXIsIHVuc2lnbmVkIGVuZE9mZnNldCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTFhNTA0MTE5NzIwNjMwODll
YmQ0NjQ4YWFiYzM4ZjM5MmM3MDc0My4uNTBlZjc5MmEyNGYxYTJkZDliMzkxMjJiMTA0NDIwYzQw
NTM2YzBjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTEyLTA2ICBNZWdhbiBHYXJkbmVy
ICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsbCBIaWdobGlnaHRSYW5n
ZUdyb3VwIGFuZCBIaWdobGlnaHRNYXAgd2l0aCB2YWx1ZXMgZnJvbSBKYXZhU2NyaXB0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGhpZ2hsaWdodC9o
aWdobGlnaHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGhp
Z2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0w
OSAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIChyMjUyODg5
KSB3ZWJydGMvcGVlcmNvbm5lY3Rpb24tcGFnZS1jYWNoZS5odG1sIGlzIGNyYXNoaW5nIG9uIGlP
UyBEZWJ1ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAt
YW5kLWdyb3VwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQt
bWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmIxMzIxOWJiMmU5ZGNmZjVk
MWNlNzNkNzMwZDcwZmFkYzE4OWFlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2hp
Z2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MyBAQAorUEFTUyBoaWdobGlnaHRSYW5nZUdyb3VwMS5zaXplIGlzIDEKK1BBU1MgaGlnaGxpZ2h0
UmFuZ2VHcm91cDIuc2l6ZSBpcyAyCitQQVNTIGhpZ2hsaWdodFJhbmdlR3JvdXAzLnNpemUgaXMg
MworUEFTUyBDU1MuaGlnaGxpZ2h0cy5zaXplIGlzIDMKK1BBU1MgQ1NTLmhpZ2hsaWdodHMuaGFz
KCJleGFtcGxlLWhpZ2hsaWdodDEiKSBpcyB0cnVlCitQQVNTIENTUy5oaWdobGlnaHRzLmhhcygi
ZXhhbXBsZS1oaWdobGlnaHQyIikgaXMgdHJ1ZQorUEFTUyBDU1MuaGlnaGxpZ2h0cy5oYXMoImV4
YW1wbGUtaGlnaGxpZ2h0MyIpIGlzIHRydWUKK1BBU1MgQ1NTLmhpZ2hsaWdodHMuZ2V0KCJleGFt
cGxlLWhpZ2hsaWdodDEiKS5lbnRyaWVzKCkubmV4dCgpLnZhbHVlWzBdLnN0YXJ0T2Zmc2V0IGlz
IDEKK1BBU1MgQ1NTLmhpZ2hsaWdodHMuZ2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiKS5lbnRyaWVz
KCkubmV4dCgpLnZhbHVlWzBdLmVuZE9mZnNldCBpcyAyCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK09uZSB0d28gdGhyZWUuLi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sIGIvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWI0YmZhYjBhY2UzNGFhMTVhNWQ0MTg3NzgxYjA1NTYzZDE2MTViMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1s
CkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGV4cGVyaW1lbnRhbDpIaWdobGlnaHRBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxoZWFkPgor
ICAgIDxzdHlsZT4KKyAgICA6cm9vdDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0MSkgewor
ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgICAgICAgIGNvbG9yOmJsdWU7Cisg
ICAgfQorICAgIDpyb290OjpoaWdobGlnaHQoZXhhbXBsZS1oaWdobGlnaHQyKSB7CisgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgICAgY29sb3I6Ymx1ZTsKKyAgICB9Cisg
ICAgOnJvb3Q6OmhpZ2hsaWdodChleGFtcGxlLWhpZ2hsaWdodDMpIHsKKyAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogeWVsbG93OworICAgICAgICBjb2xvcjpibHVlOworICAgIH0KKyAgICA8L3N0
eWxlPgorPC9oZWFkPgorICAgIDxib2R5PjxzcGFuPk9uZSA8L3NwYW4+PHNwYW4+dHdvIDwvc3Bh
bj48c3Bhbj50aHJlZS4uLjwvc3Bhbj4KKworICAgIDxzY3JpcHQ+CisgICAgICAgIGxldCBoaWdo
bGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250
YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKTsKKworICAgICAgICBsZXQgaGln
aGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMiwgZW5kQ29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDN9KSk7CisgICAgICAgIGhpZ2hsaWdo
dFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVu
dC5ib2R5LCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRP
ZmZzZXQ6IDV9KSk7CisKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhp
Z2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1l
bnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5k
T2Zmc2V0OiA4fSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEwLCBl
bmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMTJ9KSk7CisgICAgICAgIGhp
Z2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAgIAorCisgICAgICAgIENTUy5oaWdobGlnaHRzLnNl
dCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOworICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3Jv
dXAyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBo
aWdobGlnaHRSYW5nZUdyb3VwMyk7CisKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodFJhbmdl
R3JvdXAxLnNpemUiLCIxIik7CisgICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3Vw
Mi5zaXplIiwiMiIpOworICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0UmFuZ2VHcm91cDMuc2l6
ZSIsIjMiKTsKKworICAgICAgICBzaG91bGRCZSgiQ1NTLmhpZ2hsaWdodHMuc2l6ZSIsIjMiKTsK
KworICAgICAgICBzaG91bGRCZVRydWUoIkNTUy5oaWdobGlnaHRzLmhhcyhcImV4YW1wbGUtaGln
aGxpZ2h0MVwiKSIpOworICAgICAgICBzaG91bGRCZVRydWUoIkNTUy5oaWdobGlnaHRzLmhhcyhc
ImV4YW1wbGUtaGlnaGxpZ2h0MlwiKSIpOworICAgICAgICBzaG91bGRCZVRydWUoIkNTUy5oaWdo
bGlnaHRzLmhhcyhcImV4YW1wbGUtaGlnaGxpZ2h0M1wiKSIpOworCisgICAgICAgIHNob3VsZEJl
KCJDU1MuaGlnaGxpZ2h0cy5nZXQoXCJleGFtcGxlLWhpZ2hsaWdodDFcIikuZW50cmllcygpLm5l
eHQoKS52YWx1ZVswXS5zdGFydE9mZnNldCIsIjEiKTsKKyAgICAgICAgc2hvdWxkQmUoIkNTUy5o
aWdobGlnaHRzLmdldChcImV4YW1wbGUtaGlnaGxpZ2h0MVwiKS5lbnRyaWVzKCkubmV4dCgpLnZh
bHVlWzBdLmVuZE9mZnNldCIsIjIiKTsKKworICAgICAgICAKKyAgICA8L3NjcmlwdD4KKworICAg
IDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385201</attachid>
            <date>2019-12-09 16:09:13 -0800</date>
            <delta_ts>2019-12-09 16:53:30 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204934-20191209160912.patch</filename>
            <type>text/plain</type>
            <size>16430</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRhYjI0MjdkODRjNzZj
ZDViZWZhM2MxNWIwZjkzYjZlOWY3NTc1NS4uNjBiYjliYWVjNTYyNDQ2NjM3NmUyOTVmZWZlYjg5
OGJhNjQzOTNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTEyLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsbCBIaWdo
bGlnaHRSYW5nZUdyb3VwIGFuZCBIaWdobGlnaHRNYXAgd2l0aCB2YWx1ZXMgZnJvbSBKYXZhU2Ny
aXB0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5
MzQKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNTc2ODYzMzUKKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgRmlsbG91dCBIaWdobGlnaHRNYXAgYW5kIEhpZ2hs
aWdodFJhbmdlR3JvdXAgd2l0aCB0aGUgaW5mb3JtYXRpb24gdGhhdCB3ZSdyZSBwYXNzZWQgZnJv
bQorICAgICAgICB0aGUgSmF2YVNjcmlwdCBzaWRlLiBNYWtlIHN1cmUgdGhhdCB0aGUgamF2YXNj
cmlwdCBvYmplY3RzIGFyZSBmaWxsZWQgb3V0IGNvcnJlY3RseS4KKworICAgICAgICBUZXN0OiBo
aWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbAorCisgICAgICAgICogTW9kdWxl
cy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdo
dE1hcDo6c3luY2hyb25pemVCYWNraW5nTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdo
dE1hcDo6c2V0RnJvbU1hcExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0TWFwOjpj
bGVhcik6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OnJlbW92ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OmdldEdyb3VwRm9yU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0TWFwOjphZGRIaWdobGlnaHRHcm91cCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpIaWdobGlnaHRNYXA6Om5hbWVkSXRlbSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OnNldE5hbWVkSXRlbSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpIaWdobGlnaHRNYXA6OmRlbGV0ZU5hbWVkUHJvcGVydHkpOiBEZWxldGVk
LgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0TWFwOjpiYWNraW5nTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Okhp
Z2hsaWdodE1hcDo6c3luY2hyb25pemVCYWNraW5nTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodE1hcDo6Y2xlYXIpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGw6CisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5n
ZUdyb3VwOjpIaWdobGlnaHRSYW5nZUdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdo
dFJhbmdlR3JvdXA6OmluaXRpYWxpemVTZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hs
aWdodFJhbmdlR3JvdXA6OnJlbW92ZUZyb21TZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6Okhp
Z2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6YWRkVG9TZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6Okhp
Z2hsaWdodFJhbmdlR3JvdXA6OmFkZFJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZVJhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6Okl0ZXJhdG9yOjpJdGVyYXRvcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpJdGVyYXRvcjo6bmV4dCk6
IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5oOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmFuZ2VzIGNvbnN0
KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5n
ZUdyb3VwOjpjcmVhdGVJdGVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9oaWdo
bGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGw6CisgICAgICAgICogZG9tL1N0YXRpY1Jhbmdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0YXRpY1JhbmdlOjpvcGVyYXRvcj09IGNvbnN0KToK
KyAgICAgICAgKiBkb20vU3RhdGljUmFuZ2UuaDoKKwogMjAxOS0xMi0wOSAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc3BlY3VsYXRp
dmUgdHZPUyBidWlsZCBmaXggYWZ0ZXIgcjI1MzIzMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuY3BwCmluZGV4IDQzM2NkNmVkODJlMGMyYWZl
Y2YxOGYyNTI2NmFiOTg3YmE4MzlhZGUuLjNhMDIzMzFiNmY4NGY2NTYzZTdiNzg5MGFhMDY4ZTMy
NWVmMzU4MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodE1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0TWFwLmNwcApAQCAtMjYsNTIgKzI2LDM2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCiAKKyNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1
ZGUgIkpTRE9NTWFwTGlrZS5oIgogI2luY2x1ZGUgIkpTSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgSGlnaGxpZ2h0TWFwOjphZGRIaWdobGlnaHRH
cm91cChTdHJpbmcmIGNzc1N0eWxlLCBIaWdobGlnaHRSYW5nZUdyb3VwICZncm91cCkKLXsKLSAg
ICBVTlVTRURfUEFSQU0oY3NzU3R5bGUpOwotICAgIFVOVVNFRF9QQVJBTShncm91cCk7Ci19Ci0K
KyAgICAKIHZvaWQgSGlnaGxpZ2h0TWFwOjppbml0aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVy
JiBtYXApCiB7CiAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fbWFwKQogICAgICAgICBtYXAu
c2V0PElETERPTVN0cmluZywgSURMSW50ZXJmYWNlPEhpZ2hsaWdodFJhbmdlR3JvdXA+PihrZXlW
YWx1ZS5rZXksIGtleVZhbHVlLnZhbHVlKTsKIH0KIAotdm9pZCBIaWdobGlnaHRNYXA6OnNldEZy
b21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJikKK3ZvaWQgSGln
aGxpZ2h0TWFwOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGlnaHRSYW5n
ZUdyb3VwPiYmIHZhbHVlKQogeworICAgIG1fbWFwLnNldChXVEZNb3ZlKGtleSksIFdURk1vdmUo
dmFsdWUpKTsKIH0KIAotYm9vbCBIaWdobGlnaHRNYXA6OnJlbW92ZShjb25zdCBTdHJpbmcmIHZh
bHVlKQordm9pZCBIaWdobGlnaHRNYXA6OmNsZWFyKCkKIHsKLSAgICBVTlVTRURfUEFSQU0odmFs
dWUpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBtX21hcC5jbGVhcigpOwogfQogCi1TdHJpbmcg
SGlnaGxpZ2h0TWFwOjpuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYgbmFtZSkgY29uc3QKK2Jv
b2wgSGlnaGxpZ2h0TWFwOjpyZW1vdmUoY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgVU5VU0VE
X1BBUkFNKG5hbWUpOwotICAgIAotICAgIHJldHVybiBTdHJpbmcgeyB9OwotfQotCi1FeGNlcHRp
b25Pcjx2b2lkPiBIaWdobGlnaHRNYXA6OnNldE5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IEhpZ2hsaWdodFJhbmdlR3JvdXAmIHZhbHVlKQotewotICAgIFVOVVNFRF9QQVJBTShu
YW1lKTsKLSAgICBVTlVTRURfUEFSQU0odmFsdWUpOwotICAgIAotICAgIHJldHVybiB7IH07Cisg
ICAgcmV0dXJuIG1fbWFwLnJlbW92ZShrZXkpOwogfQogCi1ib29sIEhpZ2hsaWdodE1hcDo6ZGVs
ZXRlTmFtZWRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUpCitSZWZQdHI8SGlnaGxpZ2h0UmFu
Z2VHcm91cD4gSGlnaGxpZ2h0TWFwOjpnZXRHcm91cEZvcktleShjb25zdCBTdHJpbmcmIGtleSkK
IHsKLSAgICBVTlVTRURfUEFSQU0obmFtZSk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBtX21hcC5nZXQoa2V5KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRNYXAuaAppbmRleCA2OWE3MGIwMGM4ZDZmNGM4NDRlZjc5OGZlMzc4
MzBjMzI0OWJiY2I5Li5mZjk4Y2MzYmE1MzJmZTAxZGU0MDc1Njg5YTBiOTIzNjU3ZmNlZWYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaApA
QCAtMzksMTcgKzM5LDEyIEBAIGNsYXNzIEhpZ2hsaWdodE1hcCA6IHB1YmxpYyBSZWZDb3VudGVk
PEhpZ2hsaWdodE1hcD4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0TWFwPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodE1hcCk7IH0KIAotICAgIHZv
aWQgYWRkSGlnaGxpZ2h0R3JvdXAoU3RyaW5nJiwgSGlnaGxpZ2h0UmFuZ2VHcm91cCYpOwogICAg
IHZvaWQgaW5pdGlhbGl6ZU1hcExpa2UoRE9NTWFwQWRhcHRlciYpOwotCi0gICAgLy8gQmluZGlu
Z3Mgc3VwcG9ydC4KLSAgICBTdHJpbmcgbmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUp
IGNvbnN0OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE5hbWVkSXRlbShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IEhpZ2hsaWdodFJhbmdlR3JvdXAmIHZhbHVlKTsKLSAgICBib29sIGRlbGV0
ZU5hbWVkUHJvcGVydHkoY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICAKICAgICB2b2lkIHNldEZy
b21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJik7Ci0gICAgdm9p
ZCBjbGVhcigpIHsgfTsKLSAgICBib29sIHJlbW92ZShjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAg
ICB2b2lkIGNsZWFyKCk7CisgICAgYm9vbCByZW1vdmUoY29uc3QgU3RyaW5nJik7CisgICAgCisg
ICAgUmVmUHRyPEhpZ2hsaWdodFJhbmdlR3JvdXA+IGdldEdyb3VwRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5KTsKICAgICAKIHByaXZhdGU6CiAgICAgSGlnaGxpZ2h0TWFwKCkgPSBkZWZhdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFw
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwK
aW5kZXggMzZlNWI1NTcyMTZlYzc1Y2UzNWY3OTE0MTFhMTg4MzUzNzJkNmViZi4uZDg5N2E3ODI4
NWVlMGI1ODQyMmQyYjZlY2U3NjUxMGY2YTgzM2QyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCkBAIC0yOSw1ICsyOSw0IEBACiAg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRlcmZhY2UgSGlnaGxpZ2h0TWFwIHsK
ICAgICBtYXBsaWtlPERPTVN0cmluZywgSGlnaGxpZ2h0UmFuZ2VHcm91cD47Ci0gICAgW0NFUmVh
Y3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gc2V0dGVyIHZvaWQgKERPTVN0cmluZyBzdHlsZSwg
SGlnaGxpZ2h0UmFuZ2VHcm91cCBncm91cCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAppbmRleCA4NTZi
YTM4NjhlNjY4MTc2NGFlNjQzNTYyMjU4MDhjMmY3OGRmZjA0Li5kZDUzY2JiZWQyYTZmYjkyYmVm
YWI2NDdlZTg3YTNiYjFkYzVhZjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcApAQCAtMjYsMTUgKzI2LDE4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5o
IgogCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKKyNp
bmNsdWRlICJKU1N0YXRpY1JhbmdlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NTdHlsZURl
Y2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKICNpbmNsdWRlICJTdHlsZVBy
b3BlcnRpZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1IaWdobGlnaHRSYW5nZUdyb3Vw
OjpIaWdobGlnaHRSYW5nZUdyb3VwKFN0YXRpY1JhbmdlJiByYW5nZSkKK0hpZ2hsaWdodFJhbmdl
R3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXAoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQogewot
ICAgIGFkZFJhbmdlKHJhbmdlKTsKKyAgICBtX3Jhbmdlcy5hcHBlbmQoV1RGTW92ZShyYW5nZSkp
OwogfQogCiBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y3Jl
YXRlKFN0YXRpY1JhbmdlJiByYW5nZSkKQEAgLTQyLDMwICs0NSwzMCBAQCBSZWY8SGlnaGxpZ2h0
UmFuZ2VHcm91cD4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y3JlYXRlKFN0YXRpY1JhbmdlJiByYW5n
ZSkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKHJhbmdlKSk7
CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFJhbmdlKFN0
YXRpY1JhbmdlJiByYW5nZSkKK3ZvaWQgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6aW5pdGlhbGl6ZVNl
dExpa2UoRE9NU2V0QWRhcHRlciYgc2V0KQogewotICAgIFVOVVNFRF9QQVJBTShyYW5nZSk7Ci0K
LSAgICByZXR1cm4geyB9OworICAgIGZvciAoYXV0byYgcmFuZ2UgOiBtX3JhbmdlcykKKyAgICAg
ICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8U3RhdGljUmFuZ2U+PihyYW5nZSk7CiB9CiAKLUV4Y2Vw
dGlvbk9yPHZvaWQ+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZVJhbmdlKFN0YXRpY1Jhbmdl
JiByYW5nZSkKK2Jvb2wgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlRnJvbVNldExpa2UoY29u
c3QgU3RhdGljUmFuZ2UmIHJhbmdlKQogewotICAgIFVOVVNFRF9QQVJBTShyYW5nZSk7Ci0gICAg
Ci0gICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gbV9yYW5nZXMucmVtb3ZlRmlyc3RNYXRjaGlu
ZyhbJnJhbmdlXShjb25zdCBSZWY8U3RhdGljUmFuZ2U+JiBjdXJyZW50KSB7CisgICAgICAgIHJl
dHVybiBjdXJyZW50LmdldCgpID09IHJhbmdlOworICAgIH0pOwogfQogCi1IaWdobGlnaHRSYW5n
ZUdyb3VwOjpJdGVyYXRvcjo6SXRlcmF0b3IoSGlnaGxpZ2h0UmFuZ2VHcm91cCYgZ3JvdXApCi0g
ICAgOiBtX2dyb3VwKGdyb3VwKQordm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21T
ZXRMaWtlKCkKIHsKKyAgICBtX3Jhbmdlcy5jbGVhcigpOwogfQogCi1SZWZQdHI8U3RhdGljUmFu
Z2U+IEhpZ2hsaWdodFJhbmdlR3JvdXA6Okl0ZXJhdG9yOjpuZXh0KCkKK2Jvb2wgSGlnaGxpZ2h0
UmFuZ2VHcm91cDo6YWRkVG9TZXRMaWtlKFN0YXRpY1JhbmdlJiByYW5nZSkKIHsKLSAgICBpZiAo
bV9pbmRleCA9PSBtX2dyb3VwLT5yYW5nZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICByZXR1cm4gbV9ncm91cC0+cmFuZ2VzW21faW5kZXgrK10ucHRyKCk7CisgICAgaWYg
KG5vdEZvdW5kICE9IG1fcmFuZ2VzLmZpbmRNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8U3Rh
dGljUmFuZ2U+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50LmdldCgpID09IHJhbmdlOyB9KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fcmFuZ2VzLmFwcGVuZChtYWtlUmVmKHJhbmdl
KSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAppbmRleCBiOGJjOGUyZGUx
M2JhMjE0YzJkZTRlNzFjZTFiZmM4MDNhMTYzNzcyLi45NzI0NTA2M2Q1NmFmMWEyYjQ0ZTAxZTdh
MWE0OTFjMmMyYjhiN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCkBAIC0zMiwzMyArMzIsMjYgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIERPTVNl
dEFkYXB0ZXI7CiBjbGFzcyBTdGF0aWNSYW5nZTsKIGNsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbjsKIAogY2xhc3MgSGlnaGxpZ2h0UmFuZ2VHcm91cCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEhpZ2hsaWdodFJhbmdlR3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEhpZ2hs
aWdodFJhbmdlR3JvdXA+IGNyZWF0ZShTdGF0aWNSYW5nZSYpOwotCi0gICAgRXhjZXB0aW9uT3I8
dm9pZD4gYWRkUmFuZ2UoU3RhdGljUmFuZ2UmKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiByZW1v
dmVSYW5nZShTdGF0aWNSYW5nZSYpOwogICAgIAotICAgIFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+
PiByYW5nZXM7Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHls
ZSgpOworICAgIHZvaWQgY2xlYXJGcm9tU2V0TGlrZSgpOworICAgIGJvb2wgYWRkVG9TZXRMaWtl
KFN0YXRpY1JhbmdlJik7CisgICAgYm9vbCByZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNS
YW5nZSYpOworICAgIHZvaWQgaW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYpOwogICAg
IAotICAgIGNsYXNzIEl0ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IEl0
ZXJhdG9yKEhpZ2hsaWdodFJhbmdlR3JvdXAmKTsKLSAgICAgICAgUmVmUHRyPFN0YXRpY1Jhbmdl
PiBuZXh0KCk7Ci0gICAgICAgIAotICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZjxIaWdobGlnaHRS
YW5nZUdyb3VwPiBtX2dyb3VwOwotICAgICAgICBzaXplX3QgbV9pbmRleCB7IDAgfTsgLy8gRklY
TUU6IFRoZXJlIG5lZWRzIHRvIGJlIGEgbWVjaGFuaXNtIHRvIGhhbmRsZSB3aGVuIHJhbmdlcyBh
cmUgYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIEhpZ2hsaWdodFJhbmdl
R3JvdXAuCi0gICAgfTsKLSAgICBJdGVyYXRvciBjcmVhdGVJdGVyYXRvcigpIHsgcmV0dXJuIEl0
ZXJhdG9yKCp0aGlzKTsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiYgcmFu
Z2VzKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXM7IH0KKworICAgIC8vIEZJWE1FOiBBZGQgV0VC
Q09SRV9FWFBPUlQgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgc3R5bGUoKTsKICAgICAKIHByaXZhdGU6
Ci0gICAgSGlnaGxpZ2h0UmFuZ2VHcm91cChTdGF0aWNSYW5nZSYpOworICAgIFZlY3RvcjxSZWY8
U3RhdGljUmFuZ2U+PiBtX3JhbmdlczsgLy8gVE9ETzogdXNlIGEgSGFzaFNldCBpbnN0ZWFkIG9m
IGEgVmVjdG9yIDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4KKyAgICBleHBsaWNpdCBIaWdobGln
aHRSYW5nZUdyb3VwKFJlZjxTdGF0aWNSYW5nZT4mJik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRs
CmluZGV4IDFlYzIwZTkyM2VjZjU2MDhhYjljYzFjNzBmNzY5OWYyMDllOWQ0MzYuLjRmYzAwMTNk
MzQ1NmIzOTg3MzljYTZkMmIyYzY3NTExZTBiMTgxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCkBAIC0y
OCw2ICsyOCw2IEBACiAgICAgRW5hYmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksCiAgICAgSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZQogXSBpbnRlcmZhY2UgSGlnaGxpZ2h0UmFuZ2VHcm91cCB7
Ci0gICAgaXRlcmFibGU8U3RhdGljUmFuZ2U+OyAgLy8gRklYTUU6IHNob3VsZCBiZSBzZXRsaWtl
CisgICAgc2V0bGlrZTxTdGF0aWNSYW5nZT47CiAgICAgLy8gRklYTUU6IEFkZCByZWFkb25seSBh
dHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0YXRp
Y1JhbmdlLmNwcAppbmRleCAxOThhYTFhMjY5MDM0Mjg1N2RjODRmYzBkMWFhOGZmNWU3MTk2Yzdi
Li44MTM2ZGExOTMzMGEwMmNhOTUzNGRkNDBjYmYwM2FlZjVkYjkxNzlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdGF0aWNSYW5nZS5jcHAKQEAgLTgxLDQgKzgxLDkgQEAgYm9vbCBTdGF0aWNSYW5nZTo6Y29s
bGFwc2VkKCkgY29uc3QKICAgICByZXR1cm4gbV9zdGFydE9mZnNldCA9PSBtX2VuZE9mZnNldCAm
JiBtX3N0YXJ0Q29udGFpbmVyLnB0cigpID09IG1fZW5kQ29udGFpbmVyLnB0cigpOwogfQogCiti
b29sIFN0YXRpY1JhbmdlOjpvcGVyYXRvcj09KGNvbnN0IFN0YXRpY1JhbmdlJiBvdGhlcikgY29u
c3QKK3sKKyAgICByZXR1cm4gKG1fc3RhcnRPZmZzZXQgPT0gb3RoZXIuc3RhcnRPZmZzZXQoKSAm
JiBtX2VuZE9mZnNldCA9PSBvdGhlci5lbmRPZmZzZXQoKSAmJiBtX3N0YXJ0Q29udGFpbmVyLT5p
c0VxdWFsTm9kZShvdGhlci5zdGFydENvbnRhaW5lcigpKSAmJiBtX2VuZENvbnRhaW5lci0+aXNF
cXVhbE5vZGUob3RoZXIuZW5kQ29udGFpbmVyKCkpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1N0YXRpY1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RhdGlj
UmFuZ2UuaAppbmRleCBmNDhjOGQ0MGZiMjNmOTIyY2IxMjdlNmMxMGRjNmU1ZTU5MzdmNWJjLi5m
ODBkODVlNTI4NjhlYzU0MGFjNGZjM2E0MWI2ZjhiNWNhZGVkNmI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU3RhdGljUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3Rh
dGljUmFuZ2UuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgTm9kZSogc3RhcnRDb250
YWluZXIoKSBjb25zdDsKICAgICBOb2RlKiBlbmRDb250YWluZXIoKSBjb25zdDsKICAgICBib29s
IGNvbGxhcHNlZCgpIGNvbnN0OworICAgIAorICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdGF0
aWNSYW5nZSYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFN0YXRpY1JhbmdlKFJlZjxOb2RlPiYm
IHN0YXJ0Q29udGFpbmVyLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgUmVmPE5vZGU+JiYgZW5kQ29u
dGFpbmVyLCB1bnNpZ25lZCBlbmRPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUxYTUwNDExOTcyMDYzMDg5ZWJk
NDY0OGFhYmMzOGYzOTJjNzA3NDMuLjU5NzdlYmE4YWMxZDkwNTE1N2QzYTkwZGY2ZDI5MTZlYjYz
MWZlYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMi0wNiAgTWVnYW4gR2FyZG5lciAg
PG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGwgSGlnaGxpZ2h0UmFuZ2VH
cm91cCBhbmQgSGlnaGxpZ2h0TWFwIHdpdGggdmFsdWVzIGZyb20gSmF2YVNjcmlwdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogaGlnaGxpZ2h0L2hpZ2hs
aWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaGlnaGxp
Z2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEyLTA5ICBU
cnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgKHIyNTI4ODkpIHdl
YnJ0Yy9wZWVyY29ubmVjdGlvbi1wYWdlLWNhY2hlLmh0bWwgaXMgY3Jhc2hpbmcgb24gaU9TIERl
YnVnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQt
Z3JvdXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAt
YW5kLWdyb3VwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjEzMjE5YmIyZTlkY2ZmNWQxY2U3
M2Q3MzBkNzBmYWRjMTg5YWVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaGlnaGxp
Z2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBA
CitQQVNTIGhpZ2hsaWdodFJhbmdlR3JvdXAxLnNpemUgaXMgMQorUEFTUyBoaWdobGlnaHRSYW5n
ZUdyb3VwMi5zaXplIGlzIDIKK1BBU1MgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuc2l6ZSBpcyAzCitQ
QVNTIENTUy5oaWdobGlnaHRzLnNpemUgaXMgMworUEFTUyBDU1MuaGlnaGxpZ2h0cy5oYXMoImV4
YW1wbGUtaGlnaGxpZ2h0MSIpIGlzIHRydWUKK1BBU1MgQ1NTLmhpZ2hsaWdodHMuaGFzKCJleGFt
cGxlLWhpZ2hsaWdodDIiKSBpcyB0cnVlCitQQVNTIENTUy5oaWdobGlnaHRzLmhhcygiZXhhbXBs
ZS1oaWdobGlnaHQzIikgaXMgdHJ1ZQorUEFTUyBDU1MuaGlnaGxpZ2h0cy5nZXQoImV4YW1wbGUt
aGlnaGxpZ2h0MSIpLmVudHJpZXMoKS5uZXh0KCkudmFsdWVbMF0uc3RhcnRPZmZzZXQgaXMgMQor
UEFTUyBDU1MuaGlnaGxpZ2h0cy5nZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIpLmVudHJpZXMoKS5u
ZXh0KCkudmFsdWVbMF0uZW5kT2Zmc2V0IGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorT25lIHR3byB0aHJlZS4uLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwgYi9MYXlvdXRU
ZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YjRiZmFiMGFjZTM0YWExNWE1ZDQxODc3ODFiMDU1NjNkMTYxNWIwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwKQEAg
LTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZXhwZXJpbWVudGFsOkhpZ2hsaWdodEFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPGhlYWQ+CisgICAg
PHN0eWxlPgorICAgIDpyb290OjpoaWdobGlnaHQoZXhhbXBsZS1oaWdobGlnaHQxKSB7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAgICAgICAgY29sb3I6Ymx1ZTsKKyAgICB9
CisgICAgOnJvb3Q6OmhpZ2hsaWdodChleGFtcGxlLWhpZ2hsaWdodDIpIHsKKyAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogeWVsbG93OworICAgICAgICBjb2xvcjpibHVlOworICAgIH0KKyAgICA6
cm9vdDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0MykgeworICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB5ZWxsb3c7CisgICAgICAgIGNvbG9yOmJsdWU7CisgICAgfQorICAgIDwvc3R5bGU+
Cis8L2hlYWQ+CisgICAgPGJvZHk+PHNwYW4+T25lIDwvc3Bhbj48c3Bhbj50d28gPC9zcGFuPjxz
cGFuPnRocmVlLi4uPC9zcGFuPgorCisgICAgPHNjcmlwdD4KKyAgICAgICAgbGV0IGhpZ2hsaWdo
dFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5l
cjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpOworCisgICAgICAgIGxldCBoaWdobGln
aHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAyLCBlbmRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogM30pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFu
Z2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNl
dDogNX0pKTsKKworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxp
Z2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5i
b2R5LCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZz
ZXQ6IDh9KSk7CisgICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMTAsIGVuZENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAxMn0pKTsKKyAgICAgICAgaGlnaGxp
Z2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3Vt
ZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVu
ZE9mZnNldDogNn0pKTsKKyAgICAgICAgCisKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJl
eGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7CisgICAgICAgIENTUy5o
aWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIp
OworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hs
aWdodFJhbmdlR3JvdXAzKTsKKworICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0UmFuZ2VHcm91
cDEuc2l6ZSIsIjEiKTsKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodFJhbmdlR3JvdXAyLnNp
emUiLCIyIik7CisgICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3VwMy5zaXplIiwi
MyIpOworCisgICAgICAgIHNob3VsZEJlKCJDU1MuaGlnaGxpZ2h0cy5zaXplIiwiMyIpOworCisg
ICAgICAgIHNob3VsZEJlVHJ1ZSgiQ1NTLmhpZ2hsaWdodHMuaGFzKFwiZXhhbXBsZS1oaWdobGln
aHQxXCIpIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiQ1NTLmhpZ2hsaWdodHMuaGFzKFwiZXhh
bXBsZS1oaWdobGlnaHQyXCIpIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiQ1NTLmhpZ2hsaWdo
dHMuaGFzKFwiZXhhbXBsZS1oaWdobGlnaHQzXCIpIik7CisKKyAgICAgICAgc2hvdWxkQmUoIkNT
Uy5oaWdobGlnaHRzLmdldChcImV4YW1wbGUtaGlnaGxpZ2h0MVwiKS5lbnRyaWVzKCkubmV4dCgp
LnZhbHVlWzBdLnN0YXJ0T2Zmc2V0IiwiMSIpOworICAgICAgICBzaG91bGRCZSgiQ1NTLmhpZ2hs
aWdodHMuZ2V0KFwiZXhhbXBsZS1oaWdobGlnaHQxXCIpLmVudHJpZXMoKS5uZXh0KCkudmFsdWVb
MF0uZW5kT2Zmc2V0IiwiMiIpOworCisgICAgICAgIAorICAgIDwvc2NyaXB0PgorCisgICAgPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>