<?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>164662</bug_id>
          
          <creation_ts>2016-11-11 16:00:27 -0800</creation_ts>
          <short_desc>Disallow loads using HTTP 0.9 at the ResourceHandle/NetworkDataTask level</short_desc>
          <delta_ts>2016-11-15 08:41:11 -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>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=82714</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1250472</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-11-11 16:00:27 -0800</bug_when>
    <thetext>Currently we disallow HTTP 0.9 loads at the ResourceLoader level. But this allows loads using HTTP 0.9 via other loaders (e.g. FrameLoader). We should disallow HTTP 0.9 loads at ResourceHandle/NetworkLoad level to prevent such circumvention.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250499</commentid>
    <comment_count>1</comment_count>
      <attachid>294563</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-11-11 16:33:21 -0800</bug_when>
    <thetext>Created attachment 294563
Patch and layout test

I am not a loader/ResourceHandle/NetworkLoad expert. I am open to suggestions on the approach of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250509</commentid>
    <comment_count>2</comment_count>
      <attachid>294563</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-11 16:41:18 -0800</bug_when>
    <thetext>Comment on attachment 294563
Patch and layout test

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

Why do we want to move this to the NetworkProcess?  Do we care about WebSockets here?

&gt; Source/WebCore/platform/network/ResourceHandle.cpp:153
&gt; +void ResourceHandle::didReceiveResponse(ResourceResponse&amp;&amp; response)

If we do something with ResourceHandle, we should do it with NetworkDataTask, too.  I&apos;m not sure we should do this here, though.

&gt; LayoutTests/platform/wk2/TestExpectations:551
&gt; +# Internals.registerDefaultPortForProtocol() does not affect NetworkProcess

We shouldn&apos;t expand this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250510</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-11-11 16:43:57 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 294563 [details]
&gt; Patch and layout test
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=294563&amp;action=review
&gt; 
&gt; Why do we want to move this to the NetworkProcess?  Do we care about
&gt; WebSockets here?

I believe we already have been blocking WebSockets that use HTTP 0.9 (at least in soup ports). I have seen several websites broken as a result, but I don&apos;t remember any off the top of my head. But I might be remembering wrongly; maybe they used HTTP 1.0. I wish I could remember which websites were affected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250601</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-11 21:29:40 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Comment on attachment 294563 [details]
&gt; &gt; Patch and layout test
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=294563&amp;action=review
&gt; &gt; 
&gt; &gt; Why do we want to move this to the NetworkProcess?  Do we care about
&gt; &gt; WebSockets here?
&gt; 
&gt; I believe we already have been blocking WebSockets that use HTTP 0.9 (at
&gt; least in soup ports). I have seen several websites broken as a result, but I
&gt; don&apos;t remember any off the top of my head. But I might be remembering
&gt; wrongly; maybe they used HTTP 1.0. I wish I could remember which websites
&gt; were affected.

It is not only okay to break legacy websites that use WebSockets over obsolete comm channels - It is encouraged!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250602</commentid>
    <comment_count>5</comment_count>
      <attachid>294563</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-11 21:31:31 -0800</bug_when>
    <thetext>Comment on attachment 294563
Patch and layout test

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

&gt;&gt; Source/WebCore/platform/network/ResourceHandle.cpp:153
&gt;&gt; +void ResourceHandle::didReceiveResponse(ResourceResponse&amp;&amp; response)
&gt; 
&gt; If we do something with ResourceHandle, we should do it with NetworkDataTask, too.  I&apos;m not sure we should do this here, though.

Yes: The NetworkLoad parts of this should be NetworkDataTask.

Sorry for telling you the wrong one in person, Dan.

But as for Alex&apos;s other point; Yes, doing this at the lowest level of the networking abstractions *is* where we should do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250994</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-11-14 09:35:11 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Why do we want to move this to the NetworkProcess? 

We want to do this blocking of HTTP 0.9 at the lowest network abstraction level to to prevent circumvention.

&gt; Do we care about WebSockets here?
&gt; 

We do not allow an HTTP 0.9 response for the WebSocket handshake by &lt;http://trac.webkit.org/browser/trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp?rev=208601#L481&gt; and &lt;http://trac.webkit.org/browser/trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp?rev=208601#L389&gt;.

&gt; &gt; Source/WebCore/platform/network/ResourceHandle.cpp:153
&gt; &gt; +void ResourceHandle::didReceiveResponse(ResourceResponse&amp;&amp; response)
&gt; 
&gt; If we do something with ResourceHandle, we should do it with
&gt; NetworkDataTask, too. [...]
&gt; 

You&apos;re right!

&gt; &gt; LayoutTests/platform/wk2/TestExpectations:551
&gt; &gt; +# Internals.registerDefaultPortForProtocol() does not affect NetworkProcess
&gt; 
&gt; We shouldn&apos;t expand this.

I will update the comment to emphasize that we should remove this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1250995</commentid>
    <comment_count>7</comment_count>
      <attachid>294706</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-11-14 09:35:55 -0800</bug_when>
    <thetext>Created attachment 294706
Patch and layout tests

Updated patch based on feedback from Alex Christensen and Brady Eidson.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251026</commentid>
    <comment_count>8</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2016-11-14 10:48:47 -0800</bug_when>
    <thetext>Web Sockets are restricted to HTTP 1.1 and above as of https://bugs.webkit.org/show_bug.cgi?id=82714.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251101</commentid>
    <comment_count>9</comment_count>
      <attachid>294706</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-11-14 13:07:17 -0800</bug_when>
    <thetext>Comment on attachment 294706
Patch and layout tests

LGTM, I think Alex should take a look too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251345</commentid>
    <comment_count>10</comment_count>
      <attachid>294706</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-11-14 20:33:10 -0800</bug_when>
    <thetext>Comment on attachment 294706
Patch and layout tests

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

elegant

&gt; Source/WebKit2/ChangeLog:36
&gt; +2016-11-11  Daniel Bates  &lt;dabates@apple.com&gt;

This has two ChangeLog entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251441</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-11-15 08:32:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/29268514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1251444</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-11-15 08:41:11 -0800</bug_when>
    <thetext>Committed r208732: &lt;http://trac.webkit.org/changeset/208732&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294563</attachid>
            <date>2016-11-11 16:33:21 -0800</date>
            <delta_ts>2016-11-14 09:35:51 -0800</delta_ts>
            <desc>Patch and layout test</desc>
            <filename>bug-164662-20161111162906.patch</filename>
            <type>text/plain</type>
            <size>31945</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjljMmZmZDlhMTI2YWEx
MDUzM2ZmMDJlNDI2ZTllMTVmMzEwODZmMS4uOWIwNGIyM2Q0NzU0ODhhMWEwZTYxN2NiMDMwZGRj
NjA2MTViM2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE2LTExLTExICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhbGxvdyBsb2FkcyB1
c2luZyBIVFRQIDAuOSBhdCB0aGUgUmVzb3VyY2VIYW5kbGUvTmV0d29ya0xvYWQgbGV2ZWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDY2MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSB3
ZSBkaXNhbGxvdyBub24tZGVmYXVsdCBIVFRQIDAuOSBsb2FkcyBhdCB0aGUgUmVzb3VyY2VMb2Fk
ZXIgbGV2ZWwgYW5kIGRpc2FsbG93CisgICAgICAgIHN1YnJlc291cmNlIGxvYWRzIHVzaW5nIEhU
VFAgMC45IG9uIGEgZGVmYXVsdCBwb3J0IHdoZW4gdGhlIGVtYmVkZGluZyBwYWdlIGxvYWRzIHVz
aW5nIGEKKyAgICAgICAgZGlmZmVyZW50IEhUVFAgdmVyc2lvbi4gSG93ZXZlciBsb2FkcyBjYW4g
c3RpbGwgYmUgaW5pdGlhdGVkIGZyb20gb3RoZXIgbG9hZGVycyAoZS5nLiBGcmFtZUxvYWRlcikK
KyAgICAgICAgd2l0aCByZWdhcmRzIHRvIHRoZSBmaXJzdCBpc3N1ZS4gVGhlIGxhdHRlciBpc3N1
ZSBkb2VzIG5vdCBhZmZvcmQgbXVjaCBwcm90ZWN0aW9uIGFuZAorICAgICAgICBpbmNyZWFzZXMg
Y29kZSBjb21wbGV4aXR5LiBJbnN0ZWFkIHdlIHNob3VsZCBzaW1wbGlmeSBvdXIgcG9saWN5IGFu
ZCBtb3ZlIG91ciBjb2RlIHRvIHRoZQorICAgICAgICBSZXNvdXJjZUhhbmRsZS9OZXR3b3JrTG9h
ZCBsZXZlbCBzbyB0aGF0IHdlIGRpc2FsbG93IGFsbCBub24tZGVmYXVsdCBwb3J0IGxvYWRzIHVz
aW5nIEhUVFAKKyAgICAgICAgMC45IHJlZ2FyZGxlc3Mgb2YgdGhlIGxvYWRlciB1c2VkLgorCisg
ICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWRlZmF1bHQt
cG9ydC1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvaHR0
cC0wLjkveGhyLWJsb2NrZWQuaHRtbAorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXNwb25zZVJlY2VpdmVk
KTogUmVtb3ZlIGxvZ2ljIHRvIGNhbmNlbCBhbiBIVFRQIDAuOSBsb2FkIGZyb20gaGVyZS4KKyAg
ICAgICAgV2Ugd2lsbCBjYW5jZWwgdGhlIEhUVFAgMC45IGxvYWQgYXQgdGhlIFJlc291cmNlSGFu
ZGxlL05ldHdvcmtMb2FkIGxldmVsLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vVVJMLmg6IEV4cG9ydCBzdHJpbmdDZW50ZXJF
bGxpcHNpemVkVG9MZW5ndGgoKSBzbyB0aGF0IHdlIGNhbiB1c2UgaXQgaW4gV2ViS2l0Mi4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25TdWNjZXNzKTog
TW9kaWZpZWQgdG8gY2FsbCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKCkuCisg
ICAgICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25FcnJv
cik6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNwb25zZSk6
IEFkZGVkLiBGYWlsIHRoZSBsb2FkIGlmIGl0IGlzIHVzaW5nIEhUVFAgMC45LgorICAgICAgICBP
dGhlcndpc2Ugbm90aWZ5IHRoZSBjbGllbnQgdGhhdCB3ZSByZWNlaXZlZCBhIHJlc3BvbnNlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtQ29udGludWVTeW5jaHJv
bm91c0RpZFJlY2VpdmVSZXNwb25zZSk6IEFkZGVkLiBQZXJmb3JtIGFueQorICAgICAgICBhZGRp
dGlvbmFsIHBsYXRmb3JtLXNwZWNpZmljIGxvZ2ljIGFmdGVyIG5vdGlmeWluZyB0aGUgcmVzb3Vy
Y2UgaGFuZGxlIGNsaWVudCBvZiB0aGUgcmVjZWl2ZWQKKyAgICAgICAgcmVzcG9uc2UuIE9ubHkg
dGhlIGxpYnNvdXAgYmFja2VuZCBvdmVyd3JpdGVzIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIHRvIGRv
IHNvbWV0aGluZyBtZWFuaW5nZnVsLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VC
YXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxl
Z2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKTogTW9kaWZpZWQgdG8gY2FsbCBS
ZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKCkuCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRl
Lm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVs
ZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6XSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJl
Y2VpdmVSZXNwb25zZSk6IEFkZGVkLiBUdXJucyBhcm91bmQgYW5kCisgICAgICAgIGNhbGxzIGNv
bnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoKS4KKwogMjAxNi0xMS0xMSAgRGF2ZSBIeWF0
dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIFBhcnNlcl0gRml4IGJhc2ljIHNo
YXBlIHBhcnNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmNmJlNzVlNDI3ODE5MzBiNWVmZjI1MWZlNGVmMTZi
MDA1MTc2MmM5Li5mNzkzNzc0ZmVhYjg5YTIzNGRiOTZhY2M1MzlhODhjN2YzODYwZWMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMTEtMTEgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIERpc2FsbG93IGxvYWRzIHVzaW5nIEhUVFAgMC45IGF0
IHRoZSBSZXNvdXJjZUhhbmRsZS9OZXR3b3JrTG9hZCBsZXZlbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NjYyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmJsb2NrZWRVc2luZ0hUVFAwOUVycm9yKTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3Jr
U2Vzc2lvbik6IEZhaWwgdGhlIGxvYWQgaWYgaXQKKyAgICAgICAgaXMgdXNpbmcgSFRUUCAwLjku
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyk6
IERpdHRvLgorCiAyMDE2LTExLTExICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBTdXBwb3J0IHdpZGUgZ2FtdXQgZm9yIERyYWcgSW1h
Z2UgVUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDk2NzJl
MWVhNmU0YjMzZTgxMDE4MGYxYTQzMTc0Mjc1YzIzYjY0NWMuLmEwZDkyNjBjMWUwYzIxODhiYTBh
NmYxZTVjYWJmNmQ3NDk4MzZjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcApAQCAtNzMxLDE3ICs3MzEsNiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXNwb25z
ZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAgIH0KICNlbmRp
ZgogCi0gICAgaWYgKG1fcmVzcG9uc2UuaXNIdHRwVmVyc2lvbjBfOSgpKSB7Ci0gICAgICAgIC8v
IE5vbi1IVFRQIHJlc3BvbnNlcyBhcmUgaW50ZXJwcmV0ZWQgYXMgSFRUUC8wLjkgd2hpY2ggbWF5
IGFsbG93IGV4ZmlsdHJhdGlvbiBvZiBkYXRhCi0gICAgICAgIC8vIGZyb20gbm9uLUhUVFAgc2Vy
dmljZXMuIFRoZXJlZm9yZSBjYW5jZWwgaWYgdGhlIHJlcXVlc3Qgd2FzIHRvIGEgbm9uLWRlZmF1
bHQgcG9ydC4KLSAgICAgICAgaWYgKHVybC5wb3J0KCkgJiYgIWlzRGVmYXVsdFBvcnRGb3JQcm90
b2NvbCh1cmwucG9ydCgpLnZhbHVlKCksIHVybC5wcm90b2NvbCgpKSkgewotICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSAiU3RvcHBlZCBkb2N1bWVudCBsb2FkIGZyb20gJyIgKyB1cmwuc3Ry
aW5nKCkgKyAiJyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45IG9uIGEgbm9uLWRlZmF1bHQg
cG9ydC4iOwotICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2Us
IGlkZW50aWZpZXIpOwotICAgICAgICAgICAgc3RvcExvYWRpbmcoKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGZyYW1lTG9hZGVyKCktPnBvbGljeUNoZWNr
ZXIoKS5jaGVja0NvbnRlbnRQb2xpY3kobV9yZXNwb25zZSwgW3RoaXNdKFBvbGljeUFjdGlvbiBw
b2xpY3kpIHsKICAgICAgICAgY29udGludWVBZnRlckNvbnRlbnRQb2xpY3kocG9saWN5KTsKICAg
ICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDZhNTM4
MjAzNDE0MmIxMGViNzAzYzAwNzIwYzcwODYzNzIwODJkZjYuLjllMmFiZGFkY2ExNzgxYWQxMDVj
Mzk0OWYyZjBjZDEwZmVlYWFkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmNwcApAQCAtNDM3LDI3ICs0MzcsNiBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIAogICAgIG1fcmVzcG9uc2Ug
PSByOwogCi0gICAgaWYgKG1fcmVzcG9uc2UuaXNIdHRwVmVyc2lvbjBfOSgpKSB7Ci0gICAgICAg
IGF1dG8gdXJsID0gbV9yZXNwb25zZS51cmwoKTsKLSAgICAgICAgLy8gTm9uLUhUVFAgcmVzcG9u
c2VzIGFyZSBpbnRlcnByZXRlZCBhcyBIVFRQLzAuOSB3aGljaCBtYXkgYWxsb3cgZXhmaWx0cmF0
aW9uIG9mIGRhdGEKLSAgICAgICAgLy8gZnJvbSBub24tSFRUUCBzZXJ2aWNlcy4gVGhlcmVmb3Jl
IGNhbmNlbCBpZiB0aGUgZG9jdW1lbnQgd2FzIGxvYWRlZCB3aXRoIGRpZmZlcmVudAotICAgICAg
ICAvLyBIVFRQIHZlcnNpb24gb3IgaWYgdGhlIHJlc291cmNlIHJlcXVlc3Qgd2FzIHRvIGEgbm9u
LWRlZmF1bHQgcG9ydC4KLSAgICAgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5yZXNwb25zZSgp
LmlzSHR0cFZlcnNpb24wXzkoKSkgewotICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiQ2Fu
Y2VsbGVkIHJlc291cmNlIGxvYWQgZnJvbSAnIiArIHVybC5zdHJpbmcoKSArICInIGJlY2F1c2Ug
aXQgaXMgdXNpbmcgSFRUUC8wLjkgYW5kIHRoZSBkb2N1bWVudCB3YXMgbG9hZGVkIHdpdGggYSBk
aWZmZXJlbnQgSFRUUCB2ZXJzaW9uLiI7Ci0gICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVs
OjpFcnJvciwgbWVzc2FnZSwgaWRlbnRpZmllcigpKTsKLSAgICAgICAgICAgIFJlc291cmNlRXJy
b3IgZXJyb3IoZW1wdHlTdHJpbmcoKSwgMCwgdXJsLCBtZXNzYWdlKTsKLSAgICAgICAgICAgIGRp
ZEZhaWwoZXJyb3IpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlm
ICh1cmwucG9ydCgpICYmICFpc0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodXJsLnBvcnQoKS52YWx1
ZSgpLCB1cmwucHJvdG9jb2woKSkpIHsKLSAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIkNh
bmNlbGxlZCByZXNvdXJjZSBsb2FkIGZyb20gJyIgKyB1cmwuc3RyaW5nKCkgKyAiJyBiZWNhdXNl
IGl0IGlzIHVzaW5nIEhUVFAvMC45IG9uIGEgbm9uLWRlZmF1bHQgcG9ydC4iOwotICAgICAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIGlkZW50aWZpZXIoKSk7Ci0g
ICAgICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9yKGVtcHR5U3RyaW5nKCksIDAsIHVybCwgbWVz
c2FnZSk7Ci0gICAgICAgICAgICBkaWRGYWlsKGVycm9yKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgIH0KLQogICAgIGlmIChGb3JtRGF0YSogZGF0YSA9IG1fcmVxdWVzdC5o
dHRwQm9keSgpKQogICAgICAgICBkYXRhLT5yZW1vdmVHZW5lcmF0ZWRGaWxlc0lmTmVlZGVkKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVVJMLmgKaW5kZXggNzJjOGMxYmY2MmNjODYxYmU4ZmRlMDIxMDgwZDY2
MjMyZDY5YmQyZi4uZDYyYTIwN2NlZTkxMmI1MTQ0MjlhODFhYTdmODk0NjI2YjAxMmYxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVVJMLmgKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
U3RyaW5nJiBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZzsgfQogCi0gICAgU3RyaW5n
IHN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCh1bnNpZ25lZCBsZW5ndGggPSAxMDI0KSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRv
TGVuZ3RoKHVuc2lnbmVkIGxlbmd0aCA9IDEwMjQpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nVmlldyBwcm90b2NvbCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBob3N0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggOTUyZTc0NDRiODE5OGFjZmY0MDhiN2Jm
YmE5M2Y4MzI4NGQyYmI1Mi4uZTA2ZmE2NTYxN2EwNDU5NWY2YjNhNzg4NTI2MDkzYjFkOWEzZGI2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3Vy
Y2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJl
c291cmNlSGFuZGxlLmNwcApAQCAtNTc1LDEwICs1NzUsNyBAQCB2b2lkIEJsb2JSZXNvdXJjZUhh
bmRsZTo6bm90aWZ5UmVzcG9uc2VPblN1Y2Nlc3MoKQogICAgIC8vIGFzIGlmIHRoZSByZXNwb25z
ZSBoYWQgYSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlciB3aXRoIHRoZSBmaWxlbmFtZSBwYXJh
bWV0ZXIgc2V0IHRvIHRoZSBGaWxlJ3MgbmFtZSBhdHRyaWJ1dGUuCiAgICAgLy8gTm90YWJseSwg
dGhpcyB3aWxsIGFmZmVjdCBhIG5hbWUgc3VnZ2VzdGVkIGluICJGaWxlIFNhdmUgQXMiLgogCi0g
ICAgaWYgKHVzZXNBc3luY0NhbGxiYWNrcygpKQotICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2
ZVJlc3BvbnNlQXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSkpOwotICAgIGVsc2UKLSAgICAg
ICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZSh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7
CisgICAgZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpKTsKIH0KIAogdm9pZCBC
bG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25FcnJvcigpCkBAIC02MDEsMTAgKzU5
OCw3IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25zZU9uRXJyb3IoKQog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBpZiAodXNlc0FzeW5jQ2FsbGJhY2tzKCkpCi0g
ICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyh0aGlzLCBXVEZNb3ZlKHJl
c3BvbnNlKSk7Ci0gICAgZWxzZQotICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNl
KHRoaXMsIFdURk1vdmUocmVzcG9uc2UpKTsKKyAgICBkaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92
ZShyZXNwb25zZSkpOwogfQogCiB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVjZWl2
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGJ5dGVzUmVhZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggNjA0MzRjYTI4
NjdkMWQ4MTU0YjI4ZjJiNmJmNGM0Y2NkYjEyNzFmNy4uNDc3M2RlZDdmNGUxZTc4NDE5Zjg0ZmY0
NjE4YTVkOWY1YjVmYTZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTE1MCw2ICsxNTAsMjYgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y2xlYXJDbGllbnQoKQogICAgIGQtPm1fY2xpZW50ID0gbnVsbHB0cjsKIH0KIAor
dm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2Um
JiByZXNwb25zZSkKK3sKKyAgICBpZiAocmVzcG9uc2UuaXNIdHRwVmVyc2lvbjBfOSgpKSB7Cisg
ICAgICAgIGF1dG8gdXJsID0gcmVzcG9uc2UudXJsKCk7CisgICAgICAgIE9wdGlvbmFsPHVpbnQx
Nl90PiBwb3J0ID0gdXJsLnBvcnQoKTsKKyAgICAgICAgaWYgKHBvcnQgJiYgIWlzRGVmYXVsdFBv
cnRGb3JQcm90b2NvbChwb3J0LnZhbHVlKCksIHVybC5wcm90b2NvbCgpKSkgeworICAgICAgICAg
ICAgY2FuY2VsKCk7CisgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJDYW5jZWxsZWQgbG9h
ZCBmcm9tICciICsgdXJsLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpICsgIicgYmVj
YXVzZSBpdCBpcyB1c2luZyBIVFRQLzAuOS4iOworICAgICAgICAgICAgZC0+bV9jbGllbnQtPmRp
ZEZhaWwodGhpcywgeyBTdHJpbmcoKSwgMCwgdXJsLCBtZXNzYWdlIH0pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGlmIChkLT5tX3VzZXNBc3luY0NhbGxiYWNr
cykKKyAgICAgICAgZC0+bV9jbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdU
Rk1vdmUocmVzcG9uc2UpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgZC0+bV9jbGllbnQtPmRpZFJl
Y2VpdmVSZXNwb25zZSh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgICAgIHBsYXRmb3Jt
Q29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIH0KK30KKwogI2lm
ICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShDRlVSTENPTk5FQ1RJT04pICYmICFVU0UoU09VUCkK
IC8vIFJlc291cmNlSGFuZGxlIG5ldmVyIHVzZXMgYXN5bmMgY2xpZW50IGNhbGxzIG9uIHRoZXNl
IHBsYXRmb3JtcyB5ZXQuCiB2b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZVdpbGxTZW5kUmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QmJikKQEAgLTE3MCw2ICsxOTAsMTMgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGJv
b2wpCiAjZW5kaWYKICNlbmRpZgogCisjaWYgIVVTRShTT1VQKQordm9pZCBSZXNvdXJjZUhhbmRs
ZTo6cGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKCkKK3sKKyAg
ICAvLyBEbyBub3RoaW5nLgorfQorI2VuZGlmCisKIFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VI
YW5kbGU6OmZpcnN0UmVxdWVzdCgpCiB7CiAgICAgcmV0dXJuIGQtPm1fZmlyc3RSZXF1ZXN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmlu
ZGV4IDNkOTQyZDExNGFmMGM3NWNhZWFjMjg1OTFmZTg5MzY3OGNmZjc0YjMuLjBkZmJlNmQ5Y2Mx
Y2Q5NWFkYmNhMGYxYTQwNGMwM2M2ODllNDU0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTEwMyw2ICsxMDMsOCBAQCBwdWJs
aWM6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
JiwgUmVzb3VyY2VSZXNwb25zZSYmKTsKICNlbmRpZgogCisgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmKTsKKwogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZvaWQgcmVjZWl2ZWRDcmVkZW50
aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVudGlhbCYpIG92
ZXJyaWRlOwpAQCAtMjQ5LDYgKzI1MSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXRmb3Jt
U2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAorICAgIHZvaWQgcGxhdGZvcm1Db250aW51ZVN5bmNo
cm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisKICAgICB2b2lkIHNjaGVkdWxlRmFpbHVyZShG
YWlsdXJlVHlwZSk7CiAKICAgICBib29sIHN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKaW5kZXggZDg5NjYx
NWZkZmNjNDA3MzNmMTdhZmQzYzhhN2M3ZWU0OGU2ZDM3MC4uZjNkMjg4MWVkYmZhMmI2NjU1MDRk
M2JlOWRjOTgzNWZhNTdkMWM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBTdHJpbmcmIGh0dHBWZXJzaW9uKCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIVFRQVmVyc2lvbihjb25zdCBTdHJpbmcm
KTsKLSAgICBib29sIGlzSHR0cFZlcnNpb24wXzkoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGlzSHR0cFZlcnNpb24wXzkoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IEhUVFBIZWFkZXJNYXAmIGh0dHBIZWFkZXJGaWVsZHMoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0KaW5kZXggODg1ZjBjMGM4NjhlMjg4YWQz
YmU0Yjk0OGE0OGIyYWQ5YmVmNDQ4Yy4uMWNhMzEwZjE2NDhlZDU4NmQzY2JhMDNmZGFhYTk1OGU3
NzYwNjE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCkBA
IC0xNjIsNyArMTYyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgVU5VU0VEX1BB
UkFNKGNvbm5lY3Rpb24pOwogI2VuZGlmCiAKLSAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJl
Y2VpdmVSZXNwb25zZShtX2hhbmRsZSwgV1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CisgICAg
bV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpKTsK
IH0KIAogI2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRs
ZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9uUXVldWVEZWxlZ2F0ZS5t
bQppbmRleCA0NTJkOWRiMzIwZTAzZDc1MTlhNjJmZTkxMDQ1NjI5MzEzZDZhMTUyLi4wMDJlMTI4
Yjc3ODBkMDIxZjZiZWMyZWI3ZWFiYWI0NjFkYzJjMmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCkBAIC0x
OTksNyArMTk5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAjZWxzZQogICAgICAgICBV
TlVTRURfUEFSQU0oY29ubmVjdGlvbik7CiAjZW5kaWYKLSAgICAgICAgbV9oYW5kbGUtPmNsaWVu
dCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgV1RGTW92ZShyZXNvdXJjZVJl
c3BvbnNlKSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShy
ZXNvdXJjZVJlc3BvbnNlKSk7CiAgICAgfSk7CiAKICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2Fp
dChtX3NlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAKaW5kZXggZDg4MzQyODc0MDMxNzdmN2FmZmM4ODdlYjJlMzYwY2E3YjNiNzVmNy4uNjUyNWZj
NTg2Y2FhOWJhYWQ2YmNiOWZiMjllMDIyNDkyMWJiYThiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHAKQEAgLTUyMSw2ICs1MjEsMTEgQEAgc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhH
T2JqZWN0KiwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIGdwb2ludGVyIGRhdGEpCiAgICAgfQogfQog
Cit2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNl
aXZlUmVzcG9uc2UoKQoreworICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UodGhp
cyk7Cit9CisKIHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSkKIHsKICAgICBpZiAoaGFuZGxlLT5jYW5jZWxsZWRPckNsaWVu
dGxlc3MoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
Y3BwCmluZGV4IDUxN2Y4NDVhYWJlNTIzZjJlZmE5NjE4NGVlZjcyNTNhZTJjYTRkOWYuLjRiZWVh
ODYxMTE5ODdlZTA3MTg1MmFjMTkwZjA2YzZmNzM0OWZiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTMwMSwxMSArMzAxLDI2IEBAIHZv
aWQgTmV0d29ya0xvYWQ6OmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZShib29sIHJlc3VsdCkKIH0KICNlbmRpZgogCitzdGF0aWMgUmVzb3VyY2VFcnJvciBibG9j
a2VkVXNpbmdIVFRQMDlFcnJvcihjb25zdCBVUkwmIHVybCkKK3sKKyAgICByZXR1cm4geyBTdHJp
bmcoKSwgMCwgdXJsLCAiQ2FuY2VsbGVkIGxvYWQgZnJvbSAnIiArIHVybC5zdHJpbmdDZW50ZXJF
bGxpcHNpemVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXQgaXMgdXNpbmcgSFRUUC8wLjkuIiB9
OworfQorCiB2b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lv
bihSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIm
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IEFTU0VSVCghbV90aHJvdHRsZSk7CiAKKyAgICBpZiAocmVzcG9uc2UuaXNIdHRwVmVyc2lvbjBf
OSgpKSB7CisgICAgICAgIGF1dG8gdXJsID0gcmVzcG9uc2UudXJsKCk7CisgICAgICAgIE9wdGlv
bmFsPHVpbnQxNl90PiBwb3J0ID0gdXJsLnBvcnQoKTsKKyAgICAgICAgaWYgKHBvcnQgJiYgIWlz
RGVmYXVsdFBvcnRGb3JQcm90b2NvbChwb3J0LnZhbHVlKCksIHVybC5wcm90b2NvbCgpKSkgewor
ICAgICAgICAgICAgY2FuY2VsKCk7CisgICAgICAgICAgICBkaWRDb21wbGV0ZVdpdGhFcnJvcihi
bG9ja2VkVXNpbmdIVFRQMDlFcnJvcih1cmwpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgIH0KKwogICAgIGlmIChtX3Rhc2sgJiYgbV90YXNrLT5pc0Rvd25sb2FkKCkpIHsK
ICAgICAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmZpbmRQZW5kaW5nRG93bmxvYWRM
b2NhdGlvbigqbV90YXNrLmdldCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcmVzcG9u
c2UpOwogICAgICAgICByZXR1cm47CkBAIC0zNzksNiArMzk0LDE1IEBAIHZvaWQgTmV0d29ya0xv
YWQ6OmNhbm5vdFNob3dVUkwoKQogdm9pZCBOZXR3b3JrTG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNl
QXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgUmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVk
UmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChoYW5kbGUsIGhhbmRsZSA9PSBtX2hhbmRs
ZSk7CisgICAgaWYgKHJlY2VpdmVkUmVzcG9uc2UuaXNIVFRQVmVyc2lvbjBfOSgpKSB7CisgICAg
ICAgIGF1dG8gdXJsID0gcmVjZWl2ZWRSZXNwb25zZS51cmwoKTsKKyAgICAgICAgT3B0aW9uYWw8
dWludDE2X3Q+IHBvcnQgPSB1cmwucG9ydCgpOworICAgICAgICBpZiAocG9ydCgpICYmICFpc0Rl
ZmF1bHRQb3J0Rm9yUHJvdG9jb2wocG9ydCgpLnZhbHVlKCksIHVybC5wcm90b2NvbCgpKSkgewor
ICAgICAgICAgICAgY2FuY2VsKCk7CisgICAgICAgICAgICBkaWRGYWlsKHRoaXMsIGJsb2NrZWRV
c2luZ0hUVFAwOUVycm9yKHVybCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfQogICAgIGlmIChzaGFyZWREaWRSZWNlaXZlUmVzcG9uc2UoV1RGTW92ZShyZWNlaXZlZFJl
c3BvbnNlKSkgPT0gTmV0d29ya0xvYWRDbGllbnQ6OlNob3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlOjpZZXMpCiAgICAgICAgIG1faGFuZGxlLT5jb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGIwYjczYTZlMjE3YTVkZmM1ODFhOTk5Yjc3ZmI2YjY5MDEzYTEyZjYu
LjcxMDJmNGI2MDVmMTIwNDVjYmRjN2U0MmQ0M2ZhMTc3MzA4MmE4MTEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MSBAQAorMjAxNi0xMS0xMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisK
KyAgICAgICAgRGlzYWxsb3cgbG9hZHMgdXNpbmcgSFRUUCAwLjkgYXQgdGhlIFJlc291cmNlSGFu
ZGxlL05ldHdvcmtMb2FkIGxldmVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjQ2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSB0aGF0IHdlIGJsb2NrIGEgc3luY2hy
b25vdXMgWEhSIGxvYWQgdXNpbmcgSFRUUCAwLjkuCisgICAgICAgIFJlbmFtZWQgdGVzdCBpbWFn
ZS1kZWZhdWx0LXBvcnQtYmxvY2tlZC5odG1sIHRvIGltYWdlLWRlZmF1bHQtcG9ydC1hbGxvd2Vk
Lmh0bWwKKyAgICAgICAgYXMgd2Ugbm93IGFsbG93IGEgc3VicmVzb3VyY2UgbG9hZCB1c2luZyBI
VFRQIDAuOSBvbiBhIGRlZmF1bHQgcG9ydCByZWdhcmRsZXNzCisgICAgICAgIG9mIHRoZSBIVFRQ
IHZlcnNpb24gdGhlIGVtYmVkZGluZyBwYWdlIHVzZWQuCisKKyAgICAgICAgVXBkYXRlIHRlc3Qg
ZXhwZWN0YXRpb25zIGFzIERSVC9XVFIgZG8gbm90IGVtaXQgYSBsb2NhbGl6ZWQgZGVzY3JpcHRp
b24gZm9yIHRoZQorICAgICAgICBlcnJvciBhc3NvY2lhdGVkIHdpdGggYSBsb2FkIGZhaWx1cmUu
IE5vdGUgdGhhdCBhIG1lc3NhZ2UgaXMgZW1pdHRlZCB0bworICAgICAgICBXZWIgSW5zcGVjdG9y
IGNvbnNvbGUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2lmcmFt
ZS1ibG9ja2VkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0
dHAtMC45L2lmcmFtZS1ibG9ja2VkLmh0bWw6IER1bXAgZnJhbWUgbG9hZCBjYWxsYmFja3MKKyAg
ICAgICAgdG8gc2VlIHRoYXQgbG9hZCB3YXMgY2FuY2VsbGVkIGFzIHRoZXJlIGlzIG5vIG90aGVy
IHVuaXF1ZSB2aXNpYmxlIGluZGljYXRpb24KKyAgICAgICAgb2Ygc3VjY2Vzcy4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0
OiBVcGRhdGUgZXhwZWN0ZWQgcmVzdWx0LgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
aHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZh
dWx0LXBvcnQtYmxvY2tlZC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9odHRwLTAuOS9pbWFnZS1kZWZhdWx0LXBvcnQtYWxsb3dlZC5odG1sOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZhdWx0
LXBvcnQtYmxvY2tlZC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0w
LjkvaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLWV4cGVjdGVkLnR4dDogVXBkYXRlIGV4
cGVjdGVkIHJlc3VsdC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2lt
YWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5odG1sOiBEaXR0by4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3NhbmRib3gtc2hvdWxkLW5vdC1wZXJzaXN0LW9uLW5h
dmlnYXRpb24tZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2h0dHAtMC45L3dvcmtlci1jb25uZWN0LXNyYy1ibG9ja2VkLWV4cGVjdGVkLnR4dDogRGl0
dG8uCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS93b3JrZXItaW1wb3J0
U2NyaXB0cy1ibG9ja2VkLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9odHRwLTAuOS94aHItYXN5bmNocm9ub3VzLWJsb2NrZWQtZXhwZWN0ZWQudHh0
OiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3hoci1ibG9j
a2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9o
dHRwLTAuOS94aHItYmxvY2tlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9uczogU2tpcCB0aGUgSFRUUC0wLjkgdGVzdHMgaW4gV2ViS2l0MiB0aGF0
IHVzZSBpbnRlcm5hbHMucmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3RvY29sKCkuCisgICAgICAg
IFRoZSBmdW5jdGlvbiBpbnRlcm5hbHMucmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3RvY29sIG9u
bHkgdXBkYXRlcyB0aGUgdXBkYXRlIHRoZSBkZWZhdWx0LXBvcnQtdG8tcHJvdG9jb2wgbWFwIGlu
IHRoZQorICAgICAgICBXZWJDb250ZW50IHByb2Nlc3MuIEhvd2V2ZXIgbmV0d29yayBsb2FkcyBp
biBXZWJLaXQyIG9jY3VyIGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4gRnVydGhlciBpbnZlc3RpZ2F0
aW9uCisgICAgICAgIGlzIG5lZWRlZCB0byBkZXRlcm1pbmUgdGhlIGJlc3Qgd2F5IHRvIHN1cHBv
cnQgdGVzdGluZyB3aXRoIGRlZmF1bHQgcG9ydHMuIElkZWFsbHksIHdlIHdvdWxkIHJ1biBhbiBI
VFRQL0hUVFBTIHNlcnZlcgorICAgICAgICBvbiBwb3J0IDgwLzQ0MyBmb3IgdGVzdGluZyBhbmQg
cmVtb3ZlIHRoZSBuZWVkIGZvciBpbnRlcm5hbHMucmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3Rv
Y29sKCkuIEZ1cnRoZXIgaW52ZXN0aWdhdGlvbgorICAgICAgICBpcyBuZWVkZWQuCisKIDIwMTYt
MTEtMTEgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IGlvcy1zaW11bGF0b3IgYmFzZWxpbmUgZm9yIGNvbXBvc2l0aW5nL3RpbGluZy92aXNpYmxlcmVj
dC1hY2N1bXVsYXRlZC1vZmZzZXQuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaWZyYW1lLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pZnJhbWUtYmxvY2tlZC1leHBl
Y3RlZC50eHQKaW5kZXggMDRjYzMzYzg4NjU2OGIwYmMyOWJhMmRmZTUzMWI1MjE5ODIwYWRkYS4u
YjZlNGI5YWUzYTMzZGFhNWZhZDYxNmE4MWFhZjc4MTgxOTRlNGJhMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pZnJhbWUtYmxvY2tlZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9p
ZnJhbWUtYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw4IEBACi1DT05TT0xFIE1FU1NB
R0U6IFN0b3BwZWQgZG9jdW1lbnQgbG9hZCBmcm9tICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2Vj
dXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25waC1mYWlsLnBsJyBiZWNhdXNlIGl0IGlzIHVzaW5n
IEhUVFAvMC45IG9uIGEgbm9uLWRlZmF1bHQgcG9ydC4KK2ZyYW1lICI8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lMC0tPi0tPiIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCittYWlu
IGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRI
YW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJh
bWUwLS0+LS0+IiAtIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3IKK21haW4gZnJhbWUg
LSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKIAogCiAtLS0tLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pZnJhbWUtYmxvY2tlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pZnJhbWUtYmxvY2tlZC5o
dG1sCmluZGV4IGI3ZGYyZmIxZjMzYTUwZGM2MzU1NTgyOTEwYTQ5ZDdlNTdmMjYwN2MuLmU0NWI5
ZjA0ZWUzOThmYjg2YjZhM2I2MTNiNzNjOGZkMDA2Y2VlYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaWZyYW1lLWJsb2NrZWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2lmcmFtZS1ibG9ja2Vk
Lmh0bWwKQEAgLTUsNiArNSw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4
dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpOwogfQogPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2h0dHAtMC45L2ltYWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCA5
NzFmOGFlNjA2ZjE0Nzc3MjJiMzg1N2MxYmM4NGMxNTIxODJlYmM0Li45YzcwMzIxMTg4OWE4OWZl
OTA4MmI5OThhNGRjZWU3M2RhNzdhY2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtYmxvY2tlZC1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSwyIEBACi1DT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCByZXNv
dXJjZSBsb2FkIGZyb20gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9y
ZXNvdXJjZXMvbnBoLWltYWdlLnBsJyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45IGFuZCB0
aGUgZG9jdW1lbnQgd2FzIGxvYWRlZCB3aXRoIGEgZGlmZmVyZW50IEhUVFAgdmVyc2lvbi4KIEFM
RVJUOiBQQVNTCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
aHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZhdWx0LXBvcnQtYWxs
b3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM3MDMyMTE4ODlhODlmZTkwODJiOTk4YTRk
Y2VlNzNkYTc3YWNkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWFsbG93ZWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZhdWx0LXBvcnQtYWxsb3dlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZh
dWx0LXBvcnQtYWxsb3dlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxNDdhNTViMGNiNTAyMDQ5MzlhNGQ5
ODQ4NTQ4ODZjMTcxZDVkODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWRlZmF1bHQtcG9ydC1hbGxvd2VkLmh0bWwKQEAg
LTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJEZWZh
dWx0UG9ydEZvclByb3RvY29sKDgwMDAsICJodHRwIik7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGltZyBzcmM9InJlc291cmNlcy9ucGgtaW1hZ2UucGwiIG9ubG9hZD0iYWxlcnQo
J1BBU1MnKSIgb25lcnJvcj0iYWxlcnQoJ0ZBSUwnKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWRl
ZmF1bHQtcG9ydC1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWJsb2NrZWQtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzFmOGFlNjA2ZjE0Nzc3MjJiMzg1N2Mx
YmM4NGMxNTIxODJlYmM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVm
YXVsdC1wb3J0LWJsb2NrZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi1DT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCByZXNvdXJjZSBsb2FkIGZyb20gJ2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJjZXMvbnBoLWltYWdlLnBs
JyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45IGFuZCB0aGUgZG9jdW1lbnQgd2FzIGxvYWRl
ZCB3aXRoIGEgZGlmZmVyZW50IEhUVFAgdmVyc2lvbi4KLUFMRVJUOiBQQVNTCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVs
dC1wb3J0LWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0
cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWJsb2NrZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmM2MmUwNGRhMDZkOGI1NzNlMjJhNjg5OTBiMmZlOWI3MzkyZjQxOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWRlZmF1bHQtcG9ydC1ibG9ja2VkLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIGlu
dGVybmFscy5yZWdpc3RlckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2woODAwMCwgImh0dHAiKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0icmVzb3VyY2VzL25waC1pbWFn
ZS5wbCIgb25sb2FkPSJhbGVydCgnRkFJTCcpIiBvbmVycm9yPSJhbGVydCgnUEFTUycpIj4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvaHR0cC0wLjkvaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2Utb24tSFRUUC0w
LjktcGFnZS1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCAyNDJhNjkxYmEyZTE4OWFkMDgwZjFk
ZmVlOWEyNzdkMWExYmYzMjk2Li4wOGI5NTQyM2IyMDk4YzViYTUzNmEwYzQzNmFmYWI2ODk1OTZm
ODI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45
L2ltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1vbi1IVFRQLTAuOS1wYWdl
LWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMTAgQEAKK2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJjZXMvbnBoLWltYWdlLW9uLUhUVFAtMC45LXBh
Z2UtYmxvY2tlZC5wbCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25waC1pbWFnZS1vbi1I
VFRQLTAuOS1wYWdlLWJsb2NrZWQucGwsIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1vbi1IVFRQLTAuOS1wYWdlLWJsb2NrZWQu
aHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQoraHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxv
Y2tlZC5odG1sIC0gZGlkRmluaXNoTG9hZGluZworaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L2h0dHAtMC45L3Jlc291cmNlcy9ucGgtaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2Vk
LnBsIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJjZXMvbnBoLWltYWdlLW9uLUhUVFAtMC45LXBh
Z2UtYmxvY2tlZC5wbCwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CiBDT05TT0xFIE1FU1NBR0U6IFNh
bmRib3hpbmcgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJj
ZXMvbnBoLWltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5wbCcgYmVjYXVzZSBpdCBpcyB1
c2luZyBIVFRQLzAuOS4KLUNPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIHJlc291cmNlIGxvYWQg
ZnJvbSAnaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L2h0dHAtMC45L3Jlc291cmNlcy9u
cGgtaW1hZ2UucGwnIGJlY2F1c2UgaXQgaXMgdXNpbmcgSFRUUC8wLjkgb24gYSBub24tZGVmYXVs
dCBwb3J0LgoraHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L2h0dHAtMC45L3Jlc291cmNl
cy9ucGgtaW1hZ2UucGwgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDov
LzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L2h0dHAtMC45L3Jlc291cmNlcy9ucGgtaW1hZ2UucGws
IG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAu
OS9pbWFnZS1vbi1IVFRQLTAuOS1wYWdlLWJsb2NrZWQuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiBy
ZWRpcmVjdFJlc3BvbnNlIChudWxsKQoraHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2h0
dHAtMC45L3Jlc291cmNlcy9ucGgtaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLnBsIC0g
ZGlkRmluaXNoTG9hZGluZworaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L2h0dHAtMC45
L3Jlc291cmNlcy9ucGgtaW1hZ2UucGwgLSBkaWRGYWlsTG9hZGluZ1dpdGhFcnJvcjogPE5TRXJy
b3IgZG9tYWluICwgY29kZSAwLCBmYWlsaW5nIFVSTCAiaHR0cDovLzEyNy4wLjAuMTo4MDgwL3Nl
Y3VyaXR5L2h0dHAtMC45L3Jlc291cmNlcy9ucGgtaW1hZ2UucGwiPgogCiAKIC0tLS0tLS0tCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdl
LW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9odHRwLTAuOS9pbWFnZS1vbi1IVFRQLTAuOS1wYWdlLWJsb2NrZWQuaHRtbAppbmRl
eCAwMjNmYTRkNjkwNWFiODkwNGZkMDQ1NTgxYjRkODc3YWQyMjUwNmE0Li40YjljYzA2M2VmODJm
MzE0YjJiNWE3OTljNjc5NWIxOWQxZWFiZTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2Ut
b24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLmh0bWwKQEAgLTUsNiArNSw3IEBACiBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVu
bmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNl
TG9hZENhbGxiYWNrcygpOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICBpbnRl
cm5hbHMucmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3RvY29sKDgwMDAsICJodHRwIik7CiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3NhbmRi
b3gtc2hvdWxkLW5vdC1wZXJzaXN0LW9uLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9zYW5kYm94LXNob3VsZC1ub3QtcGVy
c2lzdC1vbi1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBhMzkwMDJmYjBiZDgyZGZjYmVm
Njg5YzFhNDA0MGZjYmQxNjhiMmI5Li43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3MWZkYzg3OTQwMTZj
OGVmMTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAt
MC45L3NhbmRib3gtc2hvdWxkLW5vdC1wZXJzaXN0LW9uLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvc2FuZGJveC1z
aG91bGQtbm90LXBlcnNpc3Qtb24tbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTEsMiArMSBA
QAotQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgcmVzb3VyY2UgbG9hZCBmcm9tICdodHRwOi8v
MTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25waC1pbWFnZS5wbCcg
YmVjYXVzZSBpdCBpcyB1c2luZyBIVFRQLzAuOSBhbmQgdGhlIGRvY3VtZW50IHdhcyBsb2FkZWQg
d2l0aCBhIGRpZmZlcmVudCBIVFRQIHZlcnNpb24uCiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3dvcmtlci1jb25uZWN0LXNyYy1ibG9j
a2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0w
Ljkvd29ya2VyLWNvbm5lY3Qtc3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0CmluZGV4IGRlMzM2MDRl
NDcxYjQxYzkxMzMyODg4ZjQ0YzcwZDYwODc5Yjc3ZDEuLjljNzAzMjExODg5YTg5ZmU5MDgyYjk5
OGE0ZGNlZTczZGE3N2FjZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvaHR0cC0wLjkvd29ya2VyLWNvbm5lY3Qtc3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvd29ya2VyLWNvbm5l
Y3Qtc3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMiBAQAotQ09OU09MRSBNRVNT
QUdFOiBDYW5jZWxsZWQgcmVzb3VyY2UgbG9hZCBmcm9tICdodHRwOi8vMTI3LjAuMC4xOjgwMDAv
c2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25waC13b3JrZXItZmFpbC5wbCcgYmVjYXVzZSBp
dCBpcyB1c2luZyBIVFRQLzAuOSBhbmQgdGhlIGRvY3VtZW50IHdhcyBsb2FkZWQgd2l0aCBhIGRp
ZmZlcmVudCBIVFRQIHZlcnNpb24uCiBBTEVSVDogUEFTUwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3dvcmtlci1pbXBvcnRTY3JpcHRzLWJs
b2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRw
LTAuOS93b3JrZXItaW1wb3J0U2NyaXB0cy1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCBkZTMz
NjA0ZTQ3MWI0MWM5MTMzMjg4OGY0NGM3MGQ2MDg3OWI3N2QxLi45YzcwMzIxMTg4OWE4OWZlOTA4
MmI5OThhNGRjZWU3M2RhNzdhY2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2h0dHAtMC45L3dvcmtlci1pbXBvcnRTY3JpcHRzLWJsb2NrZWQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvd29ya2Vy
LWltcG9ydFNjcmlwdHMtYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwyIEBACi1DT05T
T0xFIE1FU1NBR0U6IENhbmNlbGxlZCByZXNvdXJjZSBsb2FkIGZyb20gJ2h0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJjZXMvbnBoLXdvcmtlci1mYWlsLnBsJyBi
ZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45IGFuZCB0aGUgZG9jdW1lbnQgd2FzIGxvYWRlZCB3
aXRoIGEgZGlmZmVyZW50IEhUVFAgdmVyc2lvbi4KIEFMRVJUOiBQQVNTCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkveGhyLWFzeW5jaHJvbm91
cy1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
aHR0cC0wLjkveGhyLWFzeW5jaHJvbm91cy1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCA5ZjQw
MDZhMmZmMDJjZGI4ZTA0OGJkMzVmOTYxY2RiYTA4ZGRlMzQxLi45YzcwMzIxMTg4OWE4OWZlOTA4
MmI5OThhNGRjZWU3M2RhNzdhY2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2h0dHAtMC45L3hoci1hc3luY2hyb25vdXMtYmxvY2tlZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS94aHItYXN5bmNo
cm9ub3VzLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMiBAQAotQ09OU09MRSBNRVNT
QUdFOiBDYW5jZWxsZWQgcmVzb3VyY2UgbG9hZCBmcm9tICdodHRwOi8vMTI3LjAuMC4xOjgwMDAv
c2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25waC1mYWlsLnBsJyBiZWNhdXNlIGl0IGlzIHVz
aW5nIEhUVFAvMC45IGFuZCB0aGUgZG9jdW1lbnQgd2FzIGxvYWRlZCB3aXRoIGEgZGlmZmVyZW50
IEhUVFAgdmVyc2lvbi4KIEFMRVJUOiBQQVNTCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkveGhyLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS94aHItYmxvY2tlZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWM3MDMyMTE4ODlhODlmZTkwODJiOTk4YTRkY2VlNzNkYTc3YWNk
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0
cC0wLjkveGhyLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBB
U1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAu
OS94aHItYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRw
LTAuOS94aHItYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4MWE1YTA5ZDVjOTRhNmVhNDdiOTRi
NTc1MDg2MGJiNzk3ZGZjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2h0dHAtMC45L3hoci1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwyNCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorY29uc3QgaXNBc3luY2hyb25vdXMgPSBmYWxzZTsKK3ZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7Cit0cnkgeworICAgIHhoci5vcGVuKCJHRVQiLCAicmVz
b3VyY2VzL25waC1mYWlsLnBsIiwgaXNBc3luY2hyb25vdXMpOworICAgIHhoci5zZW5kKCk7CisK
KyAgICBhbGVydCgiRkFJTCIpOworfSBjYXRjaCAoZSkgeworICAgIC8vIEZJWE1FOiBBc3NlcnQg
dGhhdCBhIHNwZWNpZmljIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICAgYWxlcnQoIlBBU1MiKTsK
K30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNGE5NWZiYjdlMWZjMzlmYzUyMzU4NDAwYjg3ZjkxYzQy
NTIyYzgyLi41NTRjYmE2ZmJmNDZhODU3YmU4MmIwODljZmZjNzc3YjVkNWI0NDc1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTQ4LDYgKzU0OCwxNCBA
QCBmYXN0L3ByZWxvYWRlci9kb2N1bWVudC13cml0ZS0yLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQog
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIFNUQVJUIE9GICg0
KSBGZWF0dXJlcyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGluIFdlYktpdDIgYW5kIGxpa2VseSBu
ZXZlciB3aWxsIGJlCiAKKyMgSW50ZXJuYWxzLnJlZ2lzdGVyRGVmYXVsdFBvcnRGb3JQcm90b2Nv
bCgpIGRvZXMgbm90IGFmZmVjdCBOZXR3b3JrUHJvY2VzcworaHR0cC90ZXN0cy9zZWN1cml0eS9o
dHRwLTAuOS9kZWZhdWx0LXBvcnQtcGx1Z2luLWJsb2NrZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1
cml0eS9odHRwLTAuOS9kZWZhdWx0LXBvcnQtc2NyaXB0LWJsb2NrZWQuaHRtbAoraHR0cC90ZXN0
cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZhdWx0LXBvcnQtYWxsb3dlZC5odG1sCitodHRw
L3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLW9uLUhUVFAtMC45LWRlZmF1bHQtcG9ydC1w
YWdlLWFsbG93ZWQtcmVmLXRlc3QuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9p
bWFnZS1vbi1IVFRQLTAuOS1kZWZhdWx0LXBvcnQtcGFnZS1hbGxvd2VkLmh0bWwKK2h0dHAvdGVz
dHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLmh0bWwK
KwogIyBXZWJLaXRUZXN0UnVubmVyIGRvZXNuJ3QgaGF2ZSBhcHBsZVNjcmlwdENvbnRyb2xsZXIK
IHBsYXRmb3JtL21hYy9mYXN0L0FwcGxlU2NyaXB0LzAwMS5odG1sCiBwbGF0Zm9ybS9tYWMvZmFz
dC9BcHBsZVNjcmlwdC9hcnJheS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294706</attachid>
            <date>2016-11-14 09:35:55 -0800</date>
            <delta_ts>2016-11-14 20:33:10 -0800</delta_ts>
            <desc>Patch and layout tests</desc>
            <filename>bug-164662-20161114093136.patch</filename>
            <type>text/plain</type>
            <size>43631</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjljMmZmZDlhMTI2YWEx
MDUzM2ZmMDJlNDI2ZTllMTVmMzEwODZmMS4uNDBhODBhOWUwM2JjNGYwODFjYjVjYTMwZDZjN2Mz
MzE3Y2IzZDcyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTExLTE0ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhbGxvdyBsb2FkcyB1
c2luZyBIVFRQIDAuOSBhdCB0aGUgUmVzb3VyY2VIYW5kbGUvTmV0d29ya0RhdGFUYXNrIGxldmVs
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ2NjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50
bHkgd2UgZGlzYWxsb3cgbm9uLWRlZmF1bHQgSFRUUCAwLjkgbG9hZHMgYXQgdGhlIFJlc291cmNl
TG9hZGVyIGxldmVsIGFuZCBkaXNhbGxvdworICAgICAgICBzdWJyZXNvdXJjZSBsb2FkcyB1c2lu
ZyBIVFRQIDAuOSBvbiBhIGRlZmF1bHQgcG9ydCB3aGVuIHRoZSBlbWJlZGRpbmcgcGFnZSBsb2Fk
cyB1c2luZyBhCisgICAgICAgIGRpZmZlcmVudCBIVFRQIHZlcnNpb24uIEhvd2V2ZXIgbG9hZHMg
Y2FuIHN0aWxsIGJlIGluaXRpYXRlZCBmcm9tIG90aGVyIGxvYWRlcnMgKGUuZy4gRnJhbWVMb2Fk
ZXIpCisgICAgICAgIHdpdGggcmVnYXJkcyB0byB0aGUgZmlyc3QgaXNzdWUuIFRoZSBsYXR0ZXIg
aXNzdWUgZG9lcyBub3QgYWZmb3JkIG11Y2ggcHJvdGVjdGlvbiBhbmQKKyAgICAgICAgaW5jcmVh
c2VzIGNvZGUgY29tcGxleGl0eS4gSW5zdGVhZCB3ZSBzaG91bGQgc2ltcGxpZnkgb3VyIHBvbGlj
eSBhbmQgbW92ZSBvdXIgY29kZSB0byB0aGUKKyAgICAgICAgbG93ZXN0IG5ldHdvcmtpbmcgYWJz
dHJhY3Rpb24gbGV2ZWwsIFJlc291cmNlSGFuZGxlL05ldHdvcmtEYXRhVGFzaywgc28gdGhhdCB3
ZSBkaXNhbGxvdworICAgICAgICBhbGwgbm9uLWRlZmF1bHQgcG9ydCBsb2FkcyB1c2luZyBIVFRQ
IDAuOSByZWdhcmRsZXNzIG9mIHRoZSBsb2FkZXIgdXNlZC4KKworICAgICAgICBUZXN0czogaHR0
cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZhdWx0LXBvcnQtYWxsb3dlZC5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3hoci1ibG9ja2Vk
Lmh0bWwKKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZCk6IFJlbW92ZSBsb2dpYyB0
byBjYW5jZWwgYW4gSFRUUCAwLjkgbG9hZCBmcm9tIGhlcmUuCisgICAgICAgIFdlIHdpbGwgY2Fu
Y2VsIHRoZSBIVFRQIDAuOSBsb2FkIGF0IHRoZSBSZXNvdXJjZUhhbmRsZS9OZXR3b3JrRGF0YVRh
c2sgbGV2ZWwuCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9VUkwuaDogRXhwb3J0IHN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xl
bmd0aCgpIHNvIHRoYXQgd2UgY2FuIHVzZSBpdCBpbiBXZWJLaXQyLgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJs
b2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPblN1Y2Nlc3MpOiBNb2RpZmllZCB0byBj
YWxsIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlUmVzcG9uc2UoKS4KKyAgICAgICAgKFdlYkNv
cmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5UmVzcG9uc2VPbkVycm9yKTogRGl0dG8uCisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogQWRkZWQuIEZhaWwg
dGhlIGxvYWQgaWYgaXQgaXMgdXNpbmcgSFRUUCAwLjkuCisgICAgICAgIE90aGVyd2lzZSBub3Rp
ZnkgdGhlIGNsaWVudCB0aGF0IHdlIHJlY2VpdmVkIGEgcmVzcG9uc2UuCisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3VzRGlkUmVjZWl2
ZVJlc3BvbnNlKTogQWRkZWQuIFBlcmZvcm0gYW55CisgICAgICAgIGFkZGl0aW9uYWwgcGxhdGZv
cm0tc3BlY2lmaWMgbG9naWMgYWZ0ZXIgbm90aWZ5aW5nIHRoZSByZXNvdXJjZSBoYW5kbGUgY2xp
ZW50IG9mIHRoZSByZWNlaXZlZAorICAgICAgICByZXNwb25zZS4gT25seSB0aGUgbGlic291cCBi
YWNrZW5kIG92ZXJ3cml0ZXMgdGhpcyBtZW1iZXIgZnVuY3Rpb24gdG8gZG8gc29tZXRoaW5nIG1l
YW5pbmdmdWwuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKTogTW9kaWZpZWQgdG8KKyAgICAgICAgY2FsbCBSZXNvdXJjZUhhbmRsZTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKCkuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNP
cGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUmVzcG9uc2U6
XSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmV4dE11bHRpcGFydFJlc3BvbnNlUGFydENh
bGxiYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpzZW5kUmVxdWVzdENhbGxiYWNrKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Db250aW51
ZVN5bmNocm9ub3VzRGlkUmVjZWl2ZVJlc3BvbnNlKTogQWRkZWQuIFR1cm5zIGFyb3VuZCBhbmQK
KyAgICAgICAgY2FsbHMgY29udGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZSgpLgorCiAyMDE2
LTExLTExICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1MgUGFy
c2VyXSBGaXggYmFzaWMgc2hhcGUgcGFyc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY2YmU3NWU0Mjc4MTkz
MGI1ZWZmMjUxZmU0ZWYxNmIwMDUxNzYyYzkuLjY2NDBlZDRiMmNmOTc5ZTVjOGIyYzU0YzMwMWZl
YTY1YjI2NmQ0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxNi0xMS0xNCAgRGFu
aWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgRGlzYWxsb3cgbG9hZHMg
dXNpbmcgSFRUUCAwLjkgYXQgdGhlIFJlc291cmNlSGFuZGxlL05ldHdvcmtEYXRhVGFzayBsZXZl
bAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NjYy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBj
aGFuZ2VzIHRvIE5ldHdvcmtEYXRhVGFzayBzaW1pbGFyIHRvIHRoZSBjaGFuZ2VzIG1hZGUgdG8g
UmVzb3VyY2VIYW5kbGUgc28gYXMgdG8KKyAgICAgICAgZGlzYWxsb3cgbm9uLWRlZmF1bHQgcG9y
dCBIVFRQIDAuOSBsb2FkcyB3aGVuIHVzaW5nIHRoZSBFTkFCTEUoTkVUV09SS19TRVNTSU9OKSBu
ZXR3b3JraW5nCisgICAgICAgIGNvZGUgcGF0aCBpbiBXZWJLaXQyLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBBZGRlZC4gRmFpbCB0aGUgbG9hZCBpZiBp
dCBpcyB1c2luZyBIVFRQIDAuOS4KKyAgICAgICAgT3RoZXJ3aXNlIG5vdGlmeSB0aGUgY2xpZW50
IHRoYXQgd2UgcmVjZWl2ZWQgYSByZXNwb25zZS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2tCbG9iLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQmxvYjo6cmVzdW1l
KTogU3Vic3RpdHV0ZSBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZSgpIGZvciBkaWRSZWNlaXZl
UmVzcG9uc2UoKQorICAgICAgICBhcyB0aGUgbGF0dGVyIGhhcyBiZWVuIHJlbmFtZWQgdG8gdGhl
IGZvcm1lci4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQmxvYjo6Z2V0U2l6ZUZv
ck5leHQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQmxvYjo6ZGlz
cGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UpOiBSZW5hbWVkIGZyb20gZGlkUmVjZWl2ZVJlc3BvbnNl
KCkuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBE
ZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291
cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmRpZFNlbmRSZXF1
ZXN0KTogU3Vic3RpdHV0ZSBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZSgpIGZvciBkaWRSZWNl
aXZlUmVzcG9uc2UoKQorICAgICAgICBhcyB0aGUgbGF0dGVyIGhhcyBiZWVuIHJlbmFtZWQgdG8g
dGhlIGZvcm1lci4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlUmVzcG9uc2UpOiBSZW5hbWVkIGZyb20gZGlkUmVjZWl2ZVJlc3BvbnNlKCku
IEFsc28KKyAgICAgICAgcmVtb3ZlIHRoZSBsb2NhbCB2YXJpYWJsZSByZXNwb25zZSBhbmQgaW5s
aW5lIGl0cyB2YWx1ZSBpbnRvIHRoZSBjYWxsIHRvIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZl
UmVzcG9uc2UoKQorICAgICAgICBhcyB0aGlzIHZhcmlhYmxlIGlzIHVzZWQgZXhhY3RseSBvbmNl
IGluIHRoaXMgZnVuY3Rpb24gYW5kIGl0cyBuYW1lIGRvZXMgbm90IGRlc2NyaWJlIGl0cyBwdXJw
b3NlIGFueSBtb3JlCisgICAgICAgIHRoYW4gaXRzIHZhbHVlLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRSZXF1ZXN0TmV4dFBhcnQpOiBTdWJzdGl0dXRlIGRpc3Bh
dGNoRGlkUmVjZWl2ZVJlc3BvbnNlKCkgZm9yIGRpZFJlY2VpdmVSZXNwb25zZSgpCisgICAgICAg
IGFzIHRoZSBsYXR0ZXIgaGFzIGJlZW4gcmVuYW1lZCB0byB0aGUgZm9ybWVyLgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5oOgorCisyMDE2LTExLTEx
ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhbGxvdyBs
b2FkcyB1c2luZyBIVFRQIDAuOSBhdCB0aGUgUmVzb3VyY2VIYW5kbGUvTmV0d29ya0xvYWQgbGV2
ZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDY2
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkVXNp
bmdIVFRQMDlFcnJvcik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6ZGlk
UmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24pOiBGYWlsIHRoZSBsb2FkIGlmIGl0CisgICAg
ICAgIGlzIHVzaW5nIEhUVFAgMC45LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6ZGlk
UmVjZWl2ZVJlc3BvbnNlQXN5bmMpOiBEaXR0by4KKwogMjAxNi0xMS0xMSAgTWVnYW4gR2FyZG5l
ciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU3VwcG9ydCB3
aWRlIGdhbXV0IGZvciBEcmFnIEltYWdlIFVJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAppbmRleCA5NjcyZTFlYTZlNGIzM2U4MTAxODBmMWE0MzE3NDI3NWMyM2I2NDVj
Li5hMGQ5MjYwYzFlMGMyMTg4YmEwYTZmMWU1Y2FiZjZkNzQ5ODM2YzFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTczMSwxNyArNzMxLDYgQEAgdm9pZCBE
b2N1bWVudExvYWRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwb25zZSkKICAgICB9CiAjZW5kaWYKIAotICAgIGlmIChtX3Jlc3BvbnNlLmlzSHR0cFZlcnNp
b24wXzkoKSkgewotICAgICAgICAvLyBOb24tSFRUUCByZXNwb25zZXMgYXJlIGludGVycHJldGVk
IGFzIEhUVFAvMC45IHdoaWNoIG1heSBhbGxvdyBleGZpbHRyYXRpb24gb2YgZGF0YQotICAgICAg
ICAvLyBmcm9tIG5vbi1IVFRQIHNlcnZpY2VzLiBUaGVyZWZvcmUgY2FuY2VsIGlmIHRoZSByZXF1
ZXN0IHdhcyB0byBhIG5vbi1kZWZhdWx0IHBvcnQuCi0gICAgICAgIGlmICh1cmwucG9ydCgpICYm
ICFpc0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodXJsLnBvcnQoKS52YWx1ZSgpLCB1cmwucHJvdG9j
b2woKSkpIHsKLSAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlN0b3BwZWQgZG9jdW1lbnQg
bG9hZCBmcm9tICciICsgdXJsLnN0cmluZygpICsgIicgYmVjYXVzZSBpdCBpcyB1c2luZyBIVFRQ
LzAuOSBvbiBhIG5vbi1kZWZhdWx0IHBvcnQuIjsKLSAgICAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBtZXNzYWdlLCBpZGVudGlmaWVyKTsKLSAgICAgICAgICAgIHN0b3BMb2Fk
aW5nKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBmcmFt
ZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCkuY2hlY2tDb250ZW50UG9saWN5KG1fcmVzcG9uc2Us
IFt0aGlzXShQb2xpY3lBY3Rpb24gcG9saWN5KSB7CiAgICAgICAgIGNvbnRpbnVlQWZ0ZXJDb250
ZW50UG9saWN5KHBvbGljeSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcAppbmRleCA2YTUzODIwMzQxNDJiMTBlYjcwM2MwMDcyMGM3MDg2MzcyMDgyZGY2
Li45ZTJhYmRhZGNhMTc4MWFkMTA1YzM5NDlmMmYwY2QxMGZlZWFhZDdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQzNywyNyArNDM3LDYgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHIpCiAKICAgICBtX3Jlc3BvbnNlID0gcjsKIAotICAgIGlmIChtX3Jlc3BvbnNlLmlzSHR0cFZl
cnNpb24wXzkoKSkgewotICAgICAgICBhdXRvIHVybCA9IG1fcmVzcG9uc2UudXJsKCk7Ci0gICAg
ICAgIC8vIE5vbi1IVFRQIHJlc3BvbnNlcyBhcmUgaW50ZXJwcmV0ZWQgYXMgSFRUUC8wLjkgd2hp
Y2ggbWF5IGFsbG93IGV4ZmlsdHJhdGlvbiBvZiBkYXRhCi0gICAgICAgIC8vIGZyb20gbm9uLUhU
VFAgc2VydmljZXMuIFRoZXJlZm9yZSBjYW5jZWwgaWYgdGhlIGRvY3VtZW50IHdhcyBsb2FkZWQg
d2l0aCBkaWZmZXJlbnQKLSAgICAgICAgLy8gSFRUUCB2ZXJzaW9uIG9yIGlmIHRoZSByZXNvdXJj
ZSByZXF1ZXN0IHdhcyB0byBhIG5vbi1kZWZhdWx0IHBvcnQuCi0gICAgICAgIGlmICghbV9kb2N1
bWVudExvYWRlci0+cmVzcG9uc2UoKS5pc0h0dHBWZXJzaW9uMF85KCkpIHsKLSAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlID0gIkNhbmNlbGxlZCByZXNvdXJjZSBsb2FkIGZyb20gJyIgKyB1cmwu
c3RyaW5nKCkgKyAiJyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45IGFuZCB0aGUgZG9jdW1l
bnQgd2FzIGxvYWRlZCB3aXRoIGEgZGlmZmVyZW50IEhUVFAgdmVyc2lvbi4iOwotICAgICAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIGlkZW50aWZpZXIoKSk7Ci0g
ICAgICAgICAgICBSZXNvdXJjZUVycm9yIGVycm9yKGVtcHR5U3RyaW5nKCksIDAsIHVybCwgbWVz
c2FnZSk7Ci0gICAgICAgICAgICBkaWRGYWlsKGVycm9yKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBpZiAodXJsLnBvcnQoKSAmJiAhaXNEZWZhdWx0UG9ydEZvclBy
b3RvY29sKHVybC5wb3J0KCkudmFsdWUoKSwgdXJsLnByb3RvY29sKCkpKSB7Ci0gICAgICAgICAg
ICBTdHJpbmcgbWVzc2FnZSA9ICJDYW5jZWxsZWQgcmVzb3VyY2UgbG9hZCBmcm9tICciICsgdXJs
LnN0cmluZygpICsgIicgYmVjYXVzZSBpdCBpcyB1c2luZyBIVFRQLzAuOSBvbiBhIG5vbi1kZWZh
dWx0IHBvcnQuIjsKLSAgICAgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmFkZENvbnNvbGVN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNz
YWdlLCBpZGVudGlmaWVyKCkpOwotICAgICAgICAgICAgUmVzb3VyY2VFcnJvciBlcnJvcihlbXB0
eVN0cmluZygpLCAwLCB1cmwsIG1lc3NhZ2UpOwotICAgICAgICAgICAgZGlkRmFpbChlcnJvcik7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBpZiAoRm9ybURh
dGEqIGRhdGEgPSBtX3JlcXVlc3QuaHR0cEJvZHkoKSkKICAgICAgICAgZGF0YS0+cmVtb3ZlR2Vu
ZXJhdGVkRmlsZXNJZk5lZWRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9VUkwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCmluZGV4IDcyYzhjMWJm
NjJjYzg2MWJlOGZkZTAyMTA4MGQ2NjIzMmQ2OWJkMmYuLmQ2MmEyMDdjZWU5MTJiNTE0NDI5YTgx
YWE3Zjg5NDYyNmIwMTJmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VS
TC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCkBAIC05OCw3ICs5OCw3IEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9z
dHJpbmc7IH0KIAotICAgIFN0cmluZyBzdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgodW5z
aWduZWQgbGVuZ3RoID0gMTAyNCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHN0
cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCh1bnNpZ25lZCBsZW5ndGggPSAxMDI0KSBjb25z
dDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZ1ZpZXcgcHJvdG9jb2woKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaG9zdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDk1
MmU3NDQ0YjgxOThhY2ZmNDA4YjdiZmJhOTNmODMyODRkMmJiNTIuLmUwNmZhNjU2MTdhMDQ1OTVm
NmIzYTc4ODUyNjA5M2IxZDlhM2RiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTU3NSwxMCArNTc1LDcg
QEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeVJlc3BvbnNlT25TdWNjZXNzKCkKICAg
ICAvLyBhcyBpZiB0aGUgcmVzcG9uc2UgaGFkIGEgQ29udGVudC1EaXNwb3NpdGlvbiBoZWFkZXIg
d2l0aCB0aGUgZmlsZW5hbWUgcGFyYW1ldGVyIHNldCB0byB0aGUgRmlsZSdzIG5hbWUgYXR0cmli
dXRlLgogICAgIC8vIE5vdGFibHksIHRoaXMgd2lsbCBhZmZlY3QgYSBuYW1lIHN1Z2dlc3RlZCBp
biAiRmlsZSBTYXZlIEFzIi4KIAotICAgIGlmICh1c2VzQXN5bmNDYWxsYmFja3MoKSkKLSAgICAg
ICAgY2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKHRoaXMsIFdURk1vdmUocmVzcG9u
c2UpKTsKLSAgICBlbHNlCi0gICAgICAgIGNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2UodGhp
cywgV1RGTW92ZShyZXNwb25zZSkpOworICAgIGRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJl
c3BvbnNlKSk7CiB9CiAKIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlSZXNwb25zZU9u
RXJyb3IoKQpAQCAtNjAxLDEwICs1OTgsNyBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bm90
aWZ5UmVzcG9uc2VPbkVycm9yKCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaWYgKHVz
ZXNBc3luY0NhbGxiYWNrcygpKQotICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNl
QXN5bmModGhpcywgV1RGTW92ZShyZXNwb25zZSkpOwotICAgIGVsc2UKLSAgICAgICAgY2xpZW50
KCktPmRpZFJlY2VpdmVSZXNwb25zZSh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgZGlk
UmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpKTsKIH0KIAogdm9pZCBCbG9iUmVzb3Vy
Y2VIYW5kbGU6Om5vdGlmeVJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBieXRlc1Jl
YWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCmluZGV4IDYwNDM0Y2EyODY3ZDFkODE1NGIyOGYyYjZiZjRjNGNjZGIxMjcxZjcuLjQ3
NzNkZWQ3ZjRlMWU3ODQxOWY4NGZmNDYxOGE1ZDlmNWI1ZmE2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC0xNTAsNiAr
MTUwLDI2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNsZWFyQ2xpZW50KCkKICAgICBkLT5tX2Ns
aWVudCA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVSZXNw
b25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit7CisgICAgaWYgKHJlc3BvbnNlLmlz
SHR0cFZlcnNpb24wXzkoKSkgeworICAgICAgICBhdXRvIHVybCA9IHJlc3BvbnNlLnVybCgpOwor
ICAgICAgICBPcHRpb25hbDx1aW50MTZfdD4gcG9ydCA9IHVybC5wb3J0KCk7CisgICAgICAgIGlm
IChwb3J0ICYmICFpc0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2wocG9ydC52YWx1ZSgpLCB1cmwucHJv
dG9jb2woKSkpIHsKKyAgICAgICAgICAgIGNhbmNlbCgpOworICAgICAgICAgICAgU3RyaW5nIG1l
c3NhZ2UgPSAiQ2FuY2VsbGVkIGxvYWQgZnJvbSAnIiArIHVybC5zdHJpbmdDZW50ZXJFbGxpcHNp
emVkVG9MZW5ndGgoKSArICInIGJlY2F1c2UgaXQgaXMgdXNpbmcgSFRUUC8wLjkuIjsKKyAgICAg
ICAgICAgIGQtPm1fY2xpZW50LT5kaWRGYWlsKHRoaXMsIHsgU3RyaW5nKCksIDAsIHVybCwgbWVz
c2FnZSB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAo
ZC0+bV91c2VzQXN5bmNDYWxsYmFja3MpCisgICAgICAgIGQtPm1fY2xpZW50LT5kaWRSZWNlaXZl
UmVzcG9uc2VBc3luYyh0aGlzLCBXVEZNb3ZlKHJlc3BvbnNlKSk7CisgICAgZWxzZSB7CisgICAg
ICAgIGQtPm1fY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9uc2UodGhpcywgV1RGTW92ZShyZXNwb25z
ZSkpOworICAgICAgICBwbGF0Zm9ybUNvbnRpbnVlU3luY2hyb25vdXNEaWRSZWNlaXZlUmVzcG9u
c2UoKTsKKyAgICB9Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFVU0UoQ0ZVUkxDT05O
RUNUSU9OKSAmJiAhVVNFKFNPVVApCiAvLyBSZXNvdXJjZUhhbmRsZSBuZXZlciB1c2VzIGFzeW5j
IGNsaWVudCBjYWxscyBvbiB0aGVzZSBwbGF0Zm9ybXMgeWV0Lgogdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y29udGludWVXaWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYpCkBAIC0xNzAsNiAr
MTkwLDEzIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdh
aW5zdFByb3RlY3Rpb25TcGFjZShib29sKQogI2VuZGlmCiAjZW5kaWYKIAorI2lmICFVU0UoU09V
UCkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJl
Y2VpdmVSZXNwb25zZSgpCit7CisgICAgLy8gRG8gbm90aGluZy4KK30KKyNlbmRpZgorCiBSZXNv
dXJjZVJlcXVlc3QmIFJlc291cmNlSGFuZGxlOjpmaXJzdFJlcXVlc3QoKQogewogICAgIHJldHVy
biBkLT5tX2ZpcnN0UmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCAzZDk0MmQxMTRhZjBjNzVjYWVhYzI4NTkxZmU4OTM2
NzhjZmY3NGIzLi4wZGZiZTZkOWNjMWNkOTVhZGJjYTBmMWE0MDRjMDNjNjg5ZTQ1NGUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBA
IC0xMDMsNiArMTAzLDggQEAgcHVibGljOgogICAgIFJlc291cmNlUmVxdWVzdCB3aWxsU2VuZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYsIFJlc291cmNlUmVzcG9uc2UmJik7CiAjZW5kaWYKIAor
ICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJik7CisKICAgICBi
b29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAg
ICB2b2lkIHJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYs
IGNvbnN0IENyZWRlbnRpYWwmKSBvdmVycmlkZTsKQEAgLTI0OSw2ICsyNTEsOCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAKKyAgICB2b2lk
IHBsYXRmb3JtQ29udGludWVTeW5jaHJvbm91c0RpZFJlY2VpdmVSZXNwb25zZSgpOworCiAgICAg
dm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5cGUpOwogCiAgICAgYm9vbCBzdGFydCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3Bv
bnNlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3Bv
bnNlQmFzZS5oCmluZGV4IGQ4OTY2MTVmZGZjYzQwNzMzZjE3YWZkM2M4YTdjN2VlNDhlNmQzNzAu
LmYzZDI4ODFlZGJmYTJiNjY1NTA0ZDNiZTlkYzk4MzVmYTU3ZDFjNTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgK
QEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3Ry
aW5nJiBodHRwVmVyc2lvbigpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SFRU
UFZlcnNpb24oY29uc3QgU3RyaW5nJik7Ci0gICAgYm9vbCBpc0h0dHBWZXJzaW9uMF85KCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0h0dHBWZXJzaW9uMF85KCkgY29uc3Q7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBIVFRQSGVhZGVyTWFwJiBodHRwSGVhZGVyRmllbGRz
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCmluZGV4IGEwYzZm
ODY1MDM3OGFhNTBjMTg2ZjliMGU0NjVhMjAzMzIwMzFmYTYuLmY3YTliMmUxYjI0YzA0OGY5YzA4
YjBhYTM4MmU0ZWIxYzczZWU5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVy
YXRpb25RdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNw
cApAQCAtMTYxLDcgKzE2MSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlCiAgICAgICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICNlbmRpZgogICAgICAgICAKLSAgICAgICAgbV9oYW5k
bGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgV1RGTW92ZShy
ZXNvdXJjZVJlc3BvbnNlKSk7CisgICAgICAgIG1faGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2Uo
V1RGTW92ZShyZXNvdXJjZVJlc3BvbnNlKSk7CiAgICAgfSk7CiAgICAgZGlzcGF0Y2hfc2VtYXBo
b3JlX3dhaXQobV9zZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VI
YW5kbGVBc0RlbGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
V2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZS5tbQppbmRleCA4ODVmMGMwYzg2OGUyODhh
ZDNiZTRiOTQ4YTQ4YjJhZDliZWY0NDhjLi4xY2EzMTBmMTY0OGVkNTg2ZDNjYmEwM2ZkYWFhOTU4
ZTc3NjA2MTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUubW0K
QEAgLTE2Miw3ICsxNjIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBVTlVTRURf
UEFSQU0oY29ubmVjdGlvbik7CiAjZW5kaWYKIAotICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlk
UmVjZWl2ZVJlc3BvbnNlKG1faGFuZGxlLCBXVEZNb3ZlKHJlc291cmNlUmVzcG9uc2UpKTsKKyAg
ICBtX2hhbmRsZS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzb3VyY2VSZXNwb25zZSkp
OwogfQogCiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRl
Lm1tCmluZGV4IDQ1MmQ5ZGIzMjBlMDNkNzUxOWE2MmZlOTEwNDU2MjkzMTNkNmExNTIuLjAwMmUx
MjhiNzc4MGQwMjFmNmJlYzJlYjdlYWJhYjQ2MWRjMmMyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0
aW9uUXVldWVEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KQEAg
LTE5OSw3ICsxOTksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICNlbHNlCiAgICAgICAg
IFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKICNlbmRpZgotICAgICAgICBtX2hhbmRsZS0+Y2xp
ZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZUFzeW5jKG1faGFuZGxlLCBXVEZNb3ZlKHJlc291cmNl
UmVzcG9uc2UpKTsKKyAgICAgICAgbV9oYW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3Zl
KHJlc291cmNlUmVzcG9uc2UpKTsKICAgICB9KTsKIAogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93
YWl0KG1fc2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcAppbmRleCBkODgzNDI4NzQwMzE3N2Y3YWZmYzg4N2ViMmUzNjBjYTdiM2I3NWY3Li44ODdh
OWVkNzk1ZDFjYjRlNThjY2RkZTU2ZTM4OGQ5OWNkYzBiZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcApAQCAtNDQ5LDEyICs0NDksNyBAQCBzdGF0aWMgdm9pZCBuZXh0TXVsdGlwYXJ0UmVzcG9u
c2VQYXJ0Q2FsbGJhY2soR09iamVjdCogLypzb3VyY2UqLywgR0FzeW5jUmVzdWx0KgogCiAgICAg
ZC0+bV9wcmV2aW91c1Bvc2l0aW9uID0gMDsKIAotICAgIGlmIChoYW5kbGUtPmNsaWVudCgpLT51
c2VzQXN5bmNDYWxsYmFja3MoKSkKLSAgICAgICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2
ZVJlc3BvbnNlQXN5bmMoaGFuZGxlLmdldCgpLCBSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9u
c2UpKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKGhhbmRsZS5nZXQoKSwgUmVzb3VyY2VSZXNwb25zZShkLT5tX3Jlc3BvbnNlKSk7Ci0g
ICAgICAgIGNvbnRpbnVlQWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UoaGFuZGxlLmdldCgpKTsKLSAg
ICB9CisgICAgaGFuZGxlLT5kaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZShkLT5t
X3Jlc3BvbnNlKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNlbmRSZXF1ZXN0Q2FsbGJhY2soR09iamVj
dCosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciBkYXRhKQpAQCAtNTEzLDEyICs1MDgs
MTIgQEAgc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RDYWxsYmFjayhHT2JqZWN0KiwgR0FzeW5jUmVz
dWx0KiByZXN1bHQsIGdwb2ludGVyIGRhdGEpCiAgICAgZWxzZQogICAgICAgICBkLT5tX2lucHV0
U3RyZWFtID0gaW5wdXRTdHJlYW07CiAKLSAgICBpZiAoZC0+Y2xpZW50KCktPnVzZXNBc3luY0Nh
bGxiYWNrcygpKQotICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2VB
c3luYyhoYW5kbGUuZ2V0KCksIFJlc291cmNlUmVzcG9uc2UoZC0+bV9yZXNwb25zZSkpOwotICAg
IGVsc2UgewotICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlUmVzcG9uc2UoaGFu
ZGxlLmdldCgpLCBSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2UpKTsKLSAgICAgICAgY29u
dGludWVBZnRlckRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUuZ2V0KCkpOwotICAgIH0KKyAgICBo
YW5kbGUtPmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlKGQtPm1fcmVzcG9uc2Up
KTsKK30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Db250aW51ZVN5bmNocm9ub3Vz
RGlkUmVjZWl2ZVJlc3BvbnNlKCkKK3sKKyAgICBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3Bv
bnNlKHRoaXMpOwogfQogCiBzdGF0aWMgdm9pZCBjb250aW51ZUFmdGVyRGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBlOTQ2ZjQxMDc4NzAyODQwMGNiY2E3
NzUwOGIxZDAzYzk1NGM4ODA5Li4zMTI1ODg4MzM1NTBlYTFmODI0N2MzN2M5ZmQzOTdlODVhOGMx
ZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5jcHAKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2tCbG9i
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Nlc3Npb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC05Miw2ICs5NCwyMSBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFzazo6c2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlIHR5cGUpCiAgICAgbV9mYWlsdXJl
VGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIE5ldHdvcmtEYXRhVGFzazo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0
aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChtX2NsaWVudCk7
CisgICAgaWYgKHJlc3BvbnNlLmlzSHR0cFZlcnNpb24wXzkoKSkgeworICAgICAgICBhdXRvIHVy
bCA9IHJlc3BvbnNlLnVybCgpOworICAgICAgICBPcHRpb25hbDx1aW50MTZfdD4gcG9ydCA9IHVy
bC5wb3J0KCk7CisgICAgICAgIGlmIChwb3J0ICYmICFpc0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2wo
cG9ydC52YWx1ZSgpLCB1cmwucHJvdG9jb2woKSkpIHsKKyAgICAgICAgICAgIGNhbmNlbCgpOwor
ICAgICAgICAgICAgbV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKHsgU3RyaW5nKCksIDAs
IHVybCwgIkNhbmNlbGxlZCBsb2FkIGZyb20gJyIgKyB1cmwuc3RyaW5nQ2VudGVyRWxsaXBzaXpl
ZFRvTGVuZ3RoKCkgKyAiJyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45LiIgfSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgbV9jbGllbnQtPmRpZFJlY2Vp
dmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdURk1vdmUocmVzcG9uc2UpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKIHZvaWQgTmV0d29ya0RhdGFUYXNrOjpmYWlsdXJlVGltZXJG
aXJlZCgpCiB7CiAgICAgUmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4gcHJvdGVjdGVkVGhpcyh0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgK
aW5kZXggNjZlY2FhOTE4NTAxYTc2YjY2MDdhMmQxZjQ5YTZlNWNiNmI4OWQ1Yy4uYTU3YTI4OTM0
YjA5MTVjNjEzYWQzZTYzMzUxZWJmOWZkY2U3OTM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVBbmRDYW5jZWwoKSA9IDA7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJik7CisK
ICAgICBlbnVtIGNsYXNzIFN0YXRlIHsKICAgICAgICAgUnVubmluZywKICAgICAgICAgU3VzcGVu
ZGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Rh
dGFUYXNrQmxvYi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0
YVRhc2tCbG9iLmNwcAppbmRleCAyM2FjYjE4MDAxYTUzY2FiZDQ5MDQwM2ZjMzRlMmE5ZDQyNDEz
Mjc4Li42ZjRiYmY1OWExMmI1MTNmYzY0YzYyZWFjZDU4NGI0MGFiYzdlODY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNw
cApAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQmxvYjo6cmVzdW1lKCkK
ICAgICAgICAgLy8gUGFyc2UgdGhlICJSYW5nZSIgaGVhZGVyIHdlIGNhcmUgYWJvdXQuCiAgICAg
ICAgIFN0cmluZyByYW5nZSA9IG1fZmlyc3RSZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZChIVFRQSGVh
ZGVyTmFtZTo6UmFuZ2UpOwogICAgICAgICBpZiAoIXJhbmdlLmlzRW1wdHkoKSAmJiAhcGFyc2VS
YW5nZShyYW5nZSwgbV9yYW5nZU9mZnNldCwgbV9yYW5nZUVuZCwgbV9yYW5nZVN1ZmZpeExlbmd0
aCkpIHsKLSAgICAgICAgICAgIGRpZFJlY2VpdmVSZXNwb25zZShFcnJvcjo6UmFuZ2VFcnJvcik7
CisgICAgICAgICAgICBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShFcnJvcjo6UmFuZ2VFcnJv
cik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTg1LDcgKzE4NSw3IEBA
IHZvaWQgTmV0d29ya0RhdGFUYXNrQmxvYjo6Z2V0U2l6ZUZvck5leHQoKQogICAgIC8vIERvIHdl
IGZpbmlzaCB2YWxpZGF0aW5nIGFuZCBjb3VudGluZyBzaXplIGZvciBhbGwgaXRlbXM/CiAgICAg
aWYgKG1fc2l6ZUl0ZW1Db3VudCA+PSBtX2Jsb2JEYXRhLT5pdGVtcygpLnNpemUoKSkgewogICAg
ICAgICBzZWVrKCk7Ci0gICAgICAgIGRpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICBkaXNw
YXRjaERpZFJlY2VpdmVSZXNwb25zZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0y
NjUsOSArMjY1LDkgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tCbG9iOjpzZWVrKCkKICAgICAgICAg
bV90b3RhbFJlbWFpbmluZ1NpemUgLT0gbV9yYW5nZU9mZnNldDsKIH0KIAotdm9pZCBOZXR3b3Jr
RGF0YVRhc2tCbG9iOjpkaWRSZWNlaXZlUmVzcG9uc2UoRXJyb3IgZXJyb3JDb2RlKQordm9pZCBO
ZXR3b3JrRGF0YVRhc2tCbG9iOjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShFcnJvciBlcnJv
ckNvZGUpCiB7Ci0gICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tC
bG9iOjpkaWRSZWNlaXZlUmVzcG9uc2UoJXUpIiwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGVycm9yQ29kZSkpOworICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVwIC0gTmV0d29ya0RhdGFU
YXNrQmxvYjo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoJXUpIiwgdGhpcywgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGVycm9yQ29kZSkpOwogCiAgICAgUmVmPE5ldHdvcmtEYXRhVGFza0Jsb2I+
IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UobV9m
aXJzdFJlcXVlc3QudXJsKCksIGVycm9yQ29kZSAhPSBFcnJvcjo6Tm9FcnJvciA/ICJ0ZXh0L3Bs
YWluIiA6IG1fYmxvYkRhdGEtPmNvbnRlbnRUeXBlKCksIGVycm9yQ29kZSAhPSBFcnJvcjo6Tm9F
cnJvciA/IDAgOiBtX3RvdGFsUmVtYWluaW5nU2l6ZSwgU3RyaW5nKCkpOwpAQCAtMzAxLDcgKzMw
MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQmxvYjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKEVycm9y
IGVycm9yQ29kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdURk1vdmUocmVzcG9uc2UpLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGVycm9yQ29kZV0oUG9saWN5QWN0
aW9uIHBvbGljeUFjdGlvbikgeworICAgIGRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlc3Bv
bnNlKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBlcnJv
ckNvZGVdKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24pIHsKICAgICAgICAgTE9HKE5ldHdvcmtT
ZXNzaW9uLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tCbG9iOjpkaWRSZWNlaXZlUmVzcG9uc2UgY29t
cGxldGlvbkhhbmRsZXIgKCV1KSIsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihwb2xpY3lB
Y3Rpb24pKTsKIAogICAgICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6Q2FuY2VsaW5nIHx8IG1f
c3RhdGUgPT0gU3RhdGU6OkNvbXBsZXRlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oCmluZGV4IDQ4Y2U1MDQ2MzJiODNmNjUx
MTJiYjgzOWY2YjE2MzE0NWYyOWUxNTkuLjUxOTM1OTQ0OTU1M2Q4OTYyNzlhNjdlNGM3NDMyZTE1
NWM0MGY1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFza0Jsb2IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2tCbG9iLmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
Y2xlYXJTdHJlYW0oKTsKICAgICB2b2lkIGdldFNpemVGb3JOZXh0KCk7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2UoRXJyb3IgPSBFcnJvcjo6Tm9FcnJvcik7CisgICAgdm9pZCBkaXNwYXRj
aERpZFJlY2VpdmVSZXNwb25zZShFcnJvciA9IEVycm9yOjpOb0Vycm9yKTsKICAgICB2b2lkIHNl
ZWsoKTsKICAgICB2b2lkIGNvbnN1bWVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBieXRlc1Jl
YWQpOwogICAgIHZvaWQgcmVhZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggM2VkODAyODYw
NzFhNDYxYzAzN2M4OTZlNDNiNjI3NDBjODhhNWU3OC4uY2M2MzcyNzEwYjVhYjM0YjA2NWExMjdm
NzhhYjgxMWRiMjIxZDk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC01MSw3ICs1MSw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1
aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5n
ZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYm
KTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYp
OwogCiAgICAgdm9pZCB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBsZXRp
b25IYW5kbGVyJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCBhNTEyYTJjMzljZTliMjk5
YTBhNGVhMThmMjBjNjhlYmI3MzFjMDI2Li40Y2VmYThlYjM1N2FlNDRiZDI1YTU3NDZiNDVmZjlh
MDhiNGUyMGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMTU1LDE2ICsxNTUsNiBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiBlcgogICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVXaXRo
RXJyb3IoZXJyb3IpOwogfQogCi12b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWRSZWNlaXZl
UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNwb25zZUNv
bXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV1RG
TW92ZShyZXNwb25zZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICBlbHNlIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6UG9saWN5SWdub3JlKTsKLSAgICB9Ci19Ci0KIHZvaWQg
TmV0d29ya0RhdGFUYXNrQ29jb2E6OmRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+JiYgZGF0YSkKIHsKICAgICBpZiAobV9jbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApp
bmRleCA5MzAxNWE3OTdkYjcxMGM1NjI1NGE5NjRmYjVjZTBlNDRmODgwNDhmLi4zYjU1YzJkZDE3
ZmU5ZjYzYTY0NTgxMWRjMzAyN2Q2ZGU5NTcwMzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAg
LTM0NSwxNSArMzQ1LDE0IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkU2VuZFJlcXVl
c3QoR1JlZlB0cjxHSW5wdXRTdHJlYW0+JiYgaW5wdXRTdHJlYW0pCiAgICAgICAgIG1faW5wdXRT
dHJlYW0gPSBXVEZNb3ZlKGlucHV0U3RyZWFtKTsKICAgICB9CiAKLSAgICBkaWRSZWNlaXZlUmVz
cG9uc2UoKTsKKyAgICBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZSgpOwogfQogCi12b2lkIE5l
dHdvcmtEYXRhVGFza1NvdXA6OmRpZFJlY2VpdmVSZXNwb25zZSgpCit2b2lkIE5ldHdvcmtEYXRh
VGFza1NvdXA6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKCkKIHsKICAgICBBU1NFUlQoIW1f
cmVzcG9uc2UuaXNOdWxsKCkpOwogCi0gICAgYXV0byByZXNwb25zZSA9IFJlc291cmNlUmVzcG9u
c2UobV9yZXNwb25zZSk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtT
ZXNzaW9uKFdURk1vdmUocmVzcG9uc2UpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXShQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uKSB7CisgICAgZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlUmVzcG9uc2UobV9yZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyldKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24pIHsKICAgICAgICAgaWYg
KG1fc3RhdGUgPT0gU3RhdGU6OkNhbmNlbGluZyB8fCBtX3N0YXRlID09IFN0YXRlOjpDb21wbGV0
ZWQpIHsKICAgICAgICAgICAgIGNsZWFyUmVxdWVzdCgpOwogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtNzcyLDcgKzc3MSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkUmVxdWVzdE5l
eHRQYXJ0KEdSZWZQdHI8R0lucHV0U3RyZWFtPiYmIGlucHV0U3RyZWFtCiAgICAgbV9yZXNwb25z
ZSA9IFJlc291cmNlUmVzcG9uc2UoKTsKICAgICBtX3Jlc3BvbnNlLnNldFVSTChtX2ZpcnN0UmVx
dWVzdC51cmwoKSk7CiAgICAgbV9yZXNwb25zZS51cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJz
KHNvdXBfbXVsdGlwYXJ0X2lucHV0X3N0cmVhbV9nZXRfaGVhZGVycyhtX211bHRpcGFydElucHV0
U3RyZWFtLmdldCgpKSk7Ci0gICAgZGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgZGlzcGF0Y2hE
aWRSZWNlaXZlUmVzcG9uc2UoKTsKIH0KIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRG
aW5pc2hSZXF1ZXN0TmV4dFBhcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaAppbmRleCAwYmZlNTk1MzU2YzYw
ZWJjMDdmNTM0NmY1ZGYyOWJlY2NmOTc5ZjE0Li45YTE1NTMyNTcyYjgyZmNlMDdhMjI3OWVhNGRh
YTJiN2Y3N2Q2MzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgY2xlYXJSZXF1ZXN0KCk7CiAgICAgc3RhdGljIHZvaWQgc2VuZFJlcXVlc3RD
YWxsYmFjayhTb3VwUmVxdWVzdCosIEdBc3luY1Jlc3VsdCosIE5ldHdvcmtEYXRhVGFza1NvdXAq
KTsKICAgICB2b2lkIGRpZFNlbmRSZXF1ZXN0KEdSZWZQdHI8R0lucHV0U3RyZWFtPiYmKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZl
UmVzcG9uc2UoKTsKIAogICAgIHN0YXRpYyB2b2lkIHRsc0Vycm9yc0NoYW5nZWRDYWxsYmFjayhT
b3VwTWVzc2FnZSosIEdQYXJhbVNwZWMqLCBOZXR3b3JrRGF0YVRhc2tTb3VwKik7CiAgICAgdm9p
ZCB0bHNFcnJvcnNDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjBiNzNhNmUyMTdhNWRmYzU4MWE5OTliNzdm
YjZiNjkwMTNhMTJmNi4uMmU1ZDVmYzRkNzRmOGIzNjk1MjgxOGFkZmE5N2QzNDI0ZjYzYTE3NiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE2LTExLTE0ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBEaXNhbGxvdyBsb2FkcyB1c2luZyBIVFRQIDAuOSBhdCB0
aGUgUmVzb3VyY2VIYW5kbGUvTmV0d29ya0RhdGFUYXNrIGxldmVsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ2NjIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSB0aGF0
IHdlIGJsb2NrIGEgc3luY2hyb25vdXMgWEhSIGxvYWQgdXNpbmcgSFRUUCAwLjkuCisgICAgICAg
IFJlbmFtZWQgdGVzdCBpbWFnZS1kZWZhdWx0LXBvcnQtYmxvY2tlZC5odG1sIHRvIGltYWdlLWRl
ZmF1bHQtcG9ydC1hbGxvd2VkLmh0bWwKKyAgICAgICAgYXMgd2Ugbm93IGFsbG93IGEgc3VicmVz
b3VyY2UgbG9hZCB1c2luZyBIVFRQIDAuOSBvbiBhIGRlZmF1bHQgcG9ydCByZWdhcmRsZXNzCisg
ICAgICAgIG9mIHRoZSBIVFRQIHZlcnNpb24gdGhlIGVtYmVkZGluZyBwYWdlIHVzZWQuCisKKyAg
ICAgICAgVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25zIGFzIERSVC9XVFIgZG8gbm90IGVtaXQgYSBs
b2NhbGl6ZWQgZGVzY3JpcHRpb24gZm9yIHRoZQorICAgICAgICBlcnJvciBhc3NvY2lhdGVkIHdp
dGggYSBsb2FkIGZhaWx1cmUuIE5vdGUgdGhhdCBhIG1lc3NhZ2UgaXMgZW1pdHRlZCB0bworICAg
ICAgICBXZWIgSW5zcGVjdG9yIGNvbnNvbGUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2h0dHAtMC45L2lmcmFtZS1ibG9ja2VkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2lmcmFtZS1ibG9ja2VkLmh0bWw6IER1bXAgZnJhbWUg
bG9hZCBjYWxsYmFja3MKKyAgICAgICAgdG8gc2VlIHRoYXQgbG9hZCB3YXMgY2FuY2VsbGVkIGFz
IHRoZXJlIGlzIG5vIG90aGVyIHVuaXF1ZSB2aXNpYmxlIGluZGljYXRpb24KKyAgICAgICAgb2Yg
c3VjY2Vzcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWJs
b2NrZWQtZXhwZWN0ZWQudHh0OiBVcGRhdGUgZXhwZWN0ZWQgcmVzdWx0LgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWFsbG93ZWQtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9o
dHRwLTAuOS9pbWFnZS1kZWZhdWx0LXBvcnQtYmxvY2tlZC1leHBlY3RlZC50eHQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZhdWx0LXBvcnQtYWxsb3dl
ZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRw
LTAuOS9pbWFnZS1kZWZhdWx0LXBvcnQtYmxvY2tlZC5odG1sLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLWV4cGVj
dGVkLnR4dDogVXBkYXRlIGV4cGVjdGVkIHJlc3VsdC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2h0dHAtMC45L2ltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5odG1sOiBEaXR0
by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3NhbmRib3gtc2hvdWxk
LW5vdC1wZXJzaXN0LW9uLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3dvcmtlci1jb25uZWN0LXNyYy1ibG9ja2Vk
LWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9odHRw
LTAuOS93b3JrZXItaW1wb3J0U2NyaXB0cy1ibG9ja2VkLWV4cGVjdGVkLnR4dDogRGl0dG8uCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS94aHItYXN5bmNocm9ub3VzLWJs
b2NrZWQtZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2h0dHAtMC45L3hoci1ibG9ja2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS94aHItYmxvY2tlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczogU2tpcCB0aGUgSFRUUC0wLjkgdGVz
dHMgaW4gV2ViS2l0MiB0aGF0IHVzZSBpbnRlcm5hbHMucmVnaXN0ZXJEZWZhdWx0UG9ydEZvclBy
b3RvY29sKCkuCisgICAgICAgIFRoZSBmdW5jdGlvbiBpbnRlcm5hbHMucmVnaXN0ZXJEZWZhdWx0
UG9ydEZvclByb3RvY29sIG9ubHkgdXBkYXRlcyB0aGUgZGVmYXVsdC1wb3J0LXRvLXByb3RvY29s
IG1hcCBpbiB0aGUgV2ViQ29udGVudAorICAgICAgICBwcm9jZXNzLiBIb3dldmVyIG5ldHdvcmsg
bG9hZHMgaW4gV2ViS2l0MiBvY2N1ciBpbiB0aGUgTmV0d29ya1Byb2Nlc3MuIEZ1cnRoZXIgaW52
ZXN0aWdhdGlvbiBpcyBuZWVkZWQgdG8gZGV0ZXJtaW5lCisgICAgICAgIHRoZSBiZXN0IHdheSB0
byBzdXBwb3J0IHRlc3Rpbmcgd2l0aCBkZWZhdWx0IHBvcnRzLiBJZGVhbGx5LCB3ZSB3b3VsZCBy
dW4gYW4gSFRUUCBzZXJ2ZXIgb24gcG9ydCA4MCBmb3IgdGVzdGluZyBhbmQKKyAgICAgICAgcmVt
b3ZlIHRoZSBuZWVkIGZvciBpbnRlcm5hbHMucmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3RvY29s
KCkuCisKIDIwMTYtMTEtMTEgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGlvcy1zaW11bGF0b3IgYmFzZWxpbmUgZm9yIGNvbXBvc2l0aW5nL3RpbGlu
Zy92aXNpYmxlcmVjdC1hY2N1bXVsYXRlZC1vZmZzZXQuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaWZyYW1lLWJsb2NrZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pZnJhbWUt
YmxvY2tlZC1leHBlY3RlZC50eHQKaW5kZXggMDRjYzMzYzg4NjU2OGIwYmMyOWJhMmRmZTUzMWI1
MjE5ODIwYWRkYS4uYjZlNGI5YWUzYTMzZGFhNWZhZDYxNmE4MWFhZjc4MTgxOTRlNGJhMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pZnJhbWUt
YmxvY2tlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9odHRwLTAuOS9pZnJhbWUtYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw4IEBACi1D
T05TT0xFIE1FU1NBR0U6IFN0b3BwZWQgZG9jdW1lbnQgbG9hZCBmcm9tICdodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25waC1mYWlsLnBsJyBiZWNhdXNl
IGl0IGlzIHVzaW5nIEhUVFAvMC45IG9uIGEgbm9uLWRlZmF1bHQgcG9ydC4KK2ZyYW1lICI8IS0t
ZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4g
ZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3IK
K21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKIAogCiAtLS0tLS0tLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pZnJhbWUtYmxv
Y2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pZnJh
bWUtYmxvY2tlZC5odG1sCmluZGV4IGI3ZGYyZmIxZjMzYTUwZGM2MzU1NTgyOTEwYTQ5ZDdlNTdm
MjYwN2MuLmU0NWI5ZjA0ZWUzOThmYjg2YjZhM2I2MTNiNzNjOGZkMDA2Y2VlYmEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaWZyYW1lLWJsb2Nr
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2lm
cmFtZS1ibG9ja2VkLmh0bWwKQEAgLTUsNiArNSw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVubmVyLmR1bXBDaGls
ZEZyYW1lc0FzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcEZyYW1lTG9hZENhbGxiYWNrcygp
OwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1ibG9ja2VkLWV4cGVjdGVk
LnR4dAppbmRleCA5NzFmOGFlNjA2ZjE0Nzc3MjJiMzg1N2MxYmM4NGMxNTIxODJlYmM0Li45Yzcw
MzIxMTg4OWE4OWZlOTA4MmI5OThhNGRjZWU3M2RhNzdhY2QyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWJsb2NrZWQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2Ut
YmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwyIEBACi1DT05TT0xFIE1FU1NBR0U6IENh
bmNlbGxlZCByZXNvdXJjZSBsb2FkIGZyb20gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0
eS9odHRwLTAuOS9yZXNvdXJjZXMvbnBoLWltYWdlLnBsJyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhU
VFAvMC45IGFuZCB0aGUgZG9jdW1lbnQgd2FzIGxvYWRlZCB3aXRoIGEgZGlmZmVyZW50IEhUVFAg
dmVyc2lvbi4KIEFMRVJUOiBQQVNTCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWFsbG93ZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZh
dWx0LXBvcnQtYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM3MDMyMTE4ODlhODlm
ZTkwODJiOTk4YTRkY2VlNzNkYTc3YWNkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWFsbG93ZWQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IFBBU1MKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1kZWZhdWx0LXBv
cnQtYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAu
OS9pbWFnZS1kZWZhdWx0LXBvcnQtYWxsb3dlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxNDdhNTViMGNi
NTAyMDQ5MzlhNGQ5ODQ4NTQ4ODZjMTcxZDVkODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWRlZmF1bHQtcG9ydC1hbGxv
d2VkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMu
cmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3RvY29sKDgwMDAsICJodHRwIik7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9InJlc291cmNlcy9ucGgtaW1hZ2UucGwiIG9u
bG9hZD0iYWxlcnQoJ1BBU1MnKSIgb25lcnJvcj0iYWxlcnQoJ0ZBSUwnKSI+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAt
MC45L2ltYWdlLWRlZmF1bHQtcG9ydC1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWJsb2NrZWQt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzFmOGFlNjA2ZjE0
Nzc3MjJiMzg1N2MxYmM4NGMxNTIxODJlYmM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0w
LjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWJsb2NrZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCByZXNvdXJjZSBsb2Fk
IGZyb20gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJjZXMv
bnBoLWltYWdlLnBsJyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45IGFuZCB0aGUgZG9jdW1l
bnQgd2FzIGxvYWRlZCB3aXRoIGEgZGlmZmVyZW50IEhUVFAgdmVyc2lvbi4KLUFMRVJUOiBQQVNT
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkv
aW1hZ2UtZGVmYXVsdC1wb3J0LWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWJsb2NrZWQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM2MmUwNGRhMDZkOGI1NzNlMjJhNjg5OTBiMmZlOWI3
MzkyZjQxOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLWRlZmF1bHQtcG9y
dC1ibG9ja2VkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgICAgIGludGVybmFscy5yZWdpc3RlckRlZmF1bHRQb3J0Rm9yUHJvdG9jb2woODAwMCwg
Imh0dHAiKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08aW1nIHNyYz0icmVzb3Vy
Y2VzL25waC1pbWFnZS5wbCIgb25sb2FkPSJhbGVydCgnRkFJTCcpIiBvbmVycm9yPSJhbGVydCgn
UEFTUycpIj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1h
Z2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCAyNDJhNjkxYmEy
ZTE4OWFkMDgwZjFkZmVlOWEyNzdkMWExYmYzMjk2Li4wOGI5NTQyM2IyMDk4YzViYTUzNmEwYzQz
NmFmYWI2ODk1OTZmODI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2h0dHAtMC45L2ltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1vbi1I
VFRQLTAuOS1wYWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMTAgQEAKK2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJjZXMvbnBoLWltYWdlLW9u
LUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5wbCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0
IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25w
aC1pbWFnZS1vbi1IVFRQLTAuOS1wYWdlLWJsb2NrZWQucGwsIG1haW4gZG9jdW1lbnQgVVJMIGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1vbi1IVFRQLTAuOS1w
YWdlLWJsb2NrZWQuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxs
KQoraHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLW9uLUhUVFAt
MC45LXBhZ2UtYmxvY2tlZC5odG1sIC0gZGlkRmluaXNoTG9hZGluZworaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L2h0dHAtMC45L3Jlc291cmNlcy9ucGgtaW1hZ2Utb24tSFRUUC0wLjkt
cGFnZS1ibG9ja2VkLnBsIC0gZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJjZXMvbnBoLWltYWdlLW9u
LUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5wbCwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CiBDT05TT0xF
IE1FU1NBR0U6IFNhbmRib3hpbmcgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRw
LTAuOS9yZXNvdXJjZXMvbnBoLWltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5wbCcgYmVj
YXVzZSBpdCBpcyB1c2luZyBIVFRQLzAuOS4KLUNPTlNPTEUgTUVTU0FHRTogQ2FuY2VsbGVkIHJl
c291cmNlIGxvYWQgZnJvbSAnaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L2h0dHAtMC45
L3Jlc291cmNlcy9ucGgtaW1hZ2UucGwnIGJlY2F1c2UgaXQgaXMgdXNpbmcgSFRUUC8wLjkgb24g
YSBub24tZGVmYXVsdCBwb3J0LgoraHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L2h0dHAt
MC45L3Jlc291cmNlcy9ucGgtaW1hZ2UucGwgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVz
dCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L2h0dHAtMC45L3Jlc291cmNlcy9u
cGgtaW1hZ2UucGwsIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS9odHRwLTAuOS9pbWFnZS1vbi1IVFRQLTAuOS1wYWdlLWJsb2NrZWQuaHRtbCwgaHR0cCBt
ZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQoraHR0cDovLzEyNy4wLjAuMTo4MDAw
L3NlY3VyaXR5L2h0dHAtMC45L3Jlc291cmNlcy9ucGgtaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1i
bG9ja2VkLnBsIC0gZGlkRmluaXNoTG9hZGluZworaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3Vy
aXR5L2h0dHAtMC45L3Jlc291cmNlcy9ucGgtaW1hZ2UucGwgLSBkaWRGYWlsTG9hZGluZ1dpdGhF
cnJvcjogPE5TRXJyb3IgZG9tYWluICwgY29kZSAwLCBmYWlsaW5nIFVSTCAiaHR0cDovLzEyNy4w
LjAuMTo4MDgwL3NlY3VyaXR5L2h0dHAtMC45L3Jlc291cmNlcy9ucGgtaW1hZ2UucGwiPgogCiAK
IC0tLS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0
dHAtMC45L2ltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1vbi1IVFRQLTAuOS1wYWdlLWJsb2Nr
ZWQuaHRtbAppbmRleCAwMjNmYTRkNjkwNWFiODkwNGZkMDQ1NTgxYjRkODc3YWQyMjUwNmE0Li40
YjljYzA2M2VmODJmMzE0YjJiNWE3OTljNjc5NWIxOWQxZWFiZTgxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLW9uLUhUVFAtMC45LXBh
Z2UtYmxvY2tlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0
cC0wLjkvaW1hZ2Utb24tSFRUUC0wLjktcGFnZS1ibG9ja2VkLmh0bWwKQEAgLTUsNiArNSw3IEBA
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIHRlc3RSdW5uZXIu
ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOwogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJEZWZhdWx0UG9ydEZvclByb3RvY29sKDgwMDAsICJo
dHRwIik7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0
dHAtMC45L3NhbmRib3gtc2hvdWxkLW5vdC1wZXJzaXN0LW9uLW5hdmlnYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9zYW5kYm94LXNo
b3VsZC1ub3QtcGVyc2lzdC1vbi1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBhMzkwMDJm
YjBiZDgyZGZjYmVmNjg5YzFhNDA0MGZjYmQxNjhiMmI5Li43ZWYyMmU5YTQzMWFkMDI3MjcxM2I3
MWZkYzg3OTQwMTZjOGVmMTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2h0dHAtMC45L3NhbmRib3gtc2hvdWxkLW5vdC1wZXJzaXN0LW9uLW5hdmlnYXRpb24t
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0w
Ljkvc2FuZGJveC1zaG91bGQtbm90LXBlcnNpc3Qtb24tbmF2aWdhdGlvbi1leHBlY3RlZC50eHQK
QEAgLTEsMiArMSBAQAotQ09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgcmVzb3VyY2UgbG9hZCBm
cm9tICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25w
aC1pbWFnZS5wbCcgYmVjYXVzZSBpdCBpcyB1c2luZyBIVFRQLzAuOSBhbmQgdGhlIGRvY3VtZW50
IHdhcyBsb2FkZWQgd2l0aCBhIGRpZmZlcmVudCBIVFRQIHZlcnNpb24uCiBQQVNTCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3dvcmtlci1jb25u
ZWN0LXNyYy1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvaHR0cC0wLjkvd29ya2VyLWNvbm5lY3Qtc3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGRlMzM2MDRlNDcxYjQxYzkxMzMyODg4ZjQ0YzcwZDYwODc5Yjc3ZDEuLjljNzAzMjExODg5
YTg5ZmU5MDgyYjk5OGE0ZGNlZTczZGE3N2FjZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkvd29ya2VyLWNvbm5lY3Qtc3JjLWJsb2NrZWQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkv
d29ya2VyLWNvbm5lY3Qtc3JjLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMiBAQAot
Q09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgcmVzb3VyY2UgbG9hZCBmcm9tICdodHRwOi8vMTI3
LjAuMC4xOjgwMDAvc2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25waC13b3JrZXItZmFpbC5w
bCcgYmVjYXVzZSBpdCBpcyB1c2luZyBIVFRQLzAuOSBhbmQgdGhlIGRvY3VtZW50IHdhcyBsb2Fk
ZWQgd2l0aCBhIGRpZmZlcmVudCBIVFRQIHZlcnNpb24uCiBBTEVSVDogUEFTUwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3dvcmtlci1pbXBv
cnRTY3JpcHRzLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9odHRwLTAuOS93b3JrZXItaW1wb3J0U2NyaXB0cy1ibG9ja2VkLWV4cGVjdGVkLnR4
dAppbmRleCBkZTMzNjA0ZTQ3MWI0MWM5MTMzMjg4OGY0NGM3MGQ2MDg3OWI3N2QxLi45YzcwMzIx
MTg4OWE4OWZlOTA4MmI5OThhNGRjZWU3M2RhNzdhY2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3dvcmtlci1pbXBvcnRTY3JpcHRzLWJsb2Nr
ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0
cC0wLjkvd29ya2VyLWltcG9ydFNjcmlwdHMtYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTEsMyAr
MSwyIEBACi1DT05TT0xFIE1FU1NBR0U6IENhbmNlbGxlZCByZXNvdXJjZSBsb2FkIGZyb20gJ2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9odHRwLTAuOS9yZXNvdXJjZXMvbnBoLXdvcmtl
ci1mYWlsLnBsJyBiZWNhdXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45IGFuZCB0aGUgZG9jdW1lbnQg
d2FzIGxvYWRlZCB3aXRoIGEgZGlmZmVyZW50IEhUVFAgdmVyc2lvbi4KIEFMRVJUOiBQQVNTCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkveGhy
LWFzeW5jaHJvbm91cy1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvaHR0cC0wLjkveGhyLWFzeW5jaHJvbm91cy1ibG9ja2VkLWV4cGVjdGVkLnR4
dAppbmRleCA5ZjQwMDZhMmZmMDJjZGI4ZTA0OGJkMzVmOTYxY2RiYTA4ZGRlMzQxLi45YzcwMzIx
MTg4OWE4OWZlOTA4MmI5OThhNGRjZWU3M2RhNzdhY2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3hoci1hc3luY2hyb25vdXMtYmxvY2tlZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAu
OS94aHItYXN5bmNocm9ub3VzLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMiBAQAot
Q09OU09MRSBNRVNTQUdFOiBDYW5jZWxsZWQgcmVzb3VyY2UgbG9hZCBmcm9tICdodHRwOi8vMTI3
LjAuMC4xOjgwMDAvc2VjdXJpdHkvaHR0cC0wLjkvcmVzb3VyY2VzL25waC1mYWlsLnBsJyBiZWNh
dXNlIGl0IGlzIHVzaW5nIEhUVFAvMC45IGFuZCB0aGUgZG9jdW1lbnQgd2FzIGxvYWRlZCB3aXRo
IGEgZGlmZmVyZW50IEhUVFAgdmVyc2lvbi4KIEFMRVJUOiBQQVNTCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkveGhyLWJsb2NrZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS94aHItYmxv
Y2tlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM3MDMyMTE4ODlhODlmZTkwODJiOTk4YTRk
Y2VlNzNkYTc3YWNkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaHR0cC0wLjkveGhyLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBA
QAorQUxFUlQ6IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9odHRwLTAuOS94aHItYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9odHRwLTAuOS94aHItYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4MWE1YTA5ZDVj
OTRhNmVhNDdiOTRiNTc1MDg2MGJiNzk3ZGZjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2h0dHAtMC45L3hoci1ibG9ja2VkLmh0bWwKQEAgLTAs
MCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorY29uc3QgaXNBc3luY2hyb25vdXMgPSBm
YWxzZTsKK3ZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7Cit0cnkgeworICAgIHhoci5vcGVu
KCJHRVQiLCAicmVzb3VyY2VzL25waC1mYWlsLnBsIiwgaXNBc3luY2hyb25vdXMpOworICAgIHho
ci5zZW5kKCk7CisKKyAgICBhbGVydCgiRkFJTCIpOworfSBjYXRjaCAoZSkgeworICAgIC8vIEZJ
WE1FOiBBc3NlcnQgdGhhdCBhIHNwZWNpZmljIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICAgYWxl
cnQoIlBBU1MiKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNGE5NWZiYjdlMWZjMzlmYzUyMzU4
NDAwYjg3ZjkxYzQyNTIyYzgyLi5jZTA4OGY3NjBmYWI1NzI1YTczMjhjZDQ3ZjZjM2E2MzhmZGVj
M2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTQ4
LDYgKzU0OCwxNSBAQCBmYXN0L3ByZWxvYWRlci9kb2N1bWVudC13cml0ZS0yLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMj
IFNUQVJUIE9GICg0KSBGZWF0dXJlcyB0aGF0IGFyZSBub3Qgc3VwcG9ydGVkIGluIFdlYktpdDIg
YW5kIGxpa2VseSBuZXZlciB3aWxsIGJlCiAKKyMgSW50ZXJuYWxzLnJlZ2lzdGVyRGVmYXVsdFBv
cnRGb3JQcm90b2NvbCgpIGRvZXMgbm90IGFmZmVjdCBOZXR3b3JrUHJvY2Vzcy4gV2Ugc2hvdWxk
CisjIGxvb2sgdG8gcmVtb3ZlIGl0IGFuZCB3cml0ZSB0aGVzZSB0ZXN0IHRvIG1ha2UgdXNlIG9m
IGFuIEhUVFAgc2VydmVyIHJ1bm5pbmcgb24gcG9ydCA4MC4KK2h0dHAvdGVzdHMvc2VjdXJpdHkv
aHR0cC0wLjkvZGVmYXVsdC1wb3J0LXBsdWdpbi1ibG9ja2VkLmh0bWwKK2h0dHAvdGVzdHMvc2Vj
dXJpdHkvaHR0cC0wLjkvZGVmYXVsdC1wb3J0LXNjcmlwdC1ibG9ja2VkLmh0bWwKK2h0dHAvdGVz
dHMvc2VjdXJpdHkvaHR0cC0wLjkvaW1hZ2UtZGVmYXVsdC1wb3J0LWFsbG93ZWQuaHRtbAoraHR0
cC90ZXN0cy9zZWN1cml0eS9odHRwLTAuOS9pbWFnZS1vbi1IVFRQLTAuOS1kZWZhdWx0LXBvcnQt
cGFnZS1hbGxvd2VkLXJlZi10ZXN0Lmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvaHR0cC0wLjkv
aW1hZ2Utb24tSFRUUC0wLjktZGVmYXVsdC1wb3J0LXBhZ2UtYWxsb3dlZC5odG1sCitodHRwL3Rl
c3RzL3NlY3VyaXR5L2h0dHAtMC45L2ltYWdlLW9uLUhUVFAtMC45LXBhZ2UtYmxvY2tlZC5odG1s
CisKICMgV2ViS2l0VGVzdFJ1bm5lciBkb2Vzbid0IGhhdmUgYXBwbGVTY3JpcHRDb250cm9sbGVy
CiBwbGF0Zm9ybS9tYWMvZmFzdC9BcHBsZVNjcmlwdC8wMDEuaHRtbAogcGxhdGZvcm0vbWFjL2Zh
c3QvQXBwbGVTY3JpcHQvYXJyYXkuaHRtbAo=
</data>
<flag name="review"
          id="317367"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>