<?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>175271</bug_id>
          
          <creation_ts>2017-08-07 11:01:20 -0700</creation_ts>
          <short_desc>Resource Load Statistics: Clear web processes&apos; state on history removal</short_desc>
          <delta_ts>2017-08-08 10:18:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=175090</see_also>
          <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="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>tstapleton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1336039</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-08-07 11:01:20 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=175090 introduced state in the web process and that state needs to be cleared when the UI process&apos; statistics are cleared as part of history removal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336040</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-07 11:02:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/33756560&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336075</commentid>
    <comment_count>2</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-08-07 12:16:02 -0700</bug_when>
    <thetext>*** Bug 175266 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336114</commentid>
    <comment_count>3</comment_count>
      <attachid>317459</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-08-07 13:55:31 -0700</bug_when>
    <thetext>Created attachment 317459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336144</commentid>
    <comment_count>4</comment_count>
      <attachid>317459</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-07 14:36:26 -0700</bug_when>
    <thetext>Comment on attachment 317459
Patch

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

&gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:379
&gt; +        WTFLogAlways(&quot;ResourceLoadLog | About to call m_currentInvocation-&gt;didClearStatisticsThroughWebsiteDataRemoval().&quot;);

Should probably be removed.

&gt; LayoutTests/http/tests/loading/resourceLoadStatistics/user-interaction-reported-after-website-data-removal.html:39
&gt; +            testRunner.setStatisticsHasHadUserInteraction(topFrameOrigin, false);

Why is this here? Shouldn&apos;t clearing the data clear the user interaction too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336210</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-08-07 16:22:56 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; Comment on attachment 317459 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=317459&amp;action=review
&gt; 
&gt; &gt; Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:379
&gt; &gt; +        WTFLogAlways(&quot;ResourceLoadLog | About to call m_currentInvocation-&gt;didClearStatisticsThroughWebsiteDataRemoval().&quot;);
&gt; 
&gt; Should probably be removed.

Oops. Sure!

&gt; &gt; LayoutTests/http/tests/loading/resourceLoadStatistics/user-interaction-reported-after-website-data-removal.html:39
&gt; &gt; +            testRunner.setStatisticsHasHadUserInteraction(topFrameOrigin, false);
&gt; 
&gt; Why is this here? Shouldn&apos;t clearing the data clear the user interaction too?

True. I can remove it.

Rest is good?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336250</commentid>
    <comment_count>6</comment_count>
      <attachid>317459</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-07 16:52:56 -0700</bug_when>
    <thetext>Comment on attachment 317459
Patch

r=me if the test still passes after you drop the extra testRunner.setStatisticsHasHadUserInteraction() call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336262</commentid>
    <comment_count>7</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-08-07 16:59:09 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 317459 [details]
&gt; Patch
&gt; 
&gt; r=me if the test still passes after you drop the extra
&gt; testRunner.setStatisticsHasHadUserInteraction() call.

It does. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336267</commentid>
    <comment_count>8</comment_count>
      <attachid>317513</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2017-08-07 17:01:43 -0700</bug_when>
    <thetext>Created attachment 317513
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336526</commentid>
    <comment_count>9</comment_count>
      <attachid>317513</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-08 10:18:27 -0700</bug_when>
    <thetext>Comment on attachment 317513
Patch for landing

Clearing flags on attachment: 317513

Committed r220412: &lt;http://trac.webkit.org/changeset/220412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336527</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-08 10:18:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317459</attachid>
            <date>2017-08-07 13:55:31 -0700</date>
            <delta_ts>2017-08-07 17:01:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175271-20170807135530.patch</filename>
            <type>text/plain</type>
            <size>22915</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjAzNDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA4LTA3ICBKb2huIFdpbGFu
ZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlz
dGljczogQ2xlYXIgd2ViIHByb2Nlc3Nlcycgc3RhdGUgb24gaGlzdG9yeSByZW1vdmFsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUyNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzMzNzU2NTYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzUwOTAgaW50cm9kdWNlZCBzdGF0ZQorICAgICAgICBpbiB0aGUgd2ViIHByb2Nlc3Mg
YW5kIHRoYXQgc3RhdGUgbmVlZHMgdG8gYmUgY2xlYXJlZCB3aGVuIHRoZQorICAgICAgICBVSSBw
cm9jZXNzJyBzdGF0aXN0aWNzIGFyZSBjbGVhcmVkIGFzIHBhcnQgb2YgaGlzdG9yeSByZW1vdmFs
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpyZW1vdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xl
YXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKIDIw
MTctMDgtMDcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IENBTlZBU19QQVRIIGNvbXBpbGF0aW9uIGd1YXJkCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCShyZXZpc2lvbiAyMjAzMzQpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOTks
NiArMTA5OSwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRSZXNvdXJjZUxvYWRTdGF0CiAg
ICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZChlbmFibGVkKSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpCit7CisgICAgc2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpDbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSk7Cit9
CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50
KGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKQogewogICAgIG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0Vt
cHR5RG9jdW1lbnQuYWRkKHVybFNjaGVtZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgJKHJldmlzaW9uIDIyMDMzNCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4OCw2ICszODgsNyBA
QCBwdWJsaWM6CiAKICAgICBib29sIHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgeyBy
ZXR1cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBjbGVhclJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKTsKIAogICAgIGJvb2wgYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9y
aXR5KCkgY29uc3QgeyByZXR1cm4gbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHk7IH0K
ICAgICBib29sIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24oKSBjb25zdCB7IHJldHVy
biBtX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247IH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCShyZXZpc2lvbiAyMjAzMzQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIxLDYgKzgyMSw4
IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb24KICAgICAgICAgICAg
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lz
dGVudChtb2RpZmllZFNpbmNlLCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNob3Vs
ZEdyYW5kZmF0aGVyOjpObyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChtb2RpZmll
ZFNpbmNlLCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNob3VsZEdyYW5kZmF0aGVy
OjpZZXMpOworCisgICAgICAgIGNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vz
c2VzKCk7CiAgICAgfQogCiAgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHdlIGRvbid0IGhh
dmUgYW55IHBlbmRpbmcgY2FsbGJhY2tzLiBJZiBzbywgd2Ugd2FudCB0byBkaXNwYXRjaCB0aGUg
Y29tcGxldGlvbiBoYW5kbGVyIHJpZ2h0IGF3YXkuCkBAIC0xMDk5LDYgKzExMDEsOCBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uCiAgICAgICAgICAgICBtX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MtPnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8pOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNjaGVkdWxl
Q2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpTaG91bGRHcmFuZGZhdGhlcjo6WWVzKTsKKworICAgICAgICBjbGVhclJlc291cmNlTG9hZFN0
YXRpc3RpY3NJbldlYlByb2Nlc3NlcygpOwogICAgIH0KIAogICAgIC8vIFRoZXJlJ3MgYSBjaGFu
Y2UgdGhhdCB3ZSBkb24ndCBoYXZlIGFueSBwZW5kaW5nIGNhbGxiYWNrcy4gSWYgc28sIHdlIHdh
bnQgdG8gZGlzcGF0Y2ggdGhlIGNvbXBsZXRpb24gaGFuZGxlciByaWdodCBhd2F5LgpAQCAtMTMx
NSw2ICsxMzE5LDE1IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZW5hYmxlUmVzb3VyY2VMb2EK
ICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRy
dWUpOwogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0luV2ViUHJvY2Vzc2VzKCkKK3sKKyAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wg
OiBwcm9jZXNzUG9vbHMoKSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPmNsZWFyUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpOworfQorCiBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJz
aXRlRGF0YVN0b3JlOjpzdG9yYWdlUHJvY2Vzc1BhcmFtZXRlcnMoKQogewogICAgIHJlc29sdmVE
aXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyMjAz
MzQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAgcHVibGljOgogICAgIGJvb2wg
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOwogICAgIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSogcmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy5nZXQoKTsgfQorICAgIHZvaWQgY2xlYXJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoKTsKIAogICAgIHN0YXRpYyB2b2lkIGNsb25lU2Vzc2lv
bkRhdGEoV2ViUGFnZVByb3h5JiBzb3VyY2VQYWdlLCBXZWJQYWdlUHJveHkmIG5ld1BhZ2UpOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAy
MjAzMzQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE0NTEsNiArMTQ1MSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFJlc291
cmNlTG9hZFN0YXRpc3RpCiAgICAgV2ViQ29yZTo6U2V0dGluZ3M6OnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpCit7CisgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJl
ZCgpLmNsZWFyU3RhdGUoKTsKK30KKwogUmVmUHRyPEFQSTo6T2JqZWN0PiBXZWJQcm9jZXNzOjp0
cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKEFQSTo6T2JqZWN0KiBvYmplY3QpCiB7CiAgICAgc3Ry
dWN0IFRyYW5zZm9ybWVyIGZpbmFsIDogVXNlckRhdGE6OlRyYW5zZm9ybWVyIHsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMjIwMzM0KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjU1
LDYgKzI1NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBbHdheXNVc2VzQ29tcGxleFRleHRD
b2RlUGF0aChib29sKTsKICAgICB2b2lkIHNldFNob3VsZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCk7
CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sKTsKKyAgICB2
b2lkIGNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwogICAgIHZvaWQgdXNlclByZWZlcnJl
ZExhbmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKICAgICB2b2lk
IGZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5h
YmxlZCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyMjAzMzQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRBbHdheXNV
c2VzQ29tcGxleFRleHRDb2RlUGF0aChib29sIGFsd2F5c1VzZUNvbXBsZXhUZXh0KQogICAgIFNl
dFNob3VsZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCB1c2VGb250U21vb3RoaW5nKQogICAgIFNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQpOworICAgIENsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwogICAgIFVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcykKICAgICBGdWxs
S2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQp
CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIyMDM1MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDMxIEBACisyMDE3LTA4LTA3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogQ2xlYXIgd2ViIHByb2Nl
c3Nlcycgc3RhdGUgb24gaGlzdG9yeSByZW1vdmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUyNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMz
NzU2NTYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3QgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFzeW5jaHJvbm91cyB0ZXN0cyBvZiB3ZWJzaXRlIGRh
dGEKKyAgICAgICAgcmVtb3ZhbCBmb3IgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
OjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6
c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFs
Q2FsbGJhY2spOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdl
YnNpdGVEYXRhUmVtb3ZhbCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRD
bGVhclN0YXRpc3RpY3NUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6CisKIDIwMTct
MDgtMDcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENB
TlZBU19QQVRIIGNvbXBpbGF0aW9uIGd1YXJkCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjIwMzM0KQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNTMsNiArMjM1
MywxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJJbk1lCiB7CiB9CiAK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhclRocm91Z2hXZWJzaXRlRGF0YVJl
bW92YWwoKQoreworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzUmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZSgpCiB7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCShyZXZpc2lvbiAyMjAzMzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRTdGF0aXN0aWNzUHJ1bmVFbnRyaWVzRG93blRvKHVuc2lnbmVkKTsKICAg
ICB2b2lkIHN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKCk7CiAgICAg
dm9pZCBzdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZU1vZGlmaWVkU2lu
Y2VIb3Vycyh1bnNpZ25lZCk7CisgICAgdm9pZCBzdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0
ZURhdGFSZW1vdmFsKCk7CiAgICAgdm9pZCBzdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZSgpOwogCiAgICAgV0tBcnJheVJlZiBvcGVuUGFuZWxGaWxlVVJMcygpIGNvbnN0IHsgcmV0dXJu
IG1fb3BlblBhbmVsRmlsZVVSTHMuZ2V0KCk7IH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCShyZXZpc2lvbiAyMjAzMzQpCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0Miw2ICsx
MTQyLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmQKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVE
YXRhUmVtb3ZhbCIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zdGF0
aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKyAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlIikpIHsKICAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lz
dGVudFN0YXRlKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTIyNiw2ICsxMjMxLDEy
IEBAIHZvaWQgVGVzdEludm9jYXRpb246Om5vdGlmeURvd25sb2FkRG9uZSgKICAgICBXS1BhZ2VQ
b3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1h
aW5XZWJWaWV3KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOwogfQogCit2b2lkIFRl
c3RJbnZvY2F0aW9uOjpkaWRDbGVhclN0YXRpc3RpY3NUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFs
KCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxsRGlkQ2xlYXJTdGF0aXN0aWNzVGhy
b3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCIpKTsKKyAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0
ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2Uo
KSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOworfQorCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRS
ZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IkNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjayIpKTsKSW5kZXg6IFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgJKHJldmlzaW9uIDIyMDMzNCkKKysr
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNzEsNiArNzEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5vdGlmeURvd25sb2FkRG9uZSgp
OwogCisgICAgdm9pZCBkaWRDbGVhclN0YXRpc3RpY3NUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFs
KCk7CisKICAgICB2b2lkIGRpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscygpOwogICAgIAog
cHJpdmF0ZToKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCShyZXZpc2lvbiAyMjAzMzQpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQwLDYgKzI0MCwxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRS
ZWNlaXZlTWVzc2FnZVRvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNhbGxEaWRDbGVhclN0YXRpc3Rp
Y3NUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsIikpIHsKKyAgICAgICAgbV90ZXN0UnVubmVyLT5z
dGF0aXN0aWNzQ2FsbENsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbENhbGxiYWNrKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIkNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxs
YmFjayIpKSB7CiAgICAgICAgIG1fdGVzdFJ1bm5lci0+Y2FsbERpZFJlbW92ZUFsbFNlc3Npb25D
cmVkZW50aWFsc0NhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAkocmV2
aXNpb24gMjIwMzM0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQzLDYgKzY0Myw3IEBAIGVudW0gewog
ICAgIFN0YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrSUQsCiAgICAgU3RhdGlz
dGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrSUQsCiAgICAgU3RhdGlzdGljc0RpZFJ1blRl
bGVtZXRyeUNhbGxiYWNrSUQsCisgICAgU3RhdGlzdGljc0RpZENsZWFyVGhyb3VnaFdlYnNpdGVE
YXRhUmVtb3ZhbENhbGxiYWNrSUQsCiAgICAgRGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxz
Q2FsbGJhY2tJRCwKICAgICBGaXJzdFVJU2NyaXB0Q2FsbGJhY2tJRCA9IDEwMAogfTsKQEAgLTE1
NTAsNiArMTU1MSwxOSBAQCB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDbGVhckluTWVtb3J5
CiAgICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5n
bGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBu
dWxscHRyKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vi
c2l0ZURhdGFSZW1vdmFsKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgY2FjaGVUZXN0UnVu
bmVyQ2FsbGJhY2soU3RhdGlzdGljc0RpZENsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbENh
bGxiYWNrSUQsIGNhbGxiYWNrKTsKKyAgICAKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
bWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRp
c3RpY3NDbGVhclRocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwiKSk7CisgICAgV0tCdW5kbGVQb3N0
U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwg
bWVzc2FnZU5hbWUuZ2V0KCksIDAsIG51bGxwdHIpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnN0
YXRpc3RpY3NDYWxsQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsQ2FsbGJhY2soKQorewor
ICAgIGNhbGxUZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0RpZENsZWFyVGhyb3VnaFdlYnNp
dGVEYXRhUmVtb3ZhbENhbGxiYWNrSUQpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0
YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlIikpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHJldmlzaW9uIDIy
MDMzNCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNzksNiArMzc5LDggQEAgcHVibGljOgogICAgIHZvaWQg
c2V0U3RhdGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh1bnNpZ25lZCk7CiAgICAgdm9pZCBzdGF0
aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZSgpOwogICAgIHZvaWQgc3RhdGlz
dGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnModW5z
aWduZWQgaG91cnMpOworICAgIHZvaWQgc3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRh
UmVtb3ZhbChKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NDYWxsQ2xl
YXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsQ2FsbGJhY2soKTsKICAgICB2b2lkIHN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CiAKICAgICAvLyBPcGVuIHBhbmVsCkluZGV4OiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHJldmlzaW9uIDIyMDMzNCkKKysrIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTI3OSw2ICsyNzksNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAg
dm9pZCBzZXRTdGF0aXN0aWNzUHJ1bmVFbnRyaWVzRG93blRvKHVuc2lnbmVkIGxvbmcgZW50cmll
cyk7CiAgICAgdm9pZCBzdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZSgp
OwogICAgIHZvaWQgc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2Rp
ZmllZFNpbmNlSG91cnModW5zaWduZWQgbG9uZyBob3Vycyk7CisgICAgdm9pZCBzdGF0aXN0aWNz
Q2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9p
ZCBzdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOwogCiAgICAgLy8gT3BlbiBwYW5l
bApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRy
b2xsZXJDb2NvYS5tbQkocmV2aXNpb24gMjIwMzM0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNzEsNiAr
MzcxLDE3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhckluTWUKICAgICBb
Z2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91
cnM6aG91cnNdOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJUaHJv
dWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIGF1dG8g
dHlwZXMgPSBhZG9wdE5TKFtbTlNTZXQgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpfV0tXZWJzaXRl
RGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBuaWxdKTsKKyAgICBbZ2xvYmFsV2ViVmll
d0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczp0eXBlcy5n
ZXQoKSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVy
Ol4oKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiUmVzb3VyY2VMb2FkTG9nIHwgQWJvdXQgdG8g
Y2FsbCBtX2N1cnJlbnRJbnZvY2F0aW9uLT5kaWRDbGVhclN0YXRpc3RpY3NUaHJvdWdoV2Vic2l0
ZURhdGFSZW1vdmFsKCkuIik7CisgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZENsZWFy
U3RhdGlzdGljc1Rocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwoKTsKKyAgICB9XTsKKyNlbmRpZgor
fQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZSgpCiB7CiAgICAgW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUg
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlXTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIyMDMzNCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA4LTA3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJA
YXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogQ2xlYXIgd2Vi
IHByb2Nlc3Nlcycgc3RhdGUgb24gaGlzdG9yeSByZW1vdmFsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUyNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMzNzU2NTYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92
YWwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAgICAgdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRl
LWRhdGEtcmVtb3ZhbC5odG1sIG1hcmtlZCBhcyBbIFBhc3MgXS4KKwogMjAxNy0wOC0wNyAgTXMy
Z2VyICA8TXMyZ2VyQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG9ic29sZXRlIGZhaWx1
cmUgZXhwZWN0YXRpb25zIGZvciB3cHQgYnJvd3NlcnMgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1v
dmFsLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVk
LWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIyIEBACittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZQorbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2Fk
RXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK1Rlc3Rz
IHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwg
c2luY2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBp
cyB0b3BGcmFtZU9yaWdpbgorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJ
bnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQ
QVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1l
T3JpZ2luKSBpcyB0cnVlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN1YkZyYW1lT3JpZ2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BB
U1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVP
cmlnaW4pIGlzIHRydWUKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVudApJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
dXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRh
LXJlbW92YWwuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
YWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFm
dGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlvbiBpcyByZXBvcnRlZCBhZnRlciBoaXN0
b3J5IHJlbW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwgc3RhdGlzdGljcyBoYXZlIGJlZW4gcmVz
ZXQuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0b3BGcmFtZU9y
aWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGNvbnN0IHN1YkZyYW1lT3JpZ2lu
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElkLCBjYWxsYmFjaykgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVu
dC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50
ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJzdElu
dGVyYWN0aW9uKCkgeworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hv
dWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24o
c3ViRnJhbWVPcmlnaW4pIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQi
LCBjbGVhcldlYnNpdGVEYXRhKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcldlYnNpdGVE
YXRhKCkgeworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZh
bHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFt
ZU9yaWdpbikiKTsKKworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2lu
LCBmYWxzZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NDbGVhclRocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoc2Vjb25kSW50ZXJhY3Rpb24pOworICAgICAgICB9CisgICAgfQor
CisgICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlRmFs
c2UoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1l
T3JpZ2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNo
VGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2hv
dWxkQmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0
b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgb25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50
LmxvY2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgIGZpcnN0SW50
ZXJhY3Rpb24oKTsKKyAgICB9OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhp
cyBpcyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjIwMzM0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC03MzEsNiArNzMx
LDcgQEAgd2Via2l0Lm9yZy9iLzE3MjM5NyBbIFNpZXJyYSBEZWJ1ZyBdIGFuaQogIyBNb3ZlIHRv
IGdlbmVyYWwgd2syIGV4cGVjdGF0aW9ucyBvbmNlIHdlYmtpdC5vcmcvYi8xNzUxNzAgaXMgcmVz
b2x2ZWQuCiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWlu
dGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUuaHRtbCBbIFBhc3MgXQogaHR0cC90
ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5
LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLmh0bWwgWyBQYXNzIF0K
K2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbCBbIFBhc3MgXQogCiB3
ZWJraXQub3JnL2IvMTczODYxIFsgUmVsZWFzZSBdIGh0dHAvdGVzdHMvd2VicnRjL2ZpbHRlcmlu
Zy1pY2UtY2FuZGlkYXRlLXNhbWUtb3JpZ2luLWZyYW1lLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQog
d2Via2l0Lm9yZy9iLzE3Mzg2MSBbIFJlbGVhc2UgXSBodHRwL3Rlc3RzL3dlYnJ0Yy9maWx0ZXJp
bmctaWNlLWNhbmRpZGF0ZS1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbCBbIFBhc3MgVGltZW91dCBd
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317513</attachid>
            <date>2017-08-07 17:01:43 -0700</date>
            <delta_ts>2017-08-08 10:18:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-175271-20170807170142.patch</filename>
            <type>text/plain</type>
            <size>22684</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjAzNDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA4LTA3ICBKb2huIFdpbGFu
ZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlz
dGljczogQ2xlYXIgd2ViIHByb2Nlc3Nlcycgc3RhdGUgb24gaGlzdG9yeSByZW1vdmFsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUyNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzMzNzU2NTYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlz
IER1bWV6LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzUwOTAgaW50cm9kdWNlZCBzdGF0ZQorICAgICAgICBpbiB0aGUgd2ViIHByb2Nlc3MgYW5k
IHRoYXQgc3RhdGUgbmVlZHMgdG8gYmUgY2xlYXJlZCB3aGVuIHRoZQorICAgICAgICBVSSBwcm9j
ZXNzJyBzdGF0aXN0aWNzIGFyZSBjbGVhcmVkIGFzIHBhcnQgb2YgaGlzdG9yeSByZW1vdmFsLgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpyZW1vdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
Y2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKIDIwMTct
MDgtMDcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENB
TlZBU19QQVRIIGNvbXBpbGF0aW9uIGd1YXJkCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCShyZXZpc2lvbiAyMjAzMzQpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOTksNiAr
MTA5OSwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRSZXNvdXJjZUxvYWRTdGF0CiAgICAg
c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZChlbmFibGVkKSk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNs
ZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpCit7CisgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpDbGVhclJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSk7Cit9CisK
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KGNv
bnN0IFN0cmluZyYgdXJsU2NoZW1lKQogewogICAgIG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0VtcHR5
RG9jdW1lbnQuYWRkKHVybFNjaGVtZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgJKHJldmlzaW9uIDIyMDMzNCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4OCw2ICszODgsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgeyByZXR1
cm4gbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBjbGVhclJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKTsKIAogICAgIGJvb2wgYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHk7IH0KICAg
ICBib29sIHNob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24oKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb247IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CShyZXZpc2lvbiAyMjAzMzQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIxLDYgKzgyMSw4IEBA
IHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb24KICAgICAgICAgICAgIG1f
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVu
dChtb2RpZmllZFNpbmNlLCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNob3VsZEdy
YW5kZmF0aGVyOjpObyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChtb2RpZmllZFNp
bmNlLCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNob3VsZEdyYW5kZmF0aGVyOjpZ
ZXMpOworCisgICAgICAgIGNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vzc2Vz
KCk7CiAgICAgfQogCiAgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHdlIGRvbid0IGhhdmUg
YW55IHBlbmRpbmcgY2FsbGJhY2tzLiBJZiBzbywgd2Ugd2FudCB0byBkaXNwYXRjaCB0aGUgY29t
cGxldGlvbiBoYW5kbGVyIHJpZ2h0IGF3YXkuCkBAIC0xMDk5LDYgKzExMDEsOCBAQCB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uCiAgICAgICAgICAgICBtX3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MtPnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTaG91bGRHcmFuZGZhdGhlcjo6Tm8pOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNjaGVkdWxlQ2xl
YXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpT
aG91bGRHcmFuZGZhdGhlcjo6WWVzKTsKKworICAgICAgICBjbGVhclJlc291cmNlTG9hZFN0YXRp
c3RpY3NJbldlYlByb2Nlc3NlcygpOwogICAgIH0KIAogICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2Ug
dGhhdCB3ZSBkb24ndCBoYXZlIGFueSBwZW5kaW5nIGNhbGxiYWNrcy4gSWYgc28sIHdlIHdhbnQg
dG8gZGlzcGF0Y2ggdGhlIGNvbXBsZXRpb24gaGFuZGxlciByaWdodCBhd2F5LgpAQCAtMTMxNSw2
ICsxMzE5LDE1IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZW5hYmxlUmVzb3VyY2VMb2EKICAg
ICAgICAgcHJvY2Vzc1Bvb2wtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUp
OwogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0luV2ViUHJvY2Vzc2VzKCkKK3sKKyAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBw
cm9jZXNzUG9vbHMoKSkKKyAgICAgICAgcHJvY2Vzc1Bvb2wtPmNsZWFyUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpOworfQorCiBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRl
RGF0YVN0b3JlOjpzdG9yYWdlUHJvY2Vzc1BhcmFtZXRlcnMoKQogewogICAgIHJlc29sdmVEaXJl
Y3Rvcmllc0lmTmVjZXNzYXJ5KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyMjAzMzQp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTkyLDYgKzkyLDcgQEAgcHVibGljOgogICAgIGJvb2wgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wpOwogICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZSogcmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy5nZXQoKTsgfQorICAgIHZvaWQgY2xlYXJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzSW5XZWJQcm9jZXNzZXMoKTsKIAogICAgIHN0YXRpYyB2b2lkIGNsb25lU2Vzc2lvbkRh
dGEoV2ViUGFnZVByb3h5JiBzb3VyY2VQYWdlLCBXZWJQYWdlUHJveHkmIG5ld1BhZ2UpOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyMjAz
MzQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0NTEsNiArMTQ1MSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFJlc291cmNl
TG9hZFN0YXRpc3RpCiAgICAgV2ViQ29yZTo6U2V0dGluZ3M6OnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpCit7CisgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgp
LmNsZWFyU3RhdGUoKTsKK30KKwogUmVmUHRyPEFQSTo6T2JqZWN0PiBXZWJQcm9jZXNzOjp0cmFu
c2Zvcm1IYW5kbGVzVG9PYmplY3RzKEFQSTo6T2JqZWN0KiBvYmplY3QpCiB7CiAgICAgc3RydWN0
IFRyYW5zZm9ybWVyIGZpbmFsIDogVXNlckRhdGE6OlRyYW5zZm9ybWVyIHsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMjIwMzM0KQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjU1LDYg
KzI1NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2Rl
UGF0aChib29sKTsKICAgICB2b2lkIHNldFNob3VsZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCk7CiAg
ICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChib29sKTsKKyAgICB2b2lk
IGNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwogICAgIHZvaWQgdXNlclByZWZlcnJlZExh
bmd1YWdlc0NoYW5nZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBjb25zdDsKICAgICB2b2lkIGZ1
bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxl
ZCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCShyZXZpc2lvbiAyMjAzMzQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRBbHdheXNVc2Vz
Q29tcGxleFRleHRDb2RlUGF0aChib29sIGFsd2F5c1VzZUNvbXBsZXhUZXh0KQogICAgIFNldFNo
b3VsZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCB1c2VGb250U21vb3RoaW5nKQogICAgIFNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGJvb2wgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQpOworICAgIENsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwogICAgIFVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNDaGFuZ2VkKFZlY3RvcjxTdHJpbmc+IGxhbmd1YWdlcykKICAgICBGdWxsS2V5
Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAK
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMDM1MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDE3LTA4LTA3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogQ2xlYXIgd2ViIHByb2Nlc3Nl
cycgc3RhdGUgb24gaGlzdG9yeSByZW1vdmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUyNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNzU2
NTYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFRlc3Qg
aW5mcmFzdHJ1Y3R1cmUgZm9yIGFzeW5jaHJvbm91cyB0ZXN0cyBvZiB3ZWJzaXRlIGRhdGEKKyAg
ICAgICAgcmVtb3ZhbCBmb3IgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpkaWRS
ZWNlaXZlTWVzc2FnZVRvUGFnZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c3RhdGlz
dGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnN0YXRpc3RpY3NDYWxsQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsQ2FsbGJh
Y2spOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVE
YXRhUmVtb3ZhbCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRDbGVhclN0
YXRpc3RpY3NUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
c3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbCk6CisKIDIwMTctMDgtMDcg
IEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIENBTlZBU19Q
QVRIIGNvbXBpbGF0aW9uIGd1YXJkCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAkocmV2aXNpb24gMjIwMzM0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNTMsNiArMjM1MywxMCBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJJbk1lCiB7CiB9CiAKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhclRocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwo
KQoreworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZSgpCiB7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCShyZXZpc2lvbiAyMjAzMzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRTdGF0aXN0aWNzUHJ1bmVFbnRyaWVzRG93blRvKHVuc2lnbmVkKTsKICAgICB2b2lk
IHN0YXRpc3RpY3NDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudFN0b3JlKCk7CiAgICAgdm9pZCBz
dGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZU1vZGlmaWVkU2luY2VIb3Vy
cyh1bnNpZ25lZCk7CisgICAgdm9pZCBzdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFS
ZW1vdmFsKCk7CiAgICAgdm9pZCBzdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOwog
CiAgICAgV0tBcnJheVJlZiBvcGVuUGFuZWxGaWxlVVJMcygpIGNvbnN0IHsgcmV0dXJuIG1fb3Bl
blBhbmVsRmlsZVVSTHMuZ2V0KCk7IH0KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCShyZXZpc2lvbiAyMjAzMzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0Miw2ICsxMTQyLDEx
IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmQKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgfQogICAgIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKG1lc3NhZ2VOYW1lLCAiU3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVt
b3ZhbCIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zdGF0aXN0aWNz
Q2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKyAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlIikpIHsKICAgICAgICAg
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnN0YXRpc3RpY3NSZXNldFRvQ29uc2lzdGVudFN0
YXRlKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTIyNiw2ICsxMjMxLDEyIEBAIHZv
aWQgVGVzdEludm9jYXRpb246Om5vdGlmeURvd25sb2FkRG9uZSgKICAgICBXS1BhZ2VQb3N0TWVz
c2FnZVRvSW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJW
aWV3KCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIDApOwogfQogCit2b2lkIFRlc3RJbnZv
Y2F0aW9uOjpkaWRDbGVhclN0YXRpc3RpY3NUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCkKK3sK
KyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJDYWxsRGlkQ2xlYXJTdGF0aXN0aWNzVGhyb3VnaFdl
YnNpdGVEYXRhUmVtb3ZhbCIpKTsKKyAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5k
bGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgbWVz
c2FnZU5hbWUuZ2V0KCksIDApOworfQorCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZW1vdmVB
bGxTZXNzaW9uQ3JlZGVudGlhbHMoKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBt
ZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkNhbGxE
aWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjayIpKTsKSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgJKHJldmlzaW9uIDIyMDMzNCkKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzEs
NiArNzEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG5vdGlmeURvd25sb2FkRG9uZSgpOwogCisg
ICAgdm9pZCBkaWRDbGVhclN0YXRpc3RpY3NUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKCk7CisK
ICAgICB2b2lkIGRpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50aWFscygpOwogICAgIAogcHJpdmF0
ZToKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCShyZXZpc2lvbiAyMjAzMzQpCisrKyBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQwLDYgKzI0MCwxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZl
TWVzc2FnZVRvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkNhbGxEaWRDbGVhclN0YXRpc3RpY3NUaHJv
dWdoV2Vic2l0ZURhdGFSZW1vdmFsIikpIHsKKyAgICAgICAgbV90ZXN0UnVubmVyLT5zdGF0aXN0
aWNzQ2FsbENsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbENhbGxiYWNrKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIkNhbGxEaWRSZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHNDYWxsYmFjayIp
KSB7CiAgICAgICAgIG1fdGVzdFJ1bm5lci0+Y2FsbERpZFJlbW92ZUFsbFNlc3Npb25DcmVkZW50
aWFsc0NhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24g
MjIwMzM0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQzLDYgKzY0Myw3IEBAIGVudW0gewogICAgIFN0
YXRpc3RpY3NEaWRNb2RpZnlEYXRhUmVjb3Jkc0NhbGxiYWNrSUQsCiAgICAgU3RhdGlzdGljc0Rp
ZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNrSUQsCiAgICAgU3RhdGlzdGljc0RpZFJ1blRlbGVtZXRy
eUNhbGxiYWNrSUQsCisgICAgU3RhdGlzdGljc0RpZENsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVt
b3ZhbENhbGxiYWNrSUQsCiAgICAgRGlkUmVtb3ZlQWxsU2Vzc2lvbkNyZWRlbnRpYWxzQ2FsbGJh
Y2tJRCwKICAgICBGaXJzdFVJU2NyaXB0Q2FsbGJhY2tJRCA9IDEwMAogfTsKQEAgLTE1NTAsNiAr
MTU1MSwxOSBAQCB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDbGVhckluTWVtb3J5CiAgICAg
V0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRy
KTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vic2l0ZURh
dGFSZW1vdmFsKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgY2FjaGVUZXN0UnVubmVyQ2Fs
bGJhY2soU3RhdGlzdGljc0RpZENsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbENhbGxiYWNr
SUQsIGNhbGxiYWNrKTsKKyAgICAKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2Fn
ZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRpc3RpY3ND
bGVhclRocm91Z2hXZWJzaXRlRGF0YVJlbW92YWwiKSk7CisgICAgV0tCdW5kbGVQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIDAsIG51bGxwdHIpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3Rp
Y3NDYWxsQ2xlYXJUaHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsQ2FsbGJhY2soKQoreworICAgIGNh
bGxUZXN0UnVubmVyQ2FsbGJhY2soU3RhdGlzdGljc0RpZENsZWFyVGhyb3VnaFdlYnNpdGVEYXRh
UmVtb3ZhbENhbGxiYWNrSUQpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NSZXNl
dFRvQ29uc2lzdGVudFN0YXRlKCkKIHsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVz
c2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlIikpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHJldmlzaW9uIDIyMDMzNCkK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNzksNiArMzc5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3Rh
dGlzdGljc1BydW5lRW50cmllc0Rvd25Ubyh1bnNpZ25lZCk7CiAgICAgdm9pZCBzdGF0aXN0aWNz
Q2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZSgpOwogICAgIHZvaWQgc3RhdGlzdGljc0Ns
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnModW5zaWduZWQg
aG91cnMpOworICAgIHZvaWQgc3RhdGlzdGljc0NsZWFyVGhyb3VnaFdlYnNpdGVEYXRhUmVtb3Zh
bChKU1ZhbHVlUmVmIGNhbGxiYWNrKTsKKyAgICB2b2lkIHN0YXRpc3RpY3NDYWxsQ2xlYXJUaHJv
dWdoV2Vic2l0ZURhdGFSZW1vdmFsQ2FsbGJhY2soKTsKICAgICB2b2lkIHN0YXRpc3RpY3NSZXNl
dFRvQ29uc2lzdGVudFN0YXRlKCk7CiAKICAgICAvLyBPcGVuIHBhbmVsCkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwJKHJldmlzaW9uIDIyMDMzNCkKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI3OSw2ICsyNzksNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBz
ZXRTdGF0aXN0aWNzUHJ1bmVFbnRyaWVzRG93blRvKHVuc2lnbmVkIGxvbmcgZW50cmllcyk7CiAg
ICAgdm9pZCBzdGF0aXN0aWNzQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnRTdG9yZSgpOwogICAg
IHZvaWQgc3RhdGlzdGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNp
bmNlSG91cnModW5zaWduZWQgbG9uZyBob3Vycyk7CisgICAgdm9pZCBzdGF0aXN0aWNzQ2xlYXJU
aHJvdWdoV2Vic2l0ZURhdGFSZW1vdmFsKG9iamVjdCBjYWxsYmFjayk7CiAgICAgdm9pZCBzdGF0
aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOwogCiAgICAgLy8gT3BlbiBwYW5lbApJbmRl
eDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJD
b2NvYS5tbQkocmV2aXNpb24gMjIwMzM0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNzEsNiArMzcxLDE2
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnN0YXRpc3RpY3NDbGVhckluTWUKICAgICBbZ2xvYmFs
V2ViVmlld0NvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSBfcmVzb3VyY2VMb2FkU3RhdGlz
dGljc0NsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50U3RvcmVNb2RpZmllZFNpbmNlSG91cnM6aG91
cnNdOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzdGF0aXN0aWNzQ2xlYXJUaHJvdWdoV2Vi
c2l0ZURhdGFSZW1vdmFsKCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIGF1dG8gdHlwZXMg
PSBhZG9wdE5TKFtbTlNTZXQgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpfV0tXZWJzaXRlRGF0YVR5
cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBuaWxdKTsKKyAgICBbZ2xvYmFsV2ViVmlld0NvbmZp
Z3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczp0eXBlcy5nZXQoKSBt
b2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7
CisgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZENsZWFyU3RhdGlzdGljc1Rocm91Z2hX
ZWJzaXRlRGF0YVJlbW92YWwoKTsKKyAgICB9XTsKKyNlbmRpZgorfQorCiB2b2lkIFRlc3RDb250
cm9sbGVyOjpzdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCiB7CiAgICAgW2dsb2Jh
bFdlYlZpZXdDb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUgX3Jlc291cmNlTG9hZFN0YXRp
c3RpY3NSZXNldFRvQ29uc2lzdGVudFN0YXRlXTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDMzNCkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE3LTA4LTA3ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogQ2xlYXIgd2ViIHByb2Nlc3Nlcycgc3RhdGUg
b24gaGlzdG9yeSByZW1vdmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzUyNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNzU2NTYwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICogaHR0cC90ZXN0cy9s
b2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1h
ZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rp
b24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAgICAgdXNl
ci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sIG1h
cmtlZCBhcyBbIFBhc3MgXS4KKwogMjAxNy0wOC0wNyAgTXMyZ2VyICA8TXMyZ2VyQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIG9ic29sZXRlIGZhaWx1cmUgZXhwZWN0YXRpb25zIGZvciB3
cHQgYnJvd3NlcnMgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdl
YnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVyYWN0
aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1vdmFsLWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1y
ZW1vdmFsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACittYWlu
IGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRp
ZENvbW1pdExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4g
ZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK1Rlc3RzIHRoYXQgdXNlciBpbnRlcmFjdGlv
biBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2luY2UgdGhhdCBtZWFucyBhbGwg
c3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiBpcyB0b3BGcmFtZU9yaWdpbgorUEFT
UyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BGcmFtZU9y
aWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIGlzIGZhbHNlCitQQVNTIHRlc3RSdW5uZXIuaXNTdGF0
aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3JpZ2luKSBpcyB0cnVlCitQQVNT
IHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN1YkZyYW1lT3Jp
Z2luKSBpcyBmYWxzZQorUEFTUyB0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbih0b3BGcmFtZU9yaWdpbikgaXMgZmFsc2UKK1BBU1MgdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odG9wRnJhbWVPcmlnaW4pIGlzIHRydWUKK1BBU1Mg
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmln
aW4pIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1RoaXMgaXMgdGhlIHRlc3QgZWxlbWVudApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBv
cnRlZC1hZnRlci13ZWJzaXRlLWRhdGEtcmVtb3ZhbC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24tcmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yZW1v
dmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgdXNl
ciBpbnRlcmFjdGlvbiBpcyByZXBvcnRlZCBhZnRlciBoaXN0b3J5IHJlbW92YWwgc2luY2UgdGhh
dCBtZWFucyBhbGwgc3RhdGlzdGljcyBoYXZlIGJlZW4gcmVzZXQuIik7CisgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICBjb25zdCB0b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiOworICAgIGNvbnN0IHN1YkZyYW1lT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCI7CisKKyAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkLCBjYWxsYmFj
aykgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJZCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRU
b3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRl
QXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4i
KTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaXJzdEludGVyYWN0aW9uKCkgeworICAgICAg
ICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbih0b3BGcmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5l
ci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7Cisg
ICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGVzdEVsZW1lbnQiLCBjbGVhcldlYnNpdGVEYXRhKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhcldlYnNpdGVEYXRhKCkgeworICAgICAgICBzaG91
bGRCZVRydWUoInRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRv
cEZyYW1lT3JpZ2luKSIpOworICAgICAgICBzaG91bGRCZUZhbHNlKCJ0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdWJGcmFtZU9yaWdpbikiKTsKKworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc0NsZWFy
VGhyb3VnaFdlYnNpdGVEYXRhUmVtb3ZhbChzZWNvbmRJbnRlcmFjdGlvbik7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gc2Vjb25kSW50ZXJhY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlRmFsc2Uo
InRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRvcEZyYW1lT3Jp
Z2luKSIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRlc3RFbGVtZW50IiwgZmluaXNoVGVz
dCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgc2hvdWxk
QmVUcnVlKCJ0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbih0b3BG
cmFtZU9yaWdpbikiKTsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgidGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3ViRnJhbWVPcmlnaW4pIik7CisKKyAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgfQorCisgICAgb25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CisKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50Lmxv
Y2F0aW9uLm9yaWdpbiIsICJ0b3BGcmFtZU9yaWdpbiIpOworCisgICAgICAgIGZpcnN0SW50ZXJh
Y3Rpb24oKTsKKyAgICB9OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJ0ZXN0RWxlbWVudCI+VGhpcyBp
cyB0aGUgdGVzdCBlbGVtZW50PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjIwMzM0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC03MzEsNiArNzMxLDcg
QEAgd2Via2l0Lm9yZy9iLzE3MjM5NyBbIFNpZXJyYSBEZWJ1ZyBdIGFuaQogIyBNb3ZlIHRvIGdl
bmVyYWwgd2syIGV4cGVjdGF0aW9ucyBvbmNlIHdlYmtpdC5vcmcvYi8xNzUxNzAgaXMgcmVzb2x2
ZWQuCiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy91c2VyLWludGVy
YWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0
cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1vbmx5LXJl
cG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1lLmh0bWwgWyBQYXNzIF0KK2h0
dHAvdGVzdHMvbG9hZGluZy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
cmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbCBbIFBhc3MgXQogCiB3ZWJr
aXQub3JnL2IvMTczODYxIFsgUmVsZWFzZSBdIGh0dHAvdGVzdHMvd2VicnRjL2ZpbHRlcmluZy1p
Y2UtY2FuZGlkYXRlLXNhbWUtb3JpZ2luLWZyYW1lLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzE3Mzg2MSBbIFJlbGVhc2UgXSBodHRwL3Rlc3RzL3dlYnJ0Yy9maWx0ZXJpbmct
aWNlLWNhbmRpZGF0ZS1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbCBbIFBhc3MgVGltZW91dCBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>