<?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>138775</bug_id>
          
          <creation_ts>2014-11-16 01:28:03 -0800</creation_ts>
          <short_desc>Use TextIndicator instead of the built in Lookup highlight</short_desc>
          <delta_ts>2014-11-16 17:57:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1049049</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-16 01:28:03 -0800</bug_when>
    <thetext>Use TextIndicator instead of the built in Lookup highlight</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049050</commentid>
    <comment_count>1</comment_count>
      <attachid>241680</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-16 01:28:39 -0800</bug_when>
    <thetext>Created attachment 241680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049051</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-16 01:29:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/18953982&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049052</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-16 01:31:18 -0800</bug_when>
    <thetext>Attachment 241680 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/TextIndicatorWindow.h:52:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/mac/TextIndicatorWindow.h:75:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/mac/WKViewInternal.h:84:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/mac/WKView.mm:3070:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/mac/WKView.mm:3085:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/mac/TextIndicatorWindow.mm:123:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 6 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049057</commentid>
    <comment_count>4</comment_count>
      <attachid>241680</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-11-16 07:28:12 -0800</bug_when>
    <thetext>Comment on attachment 241680
Patch

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

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:3080
&gt; +    _data-&gt;_textIndicatorWindow-&gt;setTextIndicator(textIndicator, fadeOut, animate, completionHandler);

Should WTF::move the completion handler.

&gt; Source/WebKit2/UIProcess/mac/TextIndicatorWindow.h:52
&gt; +    void setTextIndicator(PassRefPtr&lt;TextIndicator&gt;, bool fadeOut, bool animate, std::function&lt;void ()&gt; animationCompletionHandler);

Would be nice to combine fadeOut and animate into a set of flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049071</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-16 12:33:54 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 241680 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241680&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:3080
&gt; &gt; +    _data-&gt;_textIndicatorWindow-&gt;setTextIndicator(textIndicator, fadeOut, animate, completionHandler);
&gt; 
&gt; Should WTF::move the completion handler.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/mac/TextIndicatorWindow.h:52
&gt; &gt; +    void setTextIndicator(PassRefPtr&lt;TextIndicator&gt;, bool fadeOut, bool animate, std::function&lt;void ()&gt; animationCompletionHandler);
&gt; 
&gt; Would be nice to combine fadeOut and animate into a set of flags.

Agreed, especially because &quot;fadeOut&quot; is a less-than-ideal name for what it really does. Not in this patch, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049072</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-16 12:41:38 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/176164</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049094</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-11-16 17:57:44 -0800</bug_when>
    <thetext>Follow up to stop the crashes in http://trac.webkit.org/changeset/176166.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241680</attachid>
            <date>2014-11-16 01:28:39 -0800</date>
            <delta_ts>2014-11-16 07:28:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138775-20141116012849.patch</filename>
            <type>text/plain</type>
            <size>44177</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2MTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk2NjU3YTE5YTBlMTA3
MmJlYzU0YTdlYWNlYWU0OWE4Nzk2YTVkMC4uNTY2ZGRlNDYyMzk0ODg2ZjVjZDExNmNkZGYxM2Fj
YThhMjc1NGVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTExLTE2ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBUZXh0SW5k
aWNhdG9yIGluc3RlYWQgb2YgdGhlIGJ1aWx0IGluIExvb2t1cCBoaWdobGlnaHQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODc3NQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTg5NTM5ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICBSZW1vdmUgYSBXS1NJIGltcG9ydC9leHBv
cnQgdGhhdCB3ZSBkb24ndCBuZWVkIGFueW1vcmUuCisgICAgICAgIAorICAgICAgICAqIHBsYXRm
b3JtL3NwaS9tYWMvTG9va3VwU1BJLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2FuRGlz
YWJsZUxvb2t1cEluZGljYXRvcik6CisgICAgICAgIEFkZCBMb29rdXAgU1BJIGhlYWRlci4KKyAg
ICAgICAgQWRkIGEgJ2NhbkRpc2FibGVMb29rdXBJbmRpY2F0b3InLCB3aGljaCBtdXN0IGJlIGNh
bGxlZCBpbiBhbnkgdHJhbnNsYXRpb24KKyAgICAgICAgdW5pdCB0aGF0IHdhbnRzIHRvIHVzZSBl
aXRoZXIgb2YgdGhlIHNvZnQtbGlua2VkIGNvbnN0YW50cyByZWxhdGVkIHRvCisgICAgICAgIHRo
YXQgZnVuY3Rpb25hbGl0eSwgYmVmb3JlIGNhbGxpbmcgdGhlIGdldCogZnVuY3Rpb24uCisKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZWRp
dGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJhbmdlRm9y
RGljdGlvbmFyeUxvb2t1cEZvclNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpyYW5nZUZv
ckRpY3Rpb25hcnlMb29rdXBBdEhpdFRlc3RSZXN1bHQpOgorICAgICAgICBBZG9wdCB0aGUgTG9v
a3VwIFNQSSBoZWFkZXIuCisKIDIwMTQtMTEtMTQgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbmFtZSBXZWJLaXRDU1NLZXlmcmFtZShzKVJ1bGUgaW50byBDU1NL
ZXlmcmFtZShzKVJ1bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAyNzc4MDYwZTU3NzRmYjkwNTAyNzg4
ZTA5ZWZkZGFiN2FiMTcyZGM4Li42YmUxYzczMmI1ZWI2ODA2N2MyNjczODgxNjEwNzhmZmNhNWNi
Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTQtMTEtMTYgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFRleHRJbmRp
Y2F0b3IgaW5zdGVhZCBvZiB0aGUgYnVpbHQgaW4gTG9va3VwIGhpZ2hsaWdodAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4Nzc1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xODk1Mzk4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbToK
KyAgICAgICAgKEluaXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKToKKyAgICAgICAgUmVtb3ZlIGEg
V0tTSSBpbXBvcnQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFjdGlvbk1lbnVDb250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXZWJBY3Rpb25NZW51Q29udHJvbGxlciBfbG9va3VwVGV4dDpdKToK
KyAgICAgICAgKC1bV2ViQWN0aW9uTWVudUNvbnRyb2xsZXIgX2NyZWF0ZUFjdGlvbk1lbnVJdGVt
Rm9yVGFnOl0pOgorICAgICAgICBNYWtlIHVzZSBvZiB0aGUgbmV3IExvb2t1cCBTUEkgaGVhZGVy
LgorICAgICAgICBEaXNhYmxlIHRoZSBMb29rdXAgaXRlbSBpZiBsb29rdXAgaXMgbm90IGF2YWls
YWJsZS4KKwogMjAxNC0xMS0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbXBsZW1lbnQgZGF0YSBkZXRlY3RvcnMgYW5kIG1haWx0byBhY3Rpb24g
bWVudXMgZm9yIFdlYktpdDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMWMwMDE5NTljYTk3NWZkYmY1YjhhZjEy
YmFiZGVlYjNlM2RlZjA2Li40NzAzOGJhZjcwMzFkZGQxMDljNWVmNjkyMTZiYzU2YzQxOWYzZmY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTQtMTEtMTYgIFRpbSBIb3J0b24gIDx0
aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFRleHRJbmRpY2F0b3IgaW5z
dGVhZCBvZiB0aGUgYnVpbHQgaW4gTG9va3VwIGhpZ2hsaWdodAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4Nzc1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xODk1Mzk4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBvcmRlciB0byBtYWtlIHRoZSB5ZWxsb3cgaGlnaGxpZ2h0IGZvciBMb29rdXAg
bW9yZSBhY2N1cmF0ZWx5IG1hdGNoIHRoZQorICAgICAgICBwYWludGVkIGNvbnRlbnQgb2YgdGhl
IHdlYiBwYWdlIChpbiBsaWdodCBvZiBlLmcuIFdlYiBmb250cywgYW5kIGludGVyZXN0aW5nCisg
ICAgICAgIHRleHQgZmVhdHVyZXMgdGhhdCBvbmx5IFdlYktpdCBpbXBsZW1lbnRzIGFuZCBjYW5u
b3Qgcm91bmQtdHJpcCB0aHJvdWdoCisgICAgICAgIE5TQXR0cmlidXRlZFN0cmluZyksIHVzZSBh
IFRleHRJbmRpY2F0b3IgaW5zdGVhZCBvZiB0aGUgYnVpbHQtaW4gTG9va3VwCisgICAgICAgIGhp
Z2hsaWdodCB3aGVyZSBwb3NzaWJsZS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2VU
YXJnZXQueGNjb25maWc6CisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gaW5jbHVkZSBoZWFk
ZXJzIGZyb20gcHJpdmF0ZSBmcmFtZXdvcmtzLiBUaGlzIG1hdGNoZXMgV2ViQ29yZS4KKworICAg
ICAgICAqIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
RGljdGlvbmFyeVBvcHVwSW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6RGljdGlvbmFy
eVBvcHVwSW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5m
by5oOgorICAgICAgICBJbmNsdWRlIHRoZSBhdHRyaWJ1dGVkIHN0cmluZyBpbnNpZGUgdGhlIERp
Y3Rpb25hcnlQb3B1cEluZm8sIGluc3RlYWQgb2YKKyAgICAgICAgYXMgYSBzZWNvbmRhcnkgYXJn
dW1lbnQgdG8gRGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAuCisgICAgICAgIEFkZCBhIFRleHRJ
bmRpY2F0b3IgdG8gRGljdGlvbmFyeVBvcHVwSW5mbywgd2hpY2ggY2FuIGJlIHVzZWQgdG8gaGln
aGxpZ2h0CisgICAgICAgIHRoZSB0ZXh0IGluIHRoZSBVSSBwcm9jZXNzLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgZGVhbGxvY10p
OgorICAgICAgICAoLVtXS1ZpZXcgdmlld0RpZE1vdmVUb1dpbmRvd10pOgorICAgICAgICAoLVtX
S1ZpZXcgX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOl0pOgorICAgICAgICAoLVtX
S1ZpZXcgX3NldFRleHRJbmRpY2F0b3I6ZmFkZU91dDphbmltYXRlOmFuaW1hdGlvbkNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3NldFRleHRJbmRpY2F0b3I6ZmFkZU91
dDphbmltYXRlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0OmNv
bmZpZ3VyYXRpb246d2ViVmlldzpdKToKKyAgICAgICAgKCtbV0tWaWV3IGhpZGVXb3JkRGVmaW5p
dGlvbldpbmRvd10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFs
Lmg6CisgICAgICAgIEFkb3B0IHRoZSBMb29rdXAgU1BJIGhlYWRlci4KKyAgICAgICAgSWYgd2Ug
aGF2ZSB0aGUgcmVxdWlzaXRlIEFQSSwgcmVnaXN0ZXIgdGhlIG5vdGlmaWNhdGlvbiB0aGF0IExv
b2t1cCBzZW5kcworICAgICAgICB3aGVuIHRoZSBwb3BvdmVyIGNsb3NlcywgYW5kIGhvb2sgdGhh
dCB1cCB0byBoaWRlIHRoZSB0ZXh0IGluZGljYXRvci4KKyAgICAgICAgQWRkIGEgdmVyc2lvbiBv
ZiBfc2V0VGV4dEluZGljYXRvcjogdGhhdCB0YWtlcyBhbiBhbmltYXRpb24gY29tcGxldGlvbiBo
YW5kbGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRGljdGlvbmFyeUxv
b2t1cCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXApOgor
ICAgICAgICBBZGp1c3QgdG8gdGhlIG5ldyBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cCBzaWdu
YXR1cmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0
ZW1JbnRlcmZhY2UubW06CisgICAgICAgIChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6Cisg
ICAgICAgIFJlbW92ZSBhIFdLU0kgaW1wb3J0LgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
bW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFy
eUxvb2t1cCk6CisgICAgICAgIElmIHdlIGhhdmUgdGhlIHJlcXVpc2l0ZSBBUEksIGRpc2FibGUg
TG9va3VwJ3MgYnVpbHQtaW4gaGlnaGxpZ2h0IGFuZAorICAgICAgICBwcmVzZW50IGEgVGV4dElu
ZGljYXRvciBpbnN0ZWFkLgorICAgICAgICBXZSBjdXJyZW50bHkgaGF2ZSB0byBydW4gdGhlIGFu
aW1hdGlvbnMgc2VyaWFsbHkgKGZpcnN0IGJvdW5jZSB0aGUgVGV4dEluZGljYXRvciwKKyAgICAg
ICAgdGhlbiBhbmltYXRlIGluIHRoZSBMb29rdXAgcG9wb3ZlcikgYmVjYXVzZSB0aGUgYWN0IG9m
IGFkZGluZyB0aGUgTG9va3VwIHBvcG92ZXIKKyAgICAgICAgYmxvY2tzIHVzIGZyb20gZ2V0dGlu
ZyBhbnkgYW5pbWF0aW9uIGV2ZW50cyBmb3IgdGhlIFRleHRJbmRpY2F0b3IsIGFuZCBicmVha3MK
KyAgICAgICAgdGhlIGJvdW5jZS4gV2UgY291bGQgYWxzbyBmaXggdGhpcyBieSB1c2luZyBhIHRo
cmVhZGVkIGFuaW1hdGlvbiBmb3IgdGhlIFRleHRJbmRpY2F0b3IsCisgICAgICAgIGJ1dCBpdCdz
IG5vdCBjbGVhciB0aGF0IGl0J3Mgc2FmZSB0byBkbyBzby4KKworICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlzbWlzc0RpY3Rpb25hcnlMb29rdXBQYW5lbCk6CisgICAgICAgIFdo
ZW4gZXhwbGljaXRseSBkaXNtaXNzaW5nIHRoZSBMb29rdXAgcGFuZWwsIGFsc28gaGlkZSB0aGUg
dGV4dCBpbmRpY2F0b3IuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RleHRJbmRpY2F0b3JX
aW5kb3cuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW06
CisgICAgICAgIChXZWJLaXQ6OlRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0b3Ip
OgorICAgICAgICBTdG9yZSB0aGUgY29tcGxldGlvbiBoYW5kbGVyLgorCisgICAgICAgIChXZWJL
aXQ6OlRleHRJbmRpY2F0b3JXaW5kb3c6OmJvdW5jZUFuaW1hdGlvbkRpZEVuZCk6CisgICAgICAg
IENhbGwgdGhlIGNvbXBsZXRpb24gaGFuZGxlciB3aGVuIHRoZSBhbmltYXRpb24gY29tcGxldGVz
LgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0FjdGlvbk1lbnVDb250cm9sbGVyLm1tOgor
ICAgICAgICAoLVtXS0FjdGlvbk1lbnVDb250cm9sbGVyIF9jcmVhdGVBY3Rpb25NZW51SXRlbUZv
clRhZzpdKToKKyAgICAgICAgRGlzYWJsZSB0aGUgTG9va3VwIGl0ZW0gaWYgbG9va3VwIGlzIG5v
dCBhdmFpbGFibGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpzaG93RGVmaW5pdGlvbkZvckF0dHJp
YnV0ZWRTdHJpbmcpOgorICAgICAgICBBZGp1c3QgdG8gdGhlIG5ldyBkaWRQZXJmb3JtRGljdGlv
bmFyeUxvb2t1cCBzaWduYXR1cmUuCisgICAgICAgIFNpbmNlIFBERlBsdWdpbiBjYW4ndCB0cml2
aWFsbHkgcmVwYWludCB0aGUgcmVxdWlyZWQgcGFydCBvZiB0aGUgUERGLAorICAgICAgICB3ZSBk
b24ndCBidWlsZCBhIFRleHRJbmRpY2F0b3IuIFRoaXMgd2lsbCByZXN1bHQgaW4gUERGUGx1Z2lu
IGNvbnRpbnVpbmcKKyAgICAgICAgdG8gdXNlIExvb2t1cCdzIGJ1aWx0LWluIGhpZ2hsaWdodC4K
KyAgICAgICAgCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEZvclJh
bmdlKToKKyAgICAgICAgQnVpbGQgYSBUZXh0SW5kaWNhdG9yIGZyb20gdGhlIExvb2t1cCByYW5n
ZSBhbmQgcGFzcyBpdCBhbG9uZyB3aXRoCisgICAgICAgIHRoZSBEaWN0aW9uYXJ5UG9wdXBJbmZv
LgorCiAyMDE0LTExLTE1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjE3NjEzNyk6IGlPUyBidWlsZCBicm9rZSBhZnRlciBtb3Zpbmcg
RGF0YURldGVjdG9ycyBzY2FubmluZyBjb2RlIHRvIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggYjEzNzI0NGEwYjA3ODAyYjQwNWEzM2E4ZTgwMjM3ZmI1M2FmNjA3Yy4uZjMxNTIwMzZh
ZDc0N2NlMGU5MzkzMTM4YjViODJiNTUxYjg1OTEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTI0NDEsNyArMjQ0MSw2IEBAIF93a0RyYXdGb2N1c1JpbmdBdFRpbWUKIF93a0RyYXdNZWRpYVNs
aWRlclRyYWNrCiBfd2tEcmF3TWVkaWFVSVBhcnQKIF93a0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9y
QmVmb3JlU25vd0xlb3BhcmQKLV93a0V4dHJhY3RXb3JkRGVmaW5pdGlvblRva2VuUmFuZ2VGcm9t
Q29udGV4dHVhbFN0cmluZwogX3drR2V0QVhUZXh0TWFya2VyUmFuZ2VUeXBlSUQKIF93a0dldEFY
VGV4dE1hcmtlclR5cGVJRAogX3drR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjdhZDYz
NDk5ZDAyMzk2MTJkZWU2YWFjMWM2MzI2ZTE4NDI2ZDA3ZS4uMDdmYjNkNzIzNWZlMDQyYjM3MzM1
NzUwNTJiNDliOGJjZGJkNWY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA5Niw2ICsxMDk2LDcgQEAKIAkJMkQzRUY0NDkx
OTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEM0VGNDQ1MTkx
NzkxNUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUubW0gKi87
IH07CiAJCTJEM0VGNDRBMTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FMYXllckV4dHJhcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzRUY0NDYx
OTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQzRUY0NEIxOTE3OTE1QzAwMDM0
MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzRUY0NDcxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVD
QUxheWVyRXh0cmFzLm1tICovOyB9OworCQkyRDQxM0Y2MTFBMTg3QTNGMDA0MUE1MjEgLyogTG9v
a3VwU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDQxM0Y2MDFBMTg3QTNGMDA0MUE1MjEgLyogTG9va3VwU1BJLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ0NkYwNEUxN0I5NkZCRDAwNTY0N0Yw
IC8qIEludFBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJENDZGMDREMTdCOTZGQkQwMDU2NDdGMCAvKiBJbnRQb2ludC5jcHAgKi87IH07CiAJ
CTJENDZGMDUwMTdCOTZGRDIwMDU2NDdGMCAvKiBJbnRTaXplLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENDZGMDRGMTdCOTZGRDIwMDU2NDdGMCAv
KiBJbnRTaXplLmNwcCAqLzsgfTsKIAkJMkQ0ODFGMDAxNDZCNUM0QzAwQUE3ODM0IC8qIENyb3Nz
ZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5jcHAgKi87IH07CkBAIC04MTA2LDYgKzgxMDcsNyBAQAogCQkyRDNFRjQ0NTE5MTc5
MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQWN0aW9uRGlzYWJsaW5nQ0FM
YXllckRlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDNFRjQ0NjE5
MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkQzRUY0NDcxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVy
RXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29y
ZUNBTGF5ZXJFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENDEzRjYw
MUExODdBM0YwMDQxQTUyMSAvKiBMb29rdXBTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTG9va3VwU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENDZG
MDREMTdCOTZGQkQwMDU2NDdGMCAvKiBJbnRQb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbnRQb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJENDZGMDRGMTdCOTZGRDIwMDU2NDdGMCAvKiBJbnRTaXplLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludFNpemUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDU4RDg1MzFBMTVGNjVGMDBBNUY3MjYgLyogRGF0YURldGVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhRGV0ZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzU0NCw2ICsxNzU0Niw3IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJENTlGMUJFMUEwMDQ0QzYwMDFGM0QyOSAvKiBE
YXRhRGV0ZWN0b3JzU1BJLmggKi8sCisJCQkJMkQ0MTNGNjAxQTE4N0EzRjAwNDFBNTIxIC8qIExv
b2t1cFNQSS5oICovLAogCQkJCTFDNjQ2NjI3MUExMkMzRjkwMDk0NjAzQyAvKiBOU0ZvbnRTUEku
aCAqLywKIAkJCQkyRENCODM3NzE5Rjk5QkJBMDBBN0ZCRTQgLyogTlNTaGFyaW5nU2VydmljZVBp
Y2tlclNQSS5oICovLAogCQkJCTJEQ0I4Mzc4MTlGOTlCQkEwMEE3RkJFNCAvKiBOU1NoYXJpbmdT
ZXJ2aWNlU1BJLmggKi8sCkBAIC0yMzU2MSw2ICsyMzU2NCw3IEBACiAJCQkJQTU4NEZFMzUxODY0
RDVBRjAwODQzQjEwIC8qIENvbW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTU4NEZFMkMxODYzODcwRjAwODQzQjEwIC8qIENvbW1hbmRMaW5lQVBJTW9kdWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNTg0RkUyNjE4NjM3REFCMDA4NDNCMTAgLyogQ29tbWFuZExpbmVBUElN
b2R1bGVTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTJENDEzRjYxMUExODdBM0YwMDQxQTUy
MSAvKiBMb29rdXBTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkEyMDk5REYwMjcwMDkw
RDc4MSAvKiBDb21tZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUZFMTM3NTE4NDAyQTY3MDA4
OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0My
MzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlM
b29rdXAubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLm1t
CmluZGV4IGRiNjQyODc1YmVmZTJmODM5YWM2M2ZkZTQ0NWY4MDViNjQ1MTEyNDQuLjJmYjdjOWY2
ODYwNGFmNzEzYjliZjVlZGFhOGViMzNiNjQ1MzVmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9y
dCAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbXBvcnQgIkhUTUxDb252ZXJ0ZXIuaCIKICNpbXBvcnQg
IkhpdFRlc3RSZXN1bHQuaCIKKyNpbXBvcnQgIkxvb2t1cFNQSS5oIgogI2ltcG9ydCAiUGFnZS5o
IgogI2ltcG9ydCAiUmFuZ2UuaCIKICNpbXBvcnQgIlJlbmRlck9iamVjdC5oIgpAQCAtMTE1LDgg
KzExNiw5IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlRm9yRGljdGlvbmFyeUxvb2t1cEZvclNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzCiAgICAgU3RyaW5nIGZ1bGxQbGFpblRl
eHRTdHJpbmcgPSBwbGFpblRleHQobWFrZVJhbmdlKHBhcmFncmFwaFN0YXJ0LCBwYXJhZ3JhcGhF
bmQpLmdldCgpKTsKIAogICAgIC8vIFNpbmNlIHdlIGFscmVhZHkgaGF2ZSB0aGUgcmFuZ2Ugd2Ug
d2FudCwgd2UganVzdCBuZWVkIHRvIGdyYWIgdGhlIHJldHVybmVkIG9wdGlvbnMuCi0gICAgd2tF
eHRyYWN0V29yZERlZmluaXRpb25Ub2tlblJhbmdlRnJvbUNvbnRleHR1YWxTdHJpbmcoZnVsbFBs
YWluVGV4dFN0cmluZywgcmFuZ2VUb1Bhc3MsIG9wdGlvbnMpOwotICAgIAorICAgIGlmIChDbGFz
cyBsdUxvb2t1cERlZmluaXRpb25Nb2R1bGUgPSBnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVD
bGFzcygpKQorICAgICAgICBbbHVMb29rdXBEZWZpbml0aW9uTW9kdWxlIHRva2VuUmFuZ2VGb3JT
dHJpbmc6ZnVsbFBsYWluVGV4dFN0cmluZyByYW5nZTpyYW5nZVRvUGFzcyBvcHRpb25zOm9wdGlv
bnNdOworCiAgICAgcmV0dXJuIHNlbGVjdGVkUmFuZ2UucmVsZWFzZSgpOwogfQogCkBAIC0xNTUs
NyArMTU3LDkgQEAgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2VGb3JEaWN0aW9uYXJ5TG9va3VwQXRI
aXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGgKIAogICAgIFN0cmluZyBmdWxsUGxh
aW5UZXh0U3RyaW5nID0gcGxhaW5UZXh0KGZ1bGxDaGFyYWN0ZXJSYW5nZS5nZXQoKSk7CiAKLSAg
ICBOU1JhbmdlIGV4dHJhY3RlZFJhbmdlID0gd2tFeHRyYWN0V29yZERlZmluaXRpb25Ub2tlblJh
bmdlRnJvbUNvbnRleHR1YWxTdHJpbmcoZnVsbFBsYWluVGV4dFN0cmluZywgcmFuZ2VUb1Bhc3Ms
IG9wdGlvbnMpOworICAgIE5TUmFuZ2UgZXh0cmFjdGVkUmFuZ2UgPSBOU01ha2VSYW5nZShyYW5n
ZVRvUGFzcy5sb2NhdGlvbiwgMCk7CisgICAgaWYgKENsYXNzIGx1TG9va3VwRGVmaW5pdGlvbk1v
ZHVsZSA9IGdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCisgICAgICAgIGV4dHJh
Y3RlZFJhbmdlID0gW2x1TG9va3VwRGVmaW5pdGlvbk1vZHVsZSB0b2tlblJhbmdlRm9yU3RyaW5n
OmZ1bGxQbGFpblRleHRTdHJpbmcgcmFuZ2U6cmFuZ2VUb1Bhc3Mgb3B0aW9uczpvcHRpb25zXTsK
IAogICAgIC8vIFRoaXMgZnVuY3Rpb24gc29tZXRpbWVzIHJldHVybnMge05TTm90Rm91bmQsIDB9
IGlmIGl0IHdhcyB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgZ29vZCBzdHJpbmcuCiAgICAgaWYgKGV4
dHJhY3RlZFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaAppbmRleCBiNmIyN2Y4
NzJjNjMzMTgwOWEyMGYzY2Q1MTk0YzVmZjc0MGFhOWJkLi5jZmY1OGQzODU1MjNmODIxYTlhZjdl
NzM4NjA4NzQzNzExZjliYmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgKQEAgLTIzOCw4ICsyMzgsNiBAQCBleHRlcm4g
aW50ICgqd2tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUpKHZvaWQpOwogCiBleHRlcm4gYm9vbCAo
KndrRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZCkodm9pZCk7CiAKLWV4
dGVybiBOU1JhbmdlICgqd2tFeHRyYWN0V29yZERlZmluaXRpb25Ub2tlblJhbmdlRnJvbUNvbnRl
eHR1YWxTdHJpbmcpKE5TU3RyaW5nICpjb250ZXh0U3RyaW5nLCBOU1JhbmdlIHJhbmdlLCBOU0Rp
Y3Rpb25hcnkgKipvcHRpb25zKTsKLQogZXh0ZXJuIENGU3RyaW5nUmVmICgqd2tDb3B5RGVmYXVs
dFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUpKHZvaWQpOwogCiBleHRlcm4gTlNDdXJzb3IgKigq
d2tDdXJzb3IpKGNvbnN0IGNoYXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1dlYkNvcmVTeXN0ZW1JbnRlcmZhY2UubW0KaW5kZXggODE0MzJiNDIzYzBkNjQ0OGFi
MGU4Y2M0NDc2NDMzNzU4MTc5YmRhZi4uODliNGM5YTI5MzQ2N2RjNTAyZmZiZDE5M2FkYzYzYTdk
NmVhM2NjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVT
eXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UubW0KQEAgLTExMCw4ICsxMTAsNiBAQCBpbnQgKCp3a1JlY29tbWVu
ZGVkU2Nyb2xsZXJTdHlsZSkodm9pZCk7CiAKIGJvb2wgKCp3a0V4ZWN1dGFibGVXYXNMaW5rZWRP
bk9yQmVmb3JlU25vd0xlb3BhcmQpKHZvaWQpOwogCi1OU1JhbmdlICgqd2tFeHRyYWN0V29yZERl
ZmluaXRpb25Ub2tlblJhbmdlRnJvbUNvbnRleHR1YWxTdHJpbmcpKE5TU3RyaW5nICpjb250ZXh0
U3RyaW5nLCBOU1JhbmdlIHJhbmdlLCBOU0RpY3Rpb25hcnkgKipvcHRpb25zKTsKLQogQ0ZTdHJp
bmdSZWYgKCp3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSkodm9pZCk7CiAK
IE5TQ3Vyc29yICooKndrQ3Vyc29yKShjb25zdCBjaGFyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL0xvb2t1cFNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3BpL21hYy9Mb29rdXBTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGFkNzEwYjJiYWM4MGUzZDkx
YmYyODZkYjdjZjcxMGExNTliODRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL21hYy9Mb29rdXBTUEkuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0ICJTb2Z0TGlua2lu
Zy5oIgorI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisKK1NP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChMb29rdXApCitTT0ZUX0xJTktfQ0xB
U1NfT1BUSU9OQUwoTG9va3VwLCBMVUxvb2t1cERlZmluaXRpb25Nb2R1bGUpCisKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTChMb29rdXAsIExVVGVybU9wdGlvbkRpc2FibGVTZWFyY2hUZXJt
SW5kaWNhdG9yLCBOU1N0cmluZyAqKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExvb2t1
cCwgTFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlLCBOU1N0cmluZyAqKQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitpbmxpbmUgYm9vbCBjYW5EaXNhYmxlTG9va3VwSW5kaWNhdG9yKCkKK3sK
KyAgICByZXR1cm4gY2FuTG9hZExVVGVybU9wdGlvbkRpc2FibGVTZWFyY2hUZXJtSW5kaWNhdG9y
KCkgJiYgY2FuTG9hZExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpOworfQorfTsKKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPExvb2t1cC9Mb29rdXAuaD4K
KworI2Vsc2UKKworQGludGVyZmFjZSBMVUxvb2t1cERlZmluaXRpb25Nb2R1bGUgOiBOU09iamVj
dAorCisrIChOU1JhbmdlKXRva2VuUmFuZ2VGb3JTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHJh
bmdlOihOU1JhbmdlKXJhbmdlIG9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKilvcHRpb25zOworKyAo
dm9pZClzaG93RGVmaW5pdGlvbkZvclRlcm06KE5TQXR0cmlidXRlZFN0cmluZyAqKXRlcm0gYXRM
b2NhdGlvbjooTlNQb2ludClzY3JlZW5Qb2ludCBvcHRpb25zOihOU0RpY3Rpb25hcnkgKilvcHRp
b25zOworKyAodm9pZCloaWRlRGVmaW5pdGlvbjsKKworQGVuZAorCisjZW5kaWYgLy8gIVVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0K
aW5kZXggZDc0ZDA4MjM3ZWUwMTA5YTMwMTIyNWRlNjUyZWZkZDkzMDUzMDA1Ny4uMTVlYTRkMjk0
ZjBkMWFiMWY2N2RmZjNlZTdhM2U1YjkzODEzMjE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZS5tbQpAQCAtMTM1LDcg
KzEzNSw2IEBAIHZvaWQgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2Uodm9pZCkKICNpZiAhUExB
VEZPUk0oSU9TKQogICAgIElOSVQoUmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKTsKICAgICBJTklU
KEV4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQmVmb3JlU25vd0xlb3BhcmQpOwotICAgIElOSVQoRXh0
cmFjdFdvcmREZWZpbml0aW9uVG9rZW5SYW5nZUZyb21Db250ZXh0dWFsU3RyaW5nKTsKICAgICBJ
TklUKENvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSk7CiAgICAgSU5JVChDdXJz
b3IpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFj
dGlvbk1lbnVDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBY3Rp
b25NZW51Q29udHJvbGxlci5tbQppbmRleCA5NGQwMGM2NmYxODM2M2I5MmY1YTk2MTM5N2ZhMjBm
NWM1NTcwODIwLi42NTE0ZDBlOWVmMTQwZmU2MjQ3NTkwNGZhYjc3NDU5ZmY0NDlmZGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFjdGlvbk1lbnVDb250cm9sbGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQWN0aW9uTWVudUNvbnRyb2xs
ZXIubW0KQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxDb252ZXJ0ZXIu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvTG9va3VwU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TU2hh
cmluZ1NlcnZpY2VQaWNrZXJTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNTaGFyaW5nU2Vydmlj
ZVNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OU1ZpZXdTUEkuaD4KQEAgLTU2Myw3ICs1NjQsNyBA
QCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhUb1Bob3RvT25EaXNrKE5TU3RyaW5nICpzdWdnZXN0ZWRG
aWxlbmFtZSkKICAgICAvLyBDb252ZXJ0IHRvIHNjcmVlbiBjb29yZGluYXRlcy4KICAgICB0ZXh0
QmFzZWxpbmVPcmlnaW4gPSBbX3dlYlZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46TlNN
YWtlUmVjdCh0ZXh0QmFzZWxpbmVPcmlnaW4ueCwgdGV4dEJhc2VsaW5lT3JpZ2luLnksIDAsIDAp
XS5vcmlnaW47CiAKLSAgICBXS1Nob3dXb3JkRGVmaW5pdGlvbldpbmRvdyhwb3B1cEluZm8uYXR0
cmlidXRlZFN0cmluZy5nZXQoKSwgdGV4dEJhc2VsaW5lT3JpZ2luLCBwb3B1cEluZm8ub3B0aW9u
cy5nZXQoKSk7CisgICAgW2dldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkgc2hvd0Rl
ZmluaXRpb25Gb3JUZXJtOnBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpIGF0TG9jYXRp
b246dGV4dEJhc2VsaW5lT3JpZ2luIG9wdGlvbnM6cG9wdXBJbmZvLm9wdGlvbnMuZ2V0KCldOwog
fQogCiAtICh2b2lkKV9wYXN0ZTooaWQpc2VuZGVyCkBAIC02ODksNiArNjkwLDcgQEAgc3RhdGlj
IERpY3Rpb25hcnlQb3B1cEluZm8gcGVyZm9ybURpY3Rpb25hcnlMb29rdXBGb3JSYW5nZShGcmFt
ZSogZnJhbWUsIFJhbmdlJgogICAgIFNFTCBzZWxlY3RvciA9IG51bGxwdHI7CiAgICAgTlNTdHJp
bmcgKnRpdGxlID0gbmlsOwogICAgIE5TSW1hZ2UgKmltYWdlID0gbmlsOworICAgIGJvb2wgZW5h
YmxlZCA9IHRydWU7CiAKICAgICBzd2l0Y2ggKHRhZykgewogICAgIGNhc2UgV2ViQWN0aW9uTWVu
dUl0ZW1UYWdPcGVuTGlua0luRGVmYXVsdEJyb3dzZXI6CkBAIC03MTksNiArNzIxLDcgQEAgc3Rh
dGljIERpY3Rpb25hcnlQb3B1cEluZm8gcGVyZm9ybURpY3Rpb25hcnlMb29rdXBGb3JSYW5nZShG
cmFtZSogZnJhbWUsIFJhbmdlJgogICAgICAgICBzZWxlY3RvciA9IEBzZWxlY3RvcihfbG9va3Vw
VGV4dDopOwogICAgICAgICB0aXRsZSA9IFdFQl9VSV9TVFJJTkdfS0VZKCJMb29rIFVwIiwgIkxv
b2sgVXAgKGFjdGlvbiBtZW51IGl0ZW0pIiwgImFjdGlvbiBtZW51IGl0ZW0iKTsKICAgICAgICAg
aW1hZ2UgPSBbTlNJbWFnZSBpbWFnZU5hbWVkOkAiTlNBY3Rpb25NZW51TG9va3VwIl07CisgICAg
ICAgIGVuYWJsZWQgPSBnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpOwogICAgICAg
ICBicmVhazsKIAogICAgIGNhc2UgV2ViQWN0aW9uTWVudUl0ZW1UYWdQYXN0ZToKQEAgLTc4MSw2
ICs3ODQsNyBAQCBzdGF0aWMgRGljdGlvbmFyeVBvcHVwSW5mbyBwZXJmb3JtRGljdGlvbmFyeUxv
b2t1cEZvclJhbmdlKEZyYW1lKiBmcmFtZSwgUmFuZ2UmCiAgICAgW2l0ZW0gc2V0SW1hZ2U6aW1h
Z2VdOwogICAgIFtpdGVtIHNldFRhcmdldDpzZWxmXTsKICAgICBbaXRlbSBzZXRUYWc6dGFnXTsK
KyAgICBbaXRlbSBzZXRFbmFibGVkOmVuYWJsZWRdOwogICAgIHJldHVybiBpdGVtOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29u
ZmlnIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvQmFzZVRhcmdldC54Y2NvbmZpZwpp
bmRleCAzMGZkMzE4MDcxYjU4OTI3MjRlMzNlZjUzYzRjZjAxMjYxMzk3ZDliLi5iMGIxYTQwOGMz
ZjA4ZmU1NjBjNDcyZjg4ZGU4NmRmMDA0ODg1M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9Db25maWd1cmF0aW9ucy9CYXNlVGFyZ2V0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0Jhc2VUYXJnZXQueGNjb25maWcKQEAgLTI5LDcgKzI5LDcgQEAgR0ND
X1BSRUZJWF9IRUFERVIgPSBXZWJLaXQyUHJlZml4Lmg7CiBHQ0NfUFJFUFJPQ0VTU09SX0RFRklO
SVRJT05TID0gJChERUJVR19ERUZJTkVTKSAkKEZFQVRVUkVfREVGSU5FUykgRlJBTUVXT1JLX05B
TUU9V2ViS2l0CiBIRUFERVJfU0VBUkNIX1BBVEhTID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL3Vz
ci9sb2NhbC9pbmNsdWRlICQoV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9Gb3J3YXJkaW5n
SGVhZGVycyAkKFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUikvaWN1ICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyICQoSEVBREVSX1NFQVJDSF9QQVRIUyk7CiAK
LU9USEVSX0NGTEFHUyA9ICQoaW5oZXJpdGVkKSAtaWZyYW1ld29yayAkKFNES1JPT1QpJChTWVNU
RU1fTElCUkFSWV9ESVIpL0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv
RnJhbWV3b3JrcyAtaWZyYW1ld29yayAkKFNES1JPT1QpJChTWVNURU1fTElCUkFSWV9ESVIpL0Zy
YW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9GcmFtZXdvcmtzIC1pZnJhbWV3b3JrICQoU0RLUk9P
VCkkKFNZU1RFTV9MSUJSQVJZX0RJUikvRnJhbWV3b3Jrcy9RdWFydHouZnJhbWV3b3JrL0ZyYW1l
d29ya3MgLWlmcmFtZXdvcmsgJChTREtST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdv
cmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3JrczsKK09USEVSX0NGTEFHUyA9ICQo
aW5oZXJpdGVkKSAtaWZyYW1ld29yayAkKFNES1JPT1QpJChTWVNURU1fTElCUkFSWV9ESVIpL0Zy
YW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3JrcyAtaWZyYW1l
d29yayAkKFNES1JPT1QpJChTWVNURU1fTElCUkFSWV9ESVIpL0ZyYW1ld29ya3MvQ2FyYm9uLmZy
YW1ld29yay9GcmFtZXdvcmtzIC1pZnJhbWV3b3JrICQoU0RLUk9PVCkkKFNZU1RFTV9MSUJSQVJZ
X0RJUikvRnJhbWV3b3Jrcy9RdWFydHouZnJhbWV3b3JrL0ZyYW1ld29ya3MgLWlmcmFtZXdvcmsg
JChTREtST09UKSQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5m
cmFtZXdvcmsvRnJhbWV3b3JrcyAtaWZyYW1ld29yayAkKFNES1JPT1QpJChTWVNURU1fTElCUkFS
WV9ESVIpL1ByaXZhdGVGcmFtZXdvcmtzOwogT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAkKE9USEVS
X0NGTEFHUyk7CiAKIE5PUk1BTF9XRUJLSVRfRlJBTUVXT1JLU19ESVIgPSAkKFNZU1RFTV9MSUJS
QVJZX0RJUikvRnJhbWV3b3JrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
aWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5
UG9wdXBJbmZvLmNwcAppbmRleCAyNDM2ODA3NTY3OTljNmRmOTI5ZDQ5OWQ4ZjkyNDcwMGJhZGVm
Nzk5Li5kZjVhMzZkNmY3ODBiMjNjOTlhOTEyYzY0NTI5YzI5MDgzZDRkMDQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCkBAIC0zNywxMiArMzcs
MTUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB2b2lkIERpY3Rpb25hcnlQb3B1cEluZm86OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8
IG9yaWdpbjsKKyAgICBlbmNvZGVyIDw8IHRleHRJbmRpY2F0b3I7CiAKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBib29sIGhhZE9wdGlvbnMgPSBvcHRpb25zOwogICAgIGVuY29kZXIgPDwgaGFk
T3B0aW9uczsKICAgICBpZiAoaGFkT3B0aW9ucykKICAgICAgICAgSVBDOjplbmNvZGUoZW5jb2Rl
ciwgb3B0aW9ucy5nZXQoKSk7CisKKyAgICBlbmNvZGVyIDw8IGF0dHJpYnV0ZWRTdHJpbmc7CiAj
ZW5kaWYKIH0KIApAQCAtNTAsNiArNTMsMTAgQEAgYm9vbCBEaWN0aW9uYXJ5UG9wdXBJbmZvOjpk
ZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIERpY3Rpb25hcnlQb3B1cEkKIHsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5vcmlnaW4pKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50ZXh0SW5kaWNhdG9yKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBo
YWRPcHRpb25zOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFkT3B0aW9ucykpCkBAIC01OCw2
ICs2NSw5IEBAIGJvb2wgRGljdGlvbmFyeVBvcHVwSW5mbzo6ZGVjb2RlKElQQzo6QXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBEaWN0aW9uYXJ5UG9wdXBJCiAgICAgICAgIGlmICghSVBDOjpkZWNv
ZGUoZGVjb2RlciwgcmVzdWx0Lm9wdGlvbnMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmF0dHJpYnV0ZWRTdHJpbmcp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oCmluZGV4IGY2MDkyNzZl
OTRjNGUzNjJjMDY4ZWE3M2I0YzBhYmJiMDBkZTdmNzMuLmM4YzI3YWUzN2Y5MmIzN2YyN2VkMzA1
NGJiMTVkZGMzOGRlZDdlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0
aW9uYXJ5UG9wdXBJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQ
b3B1cEluZm8uaApAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBEaWN0aW9uYXJ5UG9wdXBJbmZv
X2gKICNkZWZpbmUgRGljdGlvbmFyeVBvcHVwSW5mb19oCiAKKyNpbmNsdWRlICJBdHRyaWJ1dGVk
U3RyaW5nLmgiCisjaW5jbHVkZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRQb2ludC5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0zMyw4ICszNSw4IEBACiAj
ZW5kaWYKIAogbmFtZXNwYWNlIElQQyB7Ci0gICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwotICAg
IGNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFy
Z3VtZW50RW5jb2RlcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NCw4ICs0NiwxMCBA
QCBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbyB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6QXJndW1lbnREZWNvZGVyJiwgRGljdGlvbmFyeVBvcHVwSW5mbyYpOwogCiAgICAgV2ViQ29y
ZTo6RmxvYXRQb2ludCBvcmlnaW47CisgICAgVGV4dEluZGljYXRvcjo6RGF0YSB0ZXh0SW5kaWNh
dG9yOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+
IG9wdGlvbnM7CisgICAgQXR0cmlidXRlZFN0cmluZyBhdHRyaWJ1dGVkU3RyaW5nOwogI2VuZGlm
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXgg
YjcwMDcwNmRmYTU4OTgxY2U0MzNhNDRmMzA4NzdlMWY2ODVlMzNkMy4uZDQ5ZWI0N2YwNWZjNzU4
YzBkOGM2OWM1M2Q4OTlhNWU3NTRmMDAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQpAQCAtODgsNiArODgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GaWxl
U3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgorI2ltcG9ydCA8V2ViQ29yZS9Mb29rdXBTUEkuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTlNWaWV3U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CkBA
IC0zMjUsNiArMzI2LDkgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRl
cnMgewogCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVP
YnNlcnZlcjpzZWxmIG5hbWU6TlNBcHBsaWNhdGlvbldpbGxUZXJtaW5hdGVOb3RpZmljYXRpb24g
b2JqZWN0Ok5TQXBwXTsKIAorICAgIGlmIChjYW5EaXNhYmxlTG9va3VwSW5kaWNhdG9yKCkpCisg
ICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2
ZXI6c2VsZiBuYW1lOmdldExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpIG9iamVjdDpu
aWxdOworCiAgICAgV2ViQ29udGV4dDo6c3RhdGlzdGljcygpLndrVmlld0NvdW50LS07CiAKICAg
ICBbc3VwZXIgZGVhbGxvY107CkBAIC0yNTUzLDcgKzI1NTcsOCBAQCBzdGF0aWMgdm9pZCoga2V5
VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKICAgICAg
ICAgW05TRXZlbnQgcmVtb3ZlTW9uaXRvcjpfZGF0YS0+X2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRv
cl07CiAgICAgICAgIF9kYXRhLT5fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gbmlsOwogCi0g
ICAgICAgIFdLSGlkZVdvcmREZWZpbml0aW9uV2luZG93KCk7CisgICAgICAgIGlmIChnZXRMVUxv
b2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpKQorICAgICAgICAgICAgW2dldExVTG9va3VwRGVm
aW5pdGlvbk1vZHVsZUNsYXNzKCkgaGlkZURlZmluaXRpb25dOwogICAgICAgICBbc2VsZiBfZGlz
bWlzc0FjdGlvbk1lbnVQb3BvdmVyc107CiAgICAgfQogCkBAIC0yNjg5LDYgKzI2OTQsMTEgQEAg
c3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHQ7CiAgICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNzKCkuY29udGV4dCgpLmFwcGxpY2F0
aW9uV2lsbFRlcm1pbmF0ZSgpOwogfQogCistICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3Zl
cldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBbc2VsZiBf
c2V0VGV4dEluZGljYXRvcjpuaWwgZmFkZU91dDpOTyBhbmltYXRlOk5PXTsKK30KKwogLSAodm9p
ZClfYWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zCiB7CiAgICAgLy8gSW5pdGlh
bGl6ZSByZW1vdGUgYWNjZXNzaWJpbGl0eSB3aGVuIHRoZSB3aW5kb3cgY29ubmVjdGlvbiBoYXMg
YmVlbiBlc3RhYmxpc2hlZC4KQEAgLTMwNTcsNyArMzA2Nyw3IEBAIHN0YXRpYyB2b2lkKiBrZXlW
YWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogICAgIH0K
IH0KIAotLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooUGFzc1JlZlB0cjxUZXh0SW5kaWNhdG9y
Pil0ZXh0SW5kaWNhdG9yIGZhZGVPdXQ6KEJPT0wpZmFkZU91dCBhbmltYXRlOihCT09MKWFuaW1h
dGUKKy0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFBhc3NSZWZQdHI8VGV4dEluZGljYXRvcj4p
dGV4dEluZGljYXRvciBmYWRlT3V0OihCT09MKWZhZGVPdXQgYW5pbWF0ZTooQk9PTClhbmltYXRl
IGFuaW1hdGlvbkNvbXBsZXRpb25IYW5kbGVyOihzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+KWNvbXBs
ZXRpb25IYW5kbGVyCiB7CiAgICAgaWYgKCF0ZXh0SW5kaWNhdG9yKSB7CiAgICAgICAgIF9kYXRh
LT5fdGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7CkBAIC0zMDY3LDcgKzMwNzcsMTIgQEAg
c3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHQ7CiAgICAgaWYgKCFfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3cpCiAgICAgICAg
IF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdyA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dEluZGlj
YXRvcldpbmRvdz4oc2VsZik7CiAKLSAgICBfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3ctPnNl
dFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgZmFkZU91dCwgYW5pbWF0ZSk7CisgICAgX2Rh
dGEtPl90ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3Is
IGZhZGVPdXQsIGFuaW1hdGUsIGNvbXBsZXRpb25IYW5kbGVyKTsKK30KKworLSAodm9pZClfc2V0
VGV4dEluZGljYXRvcjooUGFzc1JlZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIGZh
ZGVPdXQ6KEJPT0wpZmFkZU91dCBhbmltYXRlOihCT09MKWFuaW1hdGUKK3sKKyAgICBbc2VsZiBf
c2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIGZhZGVPdXQ6ZmFkZU91dCBhbmltYXRlOmFu
aW1hdGUgYW5pbWF0aW9uQ29tcGxldGlvbkhhbmRsZXI6W10ge31dOwogfQogCiAtIChDQUxheWVy
ICopX3Jvb3RMYXllcgpAQCAtMzU1OSw2ICszNTc0LDkgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRo
V2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX2FwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZTopIG5hbWU6TlNBcHBsaWNhdGlvbldp
bGxUZXJtaW5hdGVOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwXTsKIAorICAgIGlmIChjYW5EaXNh
YmxlTG9va3VwSW5kaWNhdG9yKCkpCisgICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2RpY3Rpb25h
cnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOikgbmFtZTpnZXRMVU5vdGlmaWNhdGlvblBvcG92ZXJX
aWxsQ2xvc2UoKSBvYmplY3Q6bmlsXTsKKwogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMDAwCiAgICAgaWYgKFtzZWxmIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Ioc2V0QWN0aW9uTWVudTopXSkgewogICAgICAgICBSZXRhaW5QdHI8TlNNZW51PiBtZW51ID0g
YWRvcHROUyhbW05TTWVudSBhbGxvY10gaW5pdF0pOwpAQCAtMzgwNiw3ICszODI0LDkgQEAgc3Rh
dGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0
aCkKIAogKyAodm9pZCloaWRlV29yZERlZmluaXRpb25XaW5kb3cKIHsKLSAgICBXS0hpZGVXb3Jk
RGVmaW5pdGlvbldpbmRvdygpOworICAgIGlmICghZ2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxl
Q2xhc3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFtnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1
bGVDbGFzcygpIGhpZGVEZWZpbml0aW9uXTsKIH0KIAogLSAoQ0dGbG9hdCltaW5pbXVtTGF5b3V0
V2lkdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
d0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRl
cm5hbC5oCmluZGV4IGJiNjE3OTM1YjhkNmQ2ZDRmMmRjODVhOWY1ZWM3ZTM3ZTc3MDA3ZmUuLmYw
NjI4MTBiZTk5ZjhkNjA5MjRiYWVlMjkwYjU5ZTYzODU2NTRlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaApAQCAtODEsNiArODEs
NyBAQCBzdHJ1Y3QgV2ViUGFnZUNvbmZpZ3VyYXRpb247CiAtIChOU1JlY3QpX2NvbnZlcnRUb0Rl
dmljZVNwYWNlOihOU1JlY3QpcmVjdDsKIC0gKE5TUmVjdClfY29udmVydFRvVXNlclNwYWNlOihO
U1JlY3QpcmVjdDsKIC0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFBhc3NSZWZQdHI8V2ViS2l0
OjpUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIGZhZGVPdXQ6KEJPT0wpZmFkZU91dCBhbmlt
YXRlOihCT09MKWFuaW1hdGU7CistICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihQYXNzUmVmUHRy
PFdlYktpdDo6VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRvciBmYWRlT3V0OihCT09MKWZhZGVP
dXQgYW5pbWF0ZTooQk9PTClhbmltYXRlIGFuaW1hdGlvbkNvbXBsZXRpb25IYW5kbGVyOihzdGQ6
OmZ1bmN0aW9uPHZvaWQgKCk+KWNvbXBsZXRpb25IYW5kbGVyOwogCiAtICh2b2lkKV9zZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjooQ0FMYXllciAqKXJvb3RMYXllcjsKIC0g
KENBTGF5ZXIgKilfYWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBmN2IwYmU1ZmQxMWNjMDZjYTgzZjQ2Mjk2
ZGExNDY3YTgyZDIwYTdjLi4yYjIxMzdlOTM4NmEyNjgxMDVmNmY0YmQ5NTI0ODQ4NmIxNjYxYjBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTIyMyw3ICsyMjMsNyBA
QCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5Gb2N1
c09yV2luZG93Rm9jdXNDaGFuZ2VkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyLCBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3Qg
QXR0cmlidXRlZFN0cmluZyYsIGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQ
b3B1cEluZm8mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NEaWN0aW9uYXJ5TG9va3Vw
UGFuZWwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NBY3Rpb25NZW51UG9wb3ZlcnMo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6QWx0
ZXJuYXRpdmVUZXh0VHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9m
UmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJl
cGxhY2VtZW50U3RyaW5ncykgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDM2OTIyMTlhMDg3MTNjMzMyZDhlNmU4MDRhNjljYmViNjJmOTRkY2UuLjMyOWNk
ZDI4ZDc0YzFiMWFmNmFjMDlkNDg1N2IwNWUxZWU4MzdmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExNzQsNyArMTE3NCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZWFyY2hUaGVXZWIoY29uc3QgU3RyaW5nJik7CiAKICAgICAvLyBEaWN0aW9uYXJ5Lgot
ICAgIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgQXR0cmlidXRlZFN0cmlu
ZyYsIGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1EaWN0
aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mKTsKICNlbmRpZgogCiAgICAg
Ly8gU3BlbGxpbmcgYW5kIGdyYW1tYXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0MzhmMGQzMDBmNTU0MGJjNWQyYzhkZGMx
NDRkYTc3MGViZDhlMWI3Li5lZWI4OGFlMTE5ZTQ4MmQyOTQzMGY2MjY2NDNmZGQ1YmEzNDRiMzI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTI5Nyw3ICsyOTcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgIyBEaWN0aW9uYXJ5IHN1cHBvcnQuCi0gICAgRGlkUGVy
Zm9ybURpY3Rpb25hcnlMb29rdXAoV2ViS2l0OjpBdHRyaWJ1dGVkU3RyaW5nIHRleHQsIFdlYktp
dDo6RGljdGlvbmFyeVBvcHVwSW5mbyBkaWN0aW9uYXJ5UG9wdXBJbmZvKQorICAgIERpZFBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwKFdlYktpdDo6RGljdGlvbmFyeVBvcHVwSW5mbyBkaWN0aW9uYXJ5
UG9wdXBJbmZvKQogCiAgICAgIyBLZXlib2FyZCBpbnB1dCBzdXBwb3J0IG1lc3NhZ2VzCiAgICAg
RXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoU3RyaW5nIHNlbGVjdG9yKSAtPiAoYm9vbCBo
YW5kbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQppbmRleCA1OTM2ZGFmYTcxM2JhYWZmOWU0YWFiMTM5ZDFlMjQ5NDFmNTgyZDJhLi5mYzI0
ZWIzNTM0MjNmODY4YmIwNjhlZjY3YTU0N2E2MjE5MTUzZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNzY5LDcgKzc2OSw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpzZXRBc3Npc3RlZE5vZGVTZWxlY3RlZEluZGV4KHVpbnQzMl90
IGluZGV4LCBib29sIGFsbG93TXVsdGlwCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNldEFzc2lzdGVkTm9kZVNlbGVjdGVkSW5kZXgoaW5kZXgsIGFsbG93TXVsdGlwbGVT
ZWxlY3Rpb24pLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBBdHRyaWJ1dGVkU3RyaW5nJiwgY29uc3QgRGljdGlvbmFy
eVBvcHVwSW5mbyYpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29r
dXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRl
eCBkMjU4MzliODEwYmM3YTE2MzE4OTcwMDcwNWZhZWQyZTU0Nzg3ODBmLi5iM2E5YTAwOWVhMGQ2
N2FlYzcxMDgyOTVlMjdmNTUwMzYzNDIzMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xMzYsNyArMTM2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoKTsKICAgICAKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgQXR0cmlidXRlZFN0cmluZyYs
IGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9y
bURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYpOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNtaXNzRGljdGlvbmFyeUxvb2t1cFBhbmVsKCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpc21pc3NBY3Rpb25NZW51UG9wb3ZlcnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggYjUwZjI3YWU3OTQ5YmNhYjgxMTNmMDM0
ZmJiZGNjYWQ0NDBmYzNkOS4uNjJkYTgzMDBkYjU0NDAxNDAzMTBjZmI1ODQ2NDRkYWMzNTUyNDI4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
CkBAIC01OCw2ICs1OCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0xvb2t1cFNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVGV4dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMuaD4KQEAgLTUyOSwyMiArNTMwLDM5
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dEluCiAgICAgW21fd2tWaWV3IF9zZXRQbHVnaW5Db21w
bGV4VGV4dElucHV0U3RhdGU6cGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlIHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyOnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyXTsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29u
c3QgQXR0cmlidXRlZFN0cmluZyYgdGV4dCwgY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGlj
dGlvbmFyeVBvcHVwSW5mbykKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9u
YXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8p
CiB7Ci0gICAgUmV0YWluUHRyPE5TQXR0cmlidXRlZFN0cmluZz4gYXR0cmlidXRlZFN0cmluZyA9
IHRleHQuc3RyaW5nOworICAgIGlmICghZ2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3Mo
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgTlNQb2ludCB0ZXh0QmFzZWxpbmVPcmlnaW4gPSBk
aWN0aW9uYXJ5UG9wdXBJbmZvLm9yaWdpbjsKIAogICAgIC8vIENvbnZlcnQgdG8gc2NyZWVuIGNv
b3JkaW5hdGVzLgogICAgIHRleHRCYXNlbGluZU9yaWdpbiA9IFttX3drVmlldyBjb252ZXJ0UG9p
bnQ6dGV4dEJhc2VsaW5lT3JpZ2luIHRvVmlldzpuaWxdOwogICAgIHRleHRCYXNlbGluZU9yaWdp
biA9IFttX3drVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KHRleHRC
YXNlbGluZU9yaWdpbi54LCB0ZXh0QmFzZWxpbmVPcmlnaW4ueSwgMCwgMCldLm9yaWdpbjsKIAot
ICAgIFdLU2hvd1dvcmREZWZpbml0aW9uV2luZG93KGF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCksIHRl
eHRCYXNlbGluZU9yaWdpbiwgKE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnlQb3B1cEluZm8ub3B0
aW9ucy5nZXQoKSk7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IG11dGFibGVP
cHRpb25zID0gYWRvcHROUyhbKE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnlQb3B1cEluZm8ub3B0
aW9ucy5nZXQoKSBtdXRhYmxlQ29weV0pOworCisgICAgaWYgKGNhbkRpc2FibGVMb29rdXBJbmRp
Y2F0b3IoKSAmJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLnRleHRJbmRpY2F0b3IuY29udGVudEltYWdl
KSB7CisgICAgICAgIC8vIFJ1biB0aGUgYW5pbWF0aW9ucyBzZXJpYWxseSBiZWNhdXNlIGF0dGFj
aGluZyBhbm90aGVyIHN1YndpbmRvdyBicmVha3MgdGhlIGJvdW5jZSBhbmltYXRpb24uCisgICAg
ICAgIC8vIFdlIGNvdWxkIGNvbnNpZGVyIG1ha2luZyB0aGUgYm91bmNlIE5TQW5pbWF0aW9uTm9u
YmxvY2tpbmdUaHJlYWRlZCBpbnN0ZWFkLCB3aGljaCBzZWVtcworICAgICAgICAvLyB0byB3b3Jr
LCBidXQgbmVlZCB0byBjb25zaWRlciBhbGwgb2YgdGhlIGltcGxpY2F0aW9ucy4KKyAgICAgICAg
W21fd2tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOlRleHRJbmRpY2F0b3I6OmNyZWF0ZShkaWN0aW9u
YXJ5UG9wdXBJbmZvLnRleHRJbmRpY2F0b3IpIGZhZGVPdXQ6Tk8gYW5pbWF0ZTpZRVMgYW5pbWF0
aW9uQ29tcGxldGlvbkhhbmRsZXI6W2RpY3Rpb25hcnlQb3B1cEluZm8sIHRleHRCYXNlbGluZU9y
aWdpbiwgbXV0YWJsZU9wdGlvbnNdIHsKKyAgICAgICAgICAgIFttdXRhYmxlT3B0aW9ucyBzZXRP
YmplY3Q6QFlFUyBmb3JLZXk6Z2V0TFVUZXJtT3B0aW9uRGlzYWJsZVNlYXJjaFRlcm1JbmRpY2F0
b3IoKV07CisgICAgICAgICAgICBbZ2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSBz
aG93RGVmaW5pdGlvbkZvclRlcm06ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5n
LnN0cmluZy5nZXQoKSBhdExvY2F0aW9uOnRleHRCYXNlbGluZU9yaWdpbiBvcHRpb25zOm11dGFi
bGVPcHRpb25zLmdldCgpXTsKKyAgICAgICAgfV07CisgICAgfSBlbHNlCisgICAgICAgIFtnZXRM
VUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpIHNob3dEZWZpbml0aW9uRm9yVGVybTpkaWN0
aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcuc3RyaW5nLmdldCgpIGF0TG9jYXRpb246
dGV4dEJhc2VsaW5lT3JpZ2luIG9wdGlvbnM6bXV0YWJsZU9wdGlvbnMuZ2V0KCldOwogfQogCiB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaXNtaXNzRGljdGlvbmFyeUxvb2t1cFBhbmVsKCkKIHsKKyAg
ICBpZiAoIWdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCisgICAgICAgIHJldHVy
bjsKKwogICAgIC8vIEZJWE1FOiBXZSBkb24ndCBrbm93IHdoaWNoIHBhbmVsIHdlIGFyZSBkaXNt
aXNzaW5nLCBpdCBtYXkgbm90IGV2ZW4gYmUgaW4gdGhlIGN1cnJlbnQgcGFnZSAoc2VlIDxyZGFy
Oi8vcHJvYmxlbS8xMzg3NTc2Nj4pLgotICAgIFdLSGlkZVdvcmREZWZpbml0aW9uV2luZG93KCk7
CisgICAgW2dldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkgaGlkZURlZmluaXRpb25d
OworICAgIHNldFRleHRJbmRpY2F0b3IobmlsLCBmYWxzZSwgdHJ1ZSk7CiB9CiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpc21pc3NBY3Rpb25NZW51UG9wb3ZlcnMoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0SW5kaWNhdG9yV2luZG93LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCA5ZWYxNjRk
NGNlODk3N2QzMDQ3MzcxNDIyYjMwOGEyM2FhYzVlOGRhLi43MDU5NDBlMTg5MzhhNDg2YzcyNjFk
MDE0NTEyNzVkODI3YTdjOGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cuaApAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JN
KE1BQykKIAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxmdW5j
dGlvbmFsPgogI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC00OCw3ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBUZXh0SW5kaWNhdG9yV2luZG93KFdLVmlldyAqKTsKICAgICB+VGV4dElu
ZGljYXRvcldpbmRvdygpOwogCi0gICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFBhc3NSZWZQdHI8
VGV4dEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9vbCBhbmltYXRlKTsKKyAgICB2b2lkIHNl
dFRleHRJbmRpY2F0b3IoUGFzc1JlZlB0cjxUZXh0SW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0LCBi
b29sIGFuaW1hdGUsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4gYW5pbWF0aW9uQ29tcGxldGlvbkhh
bmRsZXIpOwogCiBwcml2YXRlOgogICAgIHZvaWQgY2xvc2VXaW5kb3coKTsKQEAgLTcwLDYgKzcx
LDggQEAgcHJpdmF0ZToKIAogICAgIFJ1bkxvb3A6OlRpbWVyPFRleHRJbmRpY2F0b3JXaW5kb3c+
IG1fc3RhcnRGYWRlT3V0VGltZXI7CiAgICAgUmV0YWluUHRyPFdLVGV4dEluZGljYXRvcldpbmRv
d0FuaW1hdGlvbj4gbV9mYWRlT3V0QW5pbWF0aW9uOworCisgICAgc3RkOjpmdW5jdGlvbjx2b2lk
ICgpPiBtX2JvdW5jZUFuaW1hdGlvbkNvbXBsZXRpb25IYW5kbGVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRJ
bmRpY2F0b3JXaW5kb3cubW0KaW5kZXggNWQ2NThkNTc0Y2RmMDQwMjdiYWJmNWVjYzFhZWY5MTQy
YzU2ZDRjNi4uODJhNGJhMDBiMTYxZjRhZmEzMTE2YzQyNmIyMzEzZDg3MGVlODY1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5t
bQpAQCAtMTIwLDcgKzEyMCw3IEBAIFRleHRJbmRpY2F0b3JXaW5kb3c6On5UZXh0SW5kaWNhdG9y
V2luZG93KCkKICAgICBjbG9zZVdpbmRvdygpOwogfQogCi12b2lkIFRleHRJbmRpY2F0b3JXaW5k
b3c6OnNldFRleHRJbmRpY2F0b3IoUGFzc1JlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNh
dG9yLCBib29sIGZhZGVPdXQsIGJvb2wgYW5pbWF0ZSkKK3ZvaWQgVGV4dEluZGljYXRvcldpbmRv
dzo6c2V0VGV4dEluZGljYXRvcihQYXNzUmVmUHRyPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0
b3IsIGJvb2wgZmFkZU91dCwgYm9vbCBhbmltYXRlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+IGFu
aW1hdGlvbkNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChtX3RleHRJbmRpY2F0b3IgPT0g
dGV4dEluZGljYXRvcikKICAgICAgICAgcmV0dXJuOwpAQCAtMTU0LDYgKzE1NCw3IEBAIHZvaWQg
VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihQYXNzUmVmUHRyPFRleHRJbmRp
Y2F0b3I+IHRleHRJbmRpY2F0CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRSZWxlYXNl
ZFdoZW5DbG9zZWQ6Tk9dOwogCiAgICAgaWYgKGFuaW1hdGUpIHsKKyAgICAgICAgbV9ib3VuY2VB
bmltYXRpb25Db21wbGV0aW9uSGFuZGxlciA9IFdURjo6bW92ZShhbmltYXRpb25Db21wbGV0aW9u
SGFuZGxlcik7CiAgICAgICAgIC8vIFN0YXJ0IHRoZSBib3VuY2UgYW5pbWF0aW9uLgogICAgICAg
ICBtX2JvdW5jZUFuaW1hdGlvbkNvbnRleHQgPSBXS1dpbmRvd0JvdW5jZUFuaW1hdGlvbkNvbnRl
eHRDcmVhdGUobV90ZXh0SW5kaWNhdG9yV2luZG93LmdldCgpKTsKICAgICAgICAgbV9ib3VuY2VB
bmltYXRpb24gPSBhZG9wdE5TKFtbV0tUZXh0SW5kaWNhdG9yV2luZG93QW5pbWF0aW9uIGFsbG9j
XSBfaW5pdFdpdGhUZXh0SW5kaWNhdG9yV2luZG93OnRoaXMgYW5pbWF0aW9uRHVyYXRpb246Ym91
bmNlQW5pbWF0aW9uRHVyYXRpb24KQEAgLTIzMCw2ICsyMzEsNyBAQCB2b2lkIFRleHRJbmRpY2F0
b3JXaW5kb3c6OmJvdW5jZUFuaW1hdGlvbkRpZEVuZCgpCiAKICAgICBXS1dpbmRvd0JvdW5jZUFu
aW1hdGlvbkNvbnRleHREZXN0cm95KG1fYm91bmNlQW5pbWF0aW9uQ29udGV4dCk7CiAgICAgbV9i
b3VuY2VBbmltYXRpb25Db250ZXh0ID0gMDsKKyAgICBtX2JvdW5jZUFuaW1hdGlvbkNvbXBsZXRp
b25IYW5kbGVyKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0FjdGlvbk1lbnVDb250cm9sbGVyLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0FjdGlvbk1lbnVDb250cm9sbGVyLm1tCmluZGV4
IDJmZGMyNGY0NWZkNWFhMDI1OTk5NjMxOTg0NjMzNThkMTI3MjUzODcuLjI3ZDgwODlmNWYwYWI3
MmI2ODkwNWQyNjQ3MjFmOWVlNTAzZmJjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV0tBY3Rpb25NZW51Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dLQWN0aW9uTWVudUNvbnRyb2xsZXIubW0KQEAgLTQ1LDYgKzQ1LDcg
QEAKICNpbXBvcnQgPFdlYkNvcmUvRGF0YURldGVjdG9yc1NQSS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9HZW9tZXRyeVV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0xvb2t1cFNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OU1No
YXJpbmdTZXJ2aWNlU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TU2hhcmluZ1NlcnZpY2VQaWNr
ZXJTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNWaWV3U1BJLmg+CkBAIC03NTYsNiArNzU3LDcg
QEAgc3RhdGljIE5TU3RyaW5nICpwYXRoVG9QaG90b09uRGlzayhOU1N0cmluZyAqc3VnZ2VzdGVk
RmlsZW5hbWUpCiAgICAgU0VMIHNlbGVjdG9yID0gbnVsbHB0cjsKICAgICBOU1N0cmluZyAqdGl0
bGUgPSBuaWw7CiAgICAgTlNJbWFnZSAqaW1hZ2UgPSBuaWw7CisgICAgYm9vbCBlbmFibGVkID0g
dHJ1ZTsKIAogICAgIHN3aXRjaCAodGFnKSB7CiAgICAgY2FzZSBrV0tDb250ZXh0QWN0aW9uSXRl
bVRhZ09wZW5MaW5rSW5EZWZhdWx0QnJvd3NlcjoKQEAgLTgxMSw2ICs4MTMsNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKnBhdGhUb1Bob3RvT25EaXNrKE5TU3RyaW5nICpzdWdnZXN0ZWRGaWxlbmFtZSkK
ICAgICAgICAgc2VsZWN0b3IgPSBAc2VsZWN0b3IoX2xvb2t1cFRleHQ6KTsKICAgICAgICAgdGl0
bGUgPSBXRUJfVUlfU1RSSU5HX0tFWSgiTG9vayBVcCIsICJMb29rIFVwIChhY3Rpb24gbWVudSBp
dGVtKSIsICJhY3Rpb24gbWVudSBpdGVtIik7CiAgICAgICAgIGltYWdlID0gW05TSW1hZ2UgaW1h
Z2VOYW1lZDpAIk5TQWN0aW9uTWVudUxvb2t1cCJdOworICAgICAgICBlbmFibGVkID0gZ2V0TFVM
b29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IGtXS0NvbnRleHRBY3Rpb25JdGVtVGFnUGFzdGU6CkBAIC04NTAsNiArODUzLDcgQEAgc3RhdGlj
IE5TU3RyaW5nICpwYXRoVG9QaG90b09uRGlzayhOU1N0cmluZyAqc3VnZ2VzdGVkRmlsZW5hbWUp
CiAgICAgW2l0ZW0gc2V0SW1hZ2U6aW1hZ2VdOwogICAgIFtpdGVtIHNldFRhcmdldDpzZWxmXTsK
ICAgICBbaXRlbSBzZXRUYWc6dGFnXTsKKyAgICBbaXRlbSBzZXRFbmFibGVkOmVuYWJsZWRdOwog
ICAgIHJldHVybiBpdGVtOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IGUyOWVlNTY4MWIyMTI3ZGY3ZmU2MjZmZjQyZTIyYjYx
NjM3N2UxNDkuLmQ1N2FkNjhlNTcyZjZmNDZlZWQwN2QyMjYwMTQyYzU4MzJhNTQ1NzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC00
NTAsOSArNDUwLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKQogICAgIHByb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoaXNTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBBdHRyaWJ1dGVkU3RyaW5nJiB0ZXh0LCBj
b25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQb3B1
cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8pCiB7Ci0gICAgbV9wYWdlQ2xpZW50LmRpZFBlcmZv
cm1EaWN0aW9uYXJ5TG9va3VwKHRleHQsIGRpY3Rpb25hcnlQb3B1cEluZm8pOworICAgIG1fcGFn
ZUNsaWVudC5kaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChkaWN0aW9uYXJ5UG9wdXBJbmZvKTsK
IH0KICAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlcldlYlByb2Nlc3NBY2Nlc3NpYmls
aXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCA3N2I3MWNh
MTM0ZTlmOTM4Y2Q4OTE3NGFlNjdiNWFjMGEwMTkwZDgxLi4yZTMyMDEwMzJmYmUzYWY4YTRjNjU0
MjU3ZDdiYjdmZTY4ZDY0ZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTY5OSwxMSArMTY5OSw5IEBAIHZvaWQgUERG
UGx1Z2luOjpzaG93RGVmaW5pdGlvbkZvckF0dHJpYnV0ZWRTdHJpbmcoTlNBdHRyaWJ1dGVkU3Ry
aW5nICpzdHJpbmcsIENHCiB7CiAgICAgRGljdGlvbmFyeVBvcHVwSW5mbyBkaWN0aW9uYXJ5UG9w
dXBJbmZvOwogICAgIGRpY3Rpb25hcnlQb3B1cEluZm8ub3JpZ2luID0gY29udmVydEZyb21QREZW
aWV3VG9Sb290VmlldyhJbnRQb2ludChwb2ludCkpOworICAgIGRpY3Rpb25hcnlQb3B1cEluZm8u
YXR0cmlidXRlZFN0cmluZy5zdHJpbmcgPSBzdHJpbmc7CiAKLSAgICBBdHRyaWJ1dGVkU3RyaW5n
IGF0dHJpYnV0ZWRTdHJpbmc7Ci0gICAgYXR0cmlidXRlZFN0cmluZy5zdHJpbmcgPSBzdHJpbmc7
Ci0KLSAgICB3ZWJGcmFtZSgpLT5wYWdlKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoYXR0cmlidXRlZFN0cmluZywgZGljdGlvbmFyeVBv
cHVwSW5mbykpOworICAgIHdlYkZyYW1lKCktPnBhZ2UoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChkaWN0aW9uYXJ5UG9wdXBJbmZvKSk7
CiB9CiAKIHVuc2lnbmVkIFBERlBsdWdpbjo6Y291bnRGaW5kTWF0Y2hlcyhjb25zdCBTdHJpbmcm
IHRhcmdldCwgV2ViQ29yZTo6RmluZE9wdGlvbnMgb3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hD
b3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQppbmRleCBjNzE1NWZiODcw
MjcwMWM5ZDM4Y2FiOTkxZWI5Y2M3ZGFlYzMwNDNiLi5kZmJiNzFhZDM4MzFlN2NiNTAzNGI1MTgz
OTMyNDliMjA4MmQ2YmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCkBA
IC0xMjYsNyArMTI2LDYgQEAgdm9pZCBJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSh2b2lkKQog
I2lmICFQTEFURk9STShJT1MpCiAgICAgICAgIElOSVQoUmVjb21tZW5kZWRTY3JvbGxlclN0eWxl
KTsKICAgICAgICAgSU5JVChFeGVjdXRhYmxlV2FzTGlua2VkT25PckJlZm9yZVNub3dMZW9wYXJk
KTsKLSAgICAgICAgSU5JVChFeHRyYWN0V29yZERlZmluaXRpb25Ub2tlblJhbmdlRnJvbUNvbnRl
eHR1YWxTdHJpbmcpOwogICAgICAgICBJTklUKENvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNw
bGF5TmFtZSk7CiAgICAgICAgIElOSVQoQ3Vyc29yKTsKICAgICAgICAgSU5JVChXaW5kb3dTZXRT
Y2FsZWRGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggYzhhMDFlMjViZTllZWFkMGVlNGFjYjk2ZTA5NDllNDVh
ZGQyODc0OS4uZDM2NGMxY2ViOWE1NmFhMDlkNmI5MTdlYmUyNjA2YWE4NjNlZGYzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQpAQCAtNTQ4LDEwICs1NDgsMTQgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRGljdGlvbmFyeUxv
b2t1cEZvclJhbmdlKEZyYW1lKiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBOU0RpY3QKICAgICAgICAg
W3NjYWxlZE5TQXR0cmlidXRlZFN0cmluZyBhZGRBdHRyaWJ1dGVzOnNjYWxlZEF0dHJpYnV0ZXMu
Z2V0KCkgcmFuZ2U6cmFuZ2VdOwogICAgIH1dOwogCi0gICAgQXR0cmlidXRlZFN0cmluZyBhdHRy
aWJ1dGVkU3RyaW5nOwotICAgIGF0dHJpYnV0ZWRTdHJpbmcuc3RyaW5nID0gc2NhbGVkTlNBdHRy
aWJ1dGVkU3RyaW5nOworICAgIFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0g
VGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKHJhbmdlKTsKKyAgICBpZiAoIXRleHRJbmRp
Y2F0b3IpCisgICAgICAgIHJldHVybjsKKworICAgIGRpY3Rpb25hcnlQb3B1cEluZm8udGV4dElu
ZGljYXRvciA9IHRleHRJbmRpY2F0b3ItPmRhdGEoKTsKKyAgICBkaWN0aW9uYXJ5UG9wdXBJbmZv
LmF0dHJpYnV0ZWRTdHJpbmcuc3RyaW5nID0gc2NhbGVkTlNBdHRyaWJ1dGVkU3RyaW5nOwogCi0g
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1
cChhdHRyaWJ1dGVkU3RyaW5nLCBkaWN0aW9uYXJ5UG9wdXBJbmZvKSk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChkaWN0aW9uYXJ5
UG9wdXBJbmZvKSk7CiB9CiAKIGJvb2wgV2ViUGFnZTo6cGVyZm9ybU5vbkVkaXRpbmdCZWhhdmlv
ckZvclNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIEtleWJvYXJkRXZlbnQqIGV2ZW50
KQo=
</data>
<flag name="review"
          id="266542"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>